pre polymorphic