totally messed all this polymorphism up