Revised Programming Assignment 2 v1