Lecture 6. Design 3. Design Patterns