use submodule to keep library in a separate repo