         var type: CGAttributedTableViewCellType = CGAttributedTableViewCellType.None
         
         if let dataSrc = attributedDataSource {
-            prop = dataSrc.attributedTableView(self, propertyForRowAtIndexPath: indexPath)
-            descTemp = dataSrc.attributedTableView(self, descriptionForRowAtIndexPath: indexPath)
-            pHolderTemp = dataSrc.attributedTableView?(self, placeHolderForRowAtIndexPath: indexPath)
-            pHolderDataTemp = dataSrc.attributedTableView?(self, placeHolderDataForRowAtIndexPath: indexPath)
-            type = CGAttributedTableViewCellType(rawValue: dataSrc.attributedTableView(self, cellTypeForRowAtIndexPath: indexPath))!
+            let cellDescription = dataSrc.attributedTableView(self, cellDescriptionForRowAtIndexPath: indexPath)
+            type = cellDescription.cellType
+            prop = cellDescription.property
+            descTemp = cellDescription.descriptionText
+            pHolderTemp = cellDescription.placeHolder
+            pHolderDataTemp = cellDescription.placeHolderData
         }
         
         let cell: CGAttributedTableViewCell = tableView.dequeueReusableCellWithIdentifier(type.simpleDescription(), forIndexPath: indexPath) as CGAttributedTableViewCell

            }
        } else {
            let cell: CGAttributedTableViewCell = tableView.cellForRowAtIndexPath(indexPath) as CGAttributedTableViewCell
            if cell.reuseIdentifier == CGAttributedTableViewCellType.Button.simpleDescription() {
                cell.toggleEditingProperty()
            }
        }
    }

        }
    }
    
    override func assignFirstResponder() {
        textField.becomeFirstResponder()
    }
    
    override func resignAllFirstResponders() {
        textField.resignFirstResponder()
    }
