new classes and many reworks