add protobuf interface