use native protobuf