Object Oriented Semester Long Project