added submodule support