dealing with submodule stuff