final LinkedHashMap<String, double[]> curveNodes = new LinkedHashMap<>();
final LinkedHashMap<String, Interpolator1D> interpolators = new LinkedHashMap<>();
final Map<String, Integer> nodesPerCurve = new HashMap<>();
for (final String curveName : curveNames) {
final HistoricalTimeSeriesBundle timeSeries = getTimeSeriesBundle(inputs, targetSpec, curveName);
final InterpolatedYieldCurveSpecificationWithSecurities spec = getYieldCurveSpecification(inputs, targetSpec, curveName);
int nInstruments = 0;
final Interpolator1D interpolator = spec.getInterpolator();
final HistoricalTimeSeriesBundle marketData = getHistoricalMarketData(inputs, targetSpec, curveName);
final DoubleArrayList nodeTimes = new DoubleArrayList();
FixedIncomeStripWithSecurity previousStrip = null;
for (final FixedIncomeStripWithSecurity strip : spec.getStrips()) {
//TODO a lot of this can be moved outside the date loop
final HistoricalTimeSeries historicalTimeSeries = marketData.get(MarketDataRequirementNames.MARKET_VALUE, strip.getSecurityIdentifier());
if (historicalTimeSeries == null) {
throw new OpenGammaRuntimeException("Could not get historical time series for " + strip);
}