     var focusHeading: UIFocusHeading?
     var manualFocusCell: NSIndexPath?
     
-    override public weak var preferredFocusedView: UIView? {
-        guard let path = manualFocusCell else {
-            return nil
-        }
-        manualFocusCell = nil
-        return self.cellForItemAtIndexPath(path)
-    }
-    
     public func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
         count = rootDataSource.collectionView(collectionView, numberOfItemsInSection: section)
         return count + 2 * buffer

        let adjustedIndex = wrapped % count
        
        return rootDataSource.collectionView(collectionView, cellForItemAtIndexPath: NSIndexPath(forItem: adjustedIndex, inSection: 0))
    }
    
    public func collectionView(collectionView: UICollectionView, shouldUpdateFocusInContext context: UICollectionViewFocusUpdateContext) -> Bool {

        return true
    }
    
//    public func scrollViewDidScroll(scrollView: UIScrollView) {
//        guard let jumpIndex = jumpFromIndex else {
//            return
//        }
//        
//        // TODO: screen frame - cell width plus margins / 2 ?
//        let desiredOffset = CGFloat(jumpIndex) * (cellWidth + interitemSpacing)
//        let currentOffset = scrollView.contentOffset.x
//        
//        print("looking for \(desiredOffset) currently \(currentOffset)")
//        
//        if (focusHeading == .Left  && currentOffset <= desiredOffset) ||
//            (focusHeading == .Right && currentOffset >= desiredOffset)
//        {
//            // Jump!
//            
//            jumpFromIndex = nil
//            
//            let jumpPath = NSIndexPath(forItem: jumpToIndex!, inSection: 0)
//            scrollToItemAtIndexPath(jumpPath, atScrollPosition: .Left, animated: false)
//            
//            manualFocusCell = NSIndexPath(forItem: jumpToFocusIndex!, inSection: 0)
//            setNeedsFocusUpdate()
//        }
//    }
    
    func cellMetricsCached() -> Bool {
        return cellWidth != 0
