project structure refactoring