Iterate

A working iterate, not yet unit tested.