TemplateFreeWorld I - replacing compile time polymorphism with runtime polymorphism