added new classes and created framework