     }
     
     func rowElementDeselected(cell: ALCellProtocol) {
+        
         cell.cellDeselected()
         if let handler: ALCellDeselectedHandler = self.deselectedHandler {
             handler(cell)

    
    private var estimateHeightMode: Bool
    private var cellHeight: Double
    private var className: AnyClass
    private let cellIdentifier: String
    private let dataObject: DataObjectType
    private let cellStyle: UITableViewCellStyle

        return self.cellHeight
    }
    
    public func getCellFrom(tableView: UITableView) -> UITableViewCell {
        
        if let dequeuedCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: self.cellIdentifier) {
            return dequeuedCell
        } else {
            let cell: UITableViewCell = CellClass(style: self.cellStyle, reuseIdentifier: self.cellIdentifier)
            object_setClass(cell, self.className)
            cell.cellCreated(dataObject: self.dataObject)
            if let handler:ALCellCreatedHandler = self.createdHandler {
                handler(self.dataObject, cell)
            }
            return cell
        }
    }
    
    //MARK: - Handlers
    
    func rowElementPressed(viewController: UIViewController, cell: ALCellProtocol) {
        
        cell.cellPressed(viewController: viewController)
        if let handler:ALCellPressedHandler = self.pressedHandler {
            handler(viewController, cell)
