Final Assignment2 version