Final version before submission proj 3