Independent abstract classes and Interfaces for creating a complete framework