What is a Framework and Why use Frameworks