adding testing and generic codebase for project 2