prototype of the protocol, not finish yet