final version for project3