Programming Assignment 2 (second commit)