Completed Assignment 2 code