Programming Assignment 2 (third commit)