Design Patterns Assignment