polymorphic iterations