API Design Patterns: Exercise 4.1