Loop should not be nailed to generation.

Running the loop should be decoupled from loop manipulation and loop payload, especially from the details of output generation process.