Move iteration responsibilities to Iteration