fixes
fixes
reworking polymorphism