added base protobuf functionality