added submodule dependency-injection