updated submodule mechanism