use a submodule for warden protocol instead