anchor.diff:          return;
         }
         JsonDecoder decoder = new JsonDecoder();
  -      Map responseJson = decoder.convert(json);
  -      callback(new StockData(responseJson.values.toList()));
  -      if (responseJson.isNotEmpty)
  +      callback(new StockData(decoder.convert(json)));
  +      if (_nextChunk < _kChunkCount)
           _fetchNextChunk();
       });
     }
  
positive.code: }
  
  typedef void StockDataCallback(StockData data);
  const _kChunkSize = 100;
  
  String _urlToFetch(int chunk) {
    Map<String, String> queryParameters = {
      'limitToFirst': _kChunkSize.toString(),
      'startAt': '\"${chunk * _kChunkSize}\"',
      'orderBy': '"\$key"',
    };
    // Just a demo firebase app owned by eseidel.
    return new Uri.https(
      'sizzling-torch-6112.firebaseio.com',
      '.json',
      queryParameters=queryParameters
    ).toString();
  }
  
  class StockDataFetcher {
  
negative.code:   void _fetchNextChunk() {
      if (!actuallyFetchData)
        return;
      http.get(_urlToFetch(_nextChunk++)).then((http.Response response) {
        String json = response.body;
        if (json == null) {
  