Chapter 5. When to Use Object-oriented Programming