added new classes and methods