refactor submodules