@Override
 public TB perform(TB value) {
   Tensor<V> internalTensor =
       new ElementUnaryOperation<V>(elementOperation).perform(value.tensor());
   /* safe cast since we ensure C as a type in the argument! */
   @SuppressWarnings("unchecked")
   Class<TB> tensorBackedClass = (Class<TB>) value.getClass();
   return TensorbackedInternals.createBackedByTensor(tensorBackedClass, internalTensor);
 }