fixed by quick and dirty polymorphism