Design Patterns implemented with Python