Last version of Programming Assignment 2