refactor project 1