     
     // MARK: Helpers
     
+    /// Returns the cell item at the specified index path.
+    ///
+    /// - 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.
     public func cellItem(for indexPath: IndexPath) -> TableViewCellItemProtocol? {
         if let cellItems = self.sectionItem(for: indexPath)?.cellItems {
             if indexPath.row < cellItems.count {

        tableView.scrollToRow(at: indexPath, at: scrollPosition, animated: animated)
    }
    
    public func scrollToTopAnimated(animated: Bool) {
        guard let sectionItem = self.sectionItems.first,
            let cellItem = sectionItem.cellItems.first else {

        return nil
    }
    
    
    /// Returns the section item at the specified index path.
    ///
    /// - Parameter indexPath: The index path locating the section in the table view.
    /// - Returns: A section item associated with section of the table, or nil if the section item wasn't added to manager or indexPath.section is out of range.
    public func sectionItem(for indexPath: IndexPath) -> TableViewSectionItemProtocol? {
        if indexPath.section < sectionItems.count {
            return sectionItems[indexPath.section]
