more class reworking