reworked some classes