Adding Head First Design Patterns