added submodule detection