The update function now updates submodules as well