Head First Design Patterns Python