added new classes and some fix