protobuf io by itself