refactoring project structure