Re-implementation with seperate 'update submodule' commits.