Building examples from Head first Design Patterns https://www.google.co.uk/books/edition/Head_First_Design_Patterns