refine the project structure and add submodule