class BlackFxVanillaOptionProductPricer {

  public PointSensitivityBuilder presentValueSensitivityModelParamsVolatility(
      ResolvedFxVanillaOption option,
      RatesProvider ratesProvider,
      BlackFxOptionVolatilities volatilities) {

    if (volatilities.relativeTime(option.getExpiry()) <= 0d) {
      return PointSensitivityBuilder.none();
    }
    ResolvedFxSingle underlying = option.getUnderlying();
    FxRate forward = fxPricer.forwardFxRate(underlying, ratesProvider);
    CurrencyPair strikePair = underlying.getCurrencyPair();
    CurrencyAmount valueVega = presentValueVega(option, ratesProvider, volatilities);
    return FxOptionSensitivity.of(
        volatilities.getName(),
        strikePair,
        volatilities.relativeTime(option.getExpiry()),
        option.getStrike(),
        forward.fxRate(strikePair),
        valueVega.getCurrency(),
        valueVega.getAmount());
  }

  public  BlackFxVanillaOptionProductPricer(
      DiscountingFxSingleProductPricer fxPricer);

}