iterate method