docs to describe what this protocol does?