full iteration