Finish first version of Iterator