rewrite protoc