         for row in kvoWrapper._allRows{
             row.willBeRemovedFromForm()
         }
-        kvoWrapper.formRows.removeAllObjects()
+        kvoWrapper.rows.removeAllObjects()
         kvoWrapper._allRows.removeAll()
     }
 }

    // MARK: MutableCollectionType
    
    public var startIndex: Int { return 0 }
    public var endIndex: Int { return kvoWrapper.formSections.count }
    public subscript (position: Int) -> Section {
        get { return kvoWrapper.formSections[position] as! Section }
        set { kvoWrapper.formSections[position] = newValue }
    }
}


    
    public func replaceRange<C : CollectionType where C.Generator.Element == BaseRow>(subRange: Range<Int>, with newElements: C) {
        for (var i = subRange.startIndex; i < subRange.endIndex; i++) {
            if let row = kvoWrapper.rows.objectAtIndex(i) as? BaseRow {
                row.willBeRemovedFromForm()
                kvoWrapper._allRows.removeAtIndex(kvoWrapper._allRows.indexOf(row)!)
            }
        }
        kvoWrapper.rows.replaceObjectsInRange(NSMakeRange(subRange.startIndex, subRange.endIndex - subRange.startIndex), withObjectsFromArray: newElements.map { $0 })
        kvoWrapper._allRows.appendContentsOf(newElements)
        for row in newElements{
            row.wasAddedToFormInSection(self)
