runtime polymorphism solved