refactoring the project more logically