Design Patterns from the book Learning Python Design Patterns