Finished Programming Assignment 3