Project using the various design patterns