use object/slots and implement size as a @property
moved some old stuff inside crysp