Adding Iterator pattern