finish Assignment 2 of initial version