Rework, new classes

Rework, new classes