         } else {
             textView.editable = false
             if let del = delegate {
-                if let tView = tableView {
-                    let indexPathTemp = tView.indexPathForCell(self)
-                    if let indexPath = indexPathTemp {
-                        del.attributedTableView(tView, updateDescriptionAtIndexPath: indexPath, withData: textView.text)
-                    }
-                }
+                del.attributedTableViewCell(self, updateDescriptionWithData: textView.text)
             }
         }
     }
     
     public func textViewDidEndEditing(textView: UITextView) {
         if let del = delegate {
-            if let tView = tableView {
-                let indexPathTemp = tView.indexPathForCell(self)
-                if let indexPath = indexPathTemp {
-                    del.attributedTableView(tView, updateDescriptionAtIndexPath: indexPath, withData: textView.text)
-                }
-            }
+            del.attributedTableViewCell(self, updateDescriptionWithData: textView.text)
         }
     }
 }

        self.addSubview(textView)
        
        self.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[textView(52)]", options: NSLayoutFormatOptions(0), metrics: nil, views: [ "textView" : self.textView ]))
        let widthConstraint = NSLayoutConstraint(item: textView, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: descriptionLabel, attribute: NSLayoutAttribute.Width, multiplier: 1, constant: 0)
        let xConstraint = NSLayoutConstraint(item: textView, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: descriptionLabel, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
        let yConstraint = NSLayoutConstraint(item: textView, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: descriptionLabel, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)
        
        self.addConstraint(widthConstraint)
        self.addConstraint(xConstraint)

    }
}

@objc public protocol CGAttributedTableViewCellDelegate {
    
    func attributedTableViewCell(cell: CGAttributedTableViewCell, updateDescriptionWithData data: AnyObject)
    func attributedTableViewCellButtonPressed(cell: CGAttributedTableViewCell)
    func attributedTableViewCellReturnPressed(cell: CGAttributedTableViewCell)
    
}

@objc public class CGAttributedTableViewCellDescription {
    public var cellType: CGAttributedTableViewCellType
    public var property: String
