Initial version for Programming Assignment 2