design patterns and iterators 2907604