class StandardTwoAssetOptionDataBundle {

  public StandardTwoAssetOptionDataBundle withCorrelation(final double correlation) {
    if (!ArgumentChecker.isInRangeInclusive(-1, 1, correlation)) {
      throw new IllegalArgumentException("Correlation must be between 0 and 1");
    }
    return new StandardTwoAssetOptionDataBundle(getInterestRateCurve(), getFirstCostOfCarry(), getSecondCostOfCarry(), getFirstVolatilitySurface(), getSecondVolatilitySurface(), getFirstSpot(),
        getSecondSpot(), correlation, getDate());
  }

  public  StandardTwoAssetOptionDataBundle(final YieldAndDiscountCurve interestRateCurve, final double b1, final double b2, final VolatilitySurface volatilitySurface1,
      final VolatilitySurface volatilitySurface2, final double spot1, final double spot2, final double rho, final ZonedDateTime date);
  public  StandardTwoAssetOptionDataBundle(final StandardTwoAssetOptionDataBundle other);

}