submodule definition