 }
 
 extension UIButton {
-    dynamic var title: String {
-        set { setTitle(newValue, for: .normal) }
-        get { return title(for: .normal) ?? "" }
-    }
-    dynamic var highlightedTitle: String {
-        set { setTitle(newValue, for: .highlighted) }
-        get { return title(for: .highlighted) ?? "" }
-    }
 
     open override class var expressionTypes: [String: RuntimeType] {
         var types = super.expressionTypes

            "contactAdd": .contactAdd,
        ])
        types["buttonType"] = types["type"]
        return types
    }

    open override func setValue(_ value: Any, forExpression name: String) throws {
        switch name {
        case "type", "buttonType":
            setValue((value as! UIButtonType).rawValue, forKey: "buttonType")
        default:
            try super.setValue(value, forExpression: name)
        }


    open override func setValue(_ value: Any, forExpression name: String) throws {
        switch name {
        case "autocapitalizationType": autocapitalizationType = value as! UITextAutocapitalizationType
        case "autocorrectionType": autocorrectionType = value as! UITextAutocorrectionType
        case "spellCheckingType": spellCheckingType = value as! UITextSpellCheckingType
        case "keyboardType": keyboardType = value as! UIKeyboardType
        case "keyboardAppearance": keyboardAppearance = value as! UIKeyboardAppearance
        case "returnKeyType": returnKeyType = value as! UIReturnKeyType
        case "enablesReturnKeyAutomatically": enablesReturnKeyAutomatically = value as! Bool
        case "isSecureTextEntry": isSecureTextEntry = value as! Bool
        default:
            try super.setValue(value, forExpression: name)
        }
