reorganize the project structure