Lab 4 - Flyweight and Iterator Patterns