modified: protobuf protocol