final String surfaceName = Iterables.getOnlyElement(surfaceNames);
final String interpolatorName = Iterables.getOnlyElement(interpolatorNames);
final String leftExtrapolatorName = Iterables.getOnlyElement(leftExtrapolatorNames);
final String rightExtrapolatorName = Iterables.getOnlyElement(rightExtrapolatorNames);
final Currency putCurrency = security.accept(ForexVisitors.getPutCurrencyVisitor());
final Currency callCurrency = security.accept(ForexVisitors.getCallCurrencyVisitor());
final ValueRequirement putFundingCurve = getCurveRequirementForFXOption(ComputationTargetSpecification.of(putCurrency), putCurveName, putCurveCalculationConfig, true,
otherProperties);
final ValueRequirement callFundingCurve = getCurveRequirementForFXOption(ComputationTargetSpecification.of(callCurrency), callCurveName, callCurveCalculationConfig, false,
otherProperties);
final ValueRequirement fxVolatilitySurface = getSurfaceRequirement(surfaceName, putCurrency, callCurrency, interpolatorName, leftExtrapolatorName, rightExtrapolatorName);