refactoring submodules