Chapter 9. The Iterator Pattern