Final version of HW3