Final version of Assigment2