Enh/polymorphism

Switched to polymorphic