feat: move submodule update call into base and make it optional