anchor.diff:      _currentPageIndex = newPageIndex;
   
       if (nodeToRemoveIndex != null) {
  -      _container.nodes.removeWhere((e) {
  +      DivElement nodeToRemove = _container.nodes.firstWhere((e) {
           if (e is DivElement && e.attributes.containsKey('data-infinity-page')) {
             int id = int.parse(e.attributes['data-infinity-page']);
             return id == nodeToRemoveIndex;
           }
         });
  +      nodeToRemove.nodes.clear();
  +      nodeToRemove.remove();
       }
   
       if (nodeToAddIndex != null) {
         if (prependInsteadOfAdd) {
           // The node we insert should be after the filler node.
           int insertIndex = _container.nodes.indexOf(_preFiller) + 1;
  -        _container.nodes.insert(insertIndex, _pages[nodeToAddIndex]);
  +        insertPageInContainer(nodeToAddIndex, insertIndex, _container);
         } else {
  -        _container.append(_pages[nodeToAddIndex]);
  +        appendPageInContainer(nodeToAddIndex, _container);
         }
       }
   
       int fillerHeight = math.max(_currentPageIndex - 1, 0) * _pageHeight;
       _preFiller.style.height = '${fillerHeight}px';
  +  }
  +
  +  DivElement _pageDiv(int index) {
  +    DivElement page = _blankDiv();
  +    page.classes.add('page');
  +    page.style.height = 'auto';
  +    page.attributes['data-infinity-page'] = '${index}';
  +
  +    for (int i = 0; i < _pages[index].length; i++) {
  +      page.append(_pages[index][i]);
  +    }
  +    return page;
  +  }
  +
  +  void appendPageInContainer(int pageIndex, DivElement container) {
  +    DivElement page = _pageDiv(pageIndex);
  +    container.append(page);
  +  }
  +
  +  void insertPageInContainer(int pageIndex, int atIndex, DivElement container) {
  +    DivElement page = _pageDiv(pageIndex);
  +    container.nodes.insert(atIndex, page);
     }
   }
   
  
positive.code:       return;
      }
      // Append first two pages
      _container.append(_pages[0]);
      if (_pages.length > 1) {
        _container.append(_pages[1]);
      }
      _currentPageIndex = 0;
  
      _pageHeight = _pages[0].clientHeight;
      _container.style.height = '${pagesCount * _pageHeight}px';
      _container.parent.onMouseWheel.listen(_scrollHandler);
    }
  
negative.code: 
    /// The pages with the elements. We display maximum of three at a time:
    /// the current page, and one page beforehand and one page afterwards.
    List<List<DivElement>> _pages;
  
    /// The total number of items to be displayed.
    int _itemCount;
  