git submodule handling improvements