done: extend-protocol