anchor.diff:      _selection = null;
     }
   
  -  void _updateItems(int first, int second, [int third]) {
  +  void _updateItemsFromChildren(int first, int second, [int third]) {
       List<Widget> widgets = config.children;
       _items = <Widget>[widgets[first], widgets[second]];
       if (third != null)
         _items.add(widgets[third]);
     }
   
  -  void _initItemsAndScrollOffset() {
  +  void _updateItemsForSelectedIndex(int selectedIndex) {
  +    if (selectedIndex == 0) {
  +      _updateItemsFromChildren(0, 1);
  +    } else if (selectedIndex == _tabCount - 1) {
  +      _updateItemsFromChildren(selectedIndex - 1, selectedIndex);
  +    } else {
  +      _updateItemsFromChildren(selectedIndex - 1, selectedIndex, selectedIndex + 1);
  +    }
  +  }
  +
  +  void _updateScrollBehaviorForSelectedIndex(int selectedIndex) {
  +    if (selectedIndex == 0) {
  +      scrollTo(scrollBehavior.updateExtents(contentExtent: 2.0, containerExtent: 1.0, scrollOffset: 0.0));
  +    } else if (selectedIndex == _tabCount - 1) {
  +      scrollTo(scrollBehavior.updateExtents(contentExtent: 2.0, containerExtent: 1.0, scrollOffset: 1.0));
  +    } else {
  +      scrollTo(scrollBehavior.updateExtents(contentExtent: 3.0, containerExtent: 1.0, scrollOffset: 1.0));
  +    }
  +  }
  +
  +  void _updateItemsAndScrollBehavior() {
       assert(_selection != null);
       final int selectedIndex = _selection.index;
  -    if (selectedIndex == 0) {
  -      _updateItems(0, 1);
  -      scrollTo(scrollBehavior.updateExtents(contentExtent: 2.0, containerExtent: 1.0, scrollOffset: 0.0));
  -    } else if (selectedIndex == _tabCount - 1) {
  -      _updateItems(selectedIndex - 1, selectedIndex);
  -      scrollTo(scrollBehavior.updateExtents(contentExtent: 2.0, containerExtent: 1.0, scrollOffset: 1.0));
  -    } else {
  -      _updateItems(selectedIndex - 1, selectedIndex, selectedIndex + 1);
  -      scrollTo(scrollBehavior.updateExtents(contentExtent: 3.0, containerExtent: 1.0, scrollOffset: 1.0));
  -    }
  +    _updateItemsForSelectedIndex(selectedIndex);
  +    _updateScrollBehaviorForSelectedIndex(selectedIndex);
     }
   
     void handleStatusChange(PerformanceStatus status) {
  
positive.code:     _selection = selection;
      if (_selection != null) {
        _selection.registerPerformanceListener(this);
        _initItemsAndScrollOffset();
      }
    }
  
  
negative.code:     final Performance performance = _selection.performance;
  
      if (performance.status == PerformanceStatus.completed) {
        _updateItemsAndScrollBehavior();
        return;
      }
  
  