     ///   - animation: A constant that indicates how the insertion is to be animated, for example, fade in or slide in from the left. See UITableViewRowAnimation for descriptions of these constants.
     open func appendSectionItems(_ sectionItems: [TableViewSectionItemProtocol],
                                  withRowAnimation animation: UITableViewRowAnimation) {
-        let count = self.sectionItems.count
+        let count = sectionItems.count
         let indexSet = IndexSet(integersIn: count...(count + sectionItems.count - 1))
         insertSectionItems(sectionItems, atIndexes: indexSet, withRowAnimation: animation)
     }

        didSet {
            if isPrefetchingEnabled {
                if #available(iOS 10.0, *) {
                    self.tableView.prefetchDataSource = self
                }
                else {
                    fatalError("Prefetching allowed only on iOS versions greater than or equal to 10.0")

    /// - Parameter indexPath: The index path locating the row in the table view.
    /// - Returns: An cell item associated with cell of the table, or nil if the cell item wasn't added to manager or indexPath is out of range.
    open func cellItem(for indexPath: IndexPath) -> TableViewCellItemProtocol? {
        if let cellItems = sectionItem(for: indexPath)?.cellItems {
            if indexPath.row < cellItems.count {
                return cellItems[indexPath.row]
            }
