Design Patterns - Assignment 1