     
     // MARK: - textfield delegate
 
-    func textFieldDidBeginEditing(textField: UITextField) {
+    public func textFieldDidBeginEditing(textField: UITextField) {
         self.updateControl(true)
         if let delegate = self.delegate {
             delegate.watermarkedTextFieldDidBeginEditing(self)
         }
     }
-    func textFieldDidEndEditing(textField: UITextField) {
+    public func textFieldDidEndEditing(textField: UITextField) {
         self.updateControl(true)
         if let delegate = self.delegate {
             delegate.watermarkedTextFieldDidEndEditing(self)

        }
    }
    
    var errorMessage:String? {
        didSet {
            self.updateControl(true)
        }
    }
    
    override var enabled:Bool {
        set {
            super.enabled = newValue
            self.textField.enabled = newValue

    
    // MARK: touch handling
    
    override public func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        
        if !self.isFirstResponder() {
            self.becomeFirstResponder()
