better git submodule handling