Copying over the rest of the protocol implementation.