Initial version
Final version of Assignment 2