Assignment 3 finished and final version