Final Project for CS407 - Design Patterns