Finished Programming Assignment2