Updated entire class

Contains all the classes and methods for Assignment 2.