added ProtocolError interface