@Override
 public Pair<double[], double[]> visitDelta(
     final BlackVolatilitySurfaceDelta surface, final DoublesPair data) {
   Validate.isTrue(data.first > 0.0 && data.first < 1.0, "cut off must be a valide delta (0,1)");
   Validate.isTrue(
       data.second > 0.0 && data.second < data.first,
       "spread must be positive and numerically less than cutoff");
   final double[] deltas = new double[2];
   final double[] k = new double[2];
   final double[] vols = new double[2];
   deltas[0] = data.first;
   deltas[1] = data.first - data.second;
   vols[0] = surface.getVolatilityForDelta(_t, deltas[0]);
   vols[1] = surface.getVolatilityForDelta(_t, deltas[1]);
   k[0] = BlackFormulaRepository.strikeForDelta(_f, deltas[0], _t, vols[0], true);
   k[1] = BlackFormulaRepository.strikeForDelta(_f, deltas[1], _t, vols[1], true);
   Validate.isTrue(k[0] < k[1], "need first (cutoff) strike less than second");
   return new ObjectsPair<double[], double[]>(k, vols);
 }