Design Patterns Class Project