         return self.contentView.bounds.height
     }
 
-    let nameLabel = UILabel()
+    let nameLabel: UILabel
     let valueField = UITextField()
     private(set) var clearButton: RoundedBorderButton?
-    var nameLabelWidth: CGFloat = 100
+    private let nameLabelWidthConstraint: NSLayoutConstraint
+
+    var nameLabelWidth: CGFloat {
+        get {
+            return self.nameLabelWidthConstraint.constant
+        }
+
+        set {
+            self.nameLabelWidthConstraint.constant = newValue
+        }
+    }
 
     override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
+        let nameLabel = UILabel()
+        self.nameLabel = nameLabel
+        self.nameLabelWidthConstraint = NSLayoutConstraint(item: nameLabel, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 100)
+
         super.init(style: style, reuseIdentifier: reuseIdentifier)
 
         self.nameLabel.font = FormViewController.font

        button.setBlock { [unowned button] in
            clearCallback(button)
        }
        self.contentView.addSubview(button)
        self.clearButton = button
    }


        self.contentView.addSubview(self.nameLabel)
        self.contentView.addSubview(self.valueField)

        self.nameLabel.addConstraint(self.nameLabelWidthConstraint)
        self.nameLabel.addConstraint(forHeight: 50)
        self.resetConstraints()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    func set(clearCallback: @escaping (UIButton) -> ()) {
