make protobuf optional