Design Patterns Final Project