project structure refactor