Refactor so that the code communicates what it does.

When I looked back I almost did not recognize what I did. So renaming a
few variables, extracting into methods etc does wonders.

Also it is possible to cycle through the content with keys.