Fancy iterator stuff and do while loop