submodule: add submodule support