Design Pattern Examples using Head First Design Patterns Book