API Design Patterns: Exercise 3.2