Iterator Design Pattern Structure