         }
     }
     
-    // Slightly slower because it needs to do a lookup first.
     func updateItem(item:AnyObject) {
         mainThread {
             if let index = self.indexForItem(item) {

        }
    }

    func removeItem(item:AnyObject, atIndex index:Int) {
        mainThread {
            if index < self.items.count {
                self.items.removeAtIndex(index)
                self.removeItemsAtIndexPaths([index])
            } else {
                NSLog("index out of bounds: %d", index)
            }
        }
    }

        }
    }

    func removeItem(item:AnyObject) {
        mainThread {
            if let index = self.indexForItem(item) {
