University Project aimed to demonstrate good object oriented design.