Assignment 2 - completed version 1.0