refactoring project 1