Initial implementation for the protocol.