add submodules to clean up code