anchor.diff:      final int startIndex = spreadsheet.scrollPosition ~/ spreadsheet.rowHeight;
       
       if (spreadsheet.scrollPosition > (spreadsheet.rowHeight * spreadsheet.dataProvider.length - spreadsheet.height) * .95) 
  -      spreadsheet.dataProvider.addAll(_createNewDataProvider(spreadsheet.dataProvider.length));
  +      spreadsheet.dataProvider.addAll(_createRows(spreadsheet.dataProvider.length));
       
       final List<Row<Cell>> columnListDataProvider = new List<Row<Cell>>.generate(columnList.lockIndex, (int i) => spreadsheet.dataProvider[i]);
       
  
positive.code:     
      addComponent(gridGroup);
      
      spreadsheet.dataProvider = _createNewDataProvider(0);
      
      _updateOverlay();
    }
  
negative.code:   //
    //---------------------------------
    
    Iterable<Row<Cell>> _createRows(int startRowIndex) sync* {
      yield* new List<Row<Cell>>.generate(initRows, (int rowIndex) => _createRow(startRowIndex + rowIndex));
    }
    
    ObservableList<DataGridColumn> _createGridColumns() {
      final ObservableList<DataGridColumn> list = new ObservableList<DataGridColumn>.from(
  