Revised Submission for Programming Assignment 2