committing final version of assignment2