refactoring the project structure