add protobuf protocol