refactoring with Controller and Renderer base-classes. Added a unified 'Framework' abstraction Layer