protobuf base function demo
for improvement