spec and code for project2