solutions for Programming Assignment 2