Implemented some more of the protocol