     self.didRemoveListener = { [weak self] array, i in
       if let s = self {
         if let tableView = s.tableView {
-          perform(animated: !s.disableAnimation) {
+          perform(animated: !disableAnimation) {
             tableView.beginUpdates()
             tableView.deleteSections(NSIndexSet(array: i), withRowAnimation: UITableViewRowAnimation.Automatic)
             for section in sorted(i, >) {

    self.didUpdateListener = { [weak self] array, i in
      if let s = self {
        if let tableView = s.tableView {
          perform(animated: !s.disableAnimation) {
            tableView.beginUpdates()
            tableView.reloadSections(NSIndexSet(array: i), withRowAnimation: UITableViewRowAnimation.Automatic)

            for section in i {
              let sectionBond = UITableViewDataSourceSectionBond<Void>(tableView: tableView, section: section)
              let sectionDynamic = array[section]
              sectionDynamic.bindTo(sectionBond)
              

  weak var tableView: UITableView?
  private var dataSource: TableViewDynamicArrayDataSource?
  private var sectionBonds: [UITableViewDataSourceSectionBond<Void>] = []
  public weak var nextDataSource: UITableViewDataSource? {
    didSet(newValue) {
      dataSource?.nextDataSource = newValue
    }
  }
  
  public init(tableView: UITableView, disableAnimation: Bool = false) {
    self.tableView = tableView
    super.init()
    
    self.didInsertListener = { [weak self] array, i in
      if let s = self {
        if let tableView: UITableView = self?.tableView {
          perform(animated: !disableAnimation) {
            tableView.beginUpdates()
            tableView.insertSections(NSIndexSet(array: i), withRowAnimation: UITableViewRowAnimation.Automatic)
            
            for section in sorted(i, <) {
              let sectionBond = UITableViewDataSourceSectionBond<Void>(tableView: tableView, section: section, disableAnimation: disableAnimation)
              let sectionDynamic = array[section]
              sectionDynamic.bindTo(sectionBond)
              s.sectionBonds.insert(sectionBond, atIndex: section)
