Solutions from Head First Design Patterns book