switch to use google protobuf as data storage format