made products polymorphic