Design Patterns - Assignment 2