Most of assignment 2 complete