     
     public func allObjects() -> [O]
     {
-        return enumerator.allObjects as [O]
-    }
-    
-    public func countByEnumeratingWithState(state: UnsafeMutablePointer<NSFastEnumerationState>, objects buffer: AutoreleasingUnsafeMutablePointer<AnyObject?>, count len: Int) -> Int
-    {
-        return enumerator.countByEnumeratingWithState(state, objects: buffer, count: len)
+        return enumerator.allObjects as! [O]
     }
 }

    public func indexPathOfObjectPassingTest(predicate: (object: O, indexPath: NSIndexPath, stop: UnsafeMutablePointer<ObjCBool>) -> Bool) -> NSIndexPath?
    {
        return intuGroupedArray.indexPathOfObjectPassingTest { (object: AnyObject!, indexPath: NSIndexPath!, stop: UnsafeMutablePointer<ObjCBool>) -> Bool in
            return predicate(object: object as O, indexPath: indexPath, stop: stop)
        }
    }
    

    
    public func allObjects() -> [O]
    {
        return intuGroupedArray.allObjects() as! [O]
    }
    
    
    public func enumerateSections(block: (section: S, index: Int, stop: UnsafeMutablePointer<ObjCBool>) -> Void)
    {
        intuGroupedArray.enumerateSectionsUsingBlock { (section: AnyObject!, index: UInt, stop: UnsafeMutablePointer<ObjCBool>) -> Void in
            block(section: section as! S, index: Int(index), stop: stop)
        }
    }
    
    public func enumerateSections(options: NSEnumerationOptions, block: (section: S, index: Int, stop: UnsafeMutablePointer<ObjCBool>) -> Void)
    {
        intuGroupedArray.enumerateSectionsWithOptions(options) { (section: AnyObject!, index: UInt, stop: UnsafeMutablePointer<ObjCBool>) -> Void in
            block(section: section as! S, index: Int(index), stop: stop)
        }
    }
    
    public func enumerateObjects(block: (object: O, indexPath: NSIndexPath, stop: UnsafeMutablePointer<ObjCBool>) -> Void)
    {
        intuGroupedArray.enumerateObjectsUsingBlock { (object: AnyObject!, indexPath: NSIndexPath!, stop: UnsafeMutablePointer<ObjCBool>) -> Void in
            block(object: object as! O, indexPath: indexPath, stop: stop)
        }
    }
    
    public func enumerateObjects(options: NSEnumerationOptions, block: (object: O, indexPath: NSIndexPath, stop: UnsafeMutablePointer<ObjCBool>) -> Void)
    {
        intuGroupedArray.enumerateObjectsWithOptions(options) { (object: AnyObject!, indexPath: NSIndexPath!, stop: UnsafeMutablePointer<ObjCBool>) -> Void in
            block(object: object as! O, indexPath: indexPath, stop: stop)
        }
    }
    
    public func enumerateObjectsInSectionAtIndex(sectionIndex: Int, block: (object: O, indexPath: NSIndexPath, stop: UnsafeMutablePointer<ObjCBool>) -> Void)
    {
        intuGroupedArray.enumerateObjectsInSectionAtIndex(UInt(sectionIndex)) { (object: AnyObject!, indexPath: NSIndexPath!, stop: UnsafeMutablePointer<ObjCBool>) -> Void in
            block(object: object as! O, indexPath: indexPath, stop: stop)
        }
    }
    
    public func enumerateObjectsInSectionAtIndex(sectionIndex: Int, withOptions options: NSEnumerationOptions, block: (object: O, indexPath: NSIndexPath, stop: UnsafeMutablePointer<ObjCBool>) -> Void)
    {
        intuGroupedArray.enumerateObjectsInSectionAtIndex(UInt(sectionIndex), withOptions: options) { (object: AnyObject!, indexPath: NSIndexPath!, stop: UnsafeMutablePointer<ObjCBool>) -> Void in
            block(object: object as! O, indexPath: indexPath, stop: stop)
        }
    }
    
