Finish Project 2 including Refactoring