added new classes and some fixes