switch to use submodule to track dependency