Chapter 1. Introduction to Design Patterns