Final Version of assignment 1