refinements to submodule handling