TemplateFreeWorld - replacing compile time polymorphism with runtime pol...

...ymorphism
the dtor is virtual since the class is expected to be derived from. If in your derived class you need to do clean up and the dtor is not virtual then the dtor on the derived class won't be called if you delete the instance by a pointer to the base class.