attempt polymorphic