   
   @IBAction func enablePasswordValueChanged(sender: AnyObject) {
     let type: PassLockType = (sender as! UISwitch).on ? .SetPassword : .RemovePassword
+    (sender as! UISwitch).on = !(sender as! UISwitch).on
     let password = NSUserDefaults.standardUserDefaults().objectForKey(UserDefaults.passwordKey) as? String
     let config = PassLockConfiguration(passLockType: type, initialPassword: password)
     let controller = PassLockViewController.instantiateViewController(configration: config)

  }

  override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    switch indexPath.row {
    default:
      break
    }

      navigationController?.popViewControllerAnimated(true)
    case .Failure:
      break
    }
  }
  
  func passLockController(passLockController: PassLockViewController, didChangePassLock result: Result<Password>) {
    switch result {
    case .Success(let password):
      print("change pass lock success: \(password)")
      NSUserDefaults.standardUserDefaults().setObject(password, forKey: UserDefaults.passwordKey)
      navigationController?.popViewControllerAnimated(true)
    case .Failure:
      print("change pass lock failure")
      let alert = UIAlertController(title: "Go Die", message: "Change Password Failure", preferredStyle: .Alert)
      alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil))
      navigationController?.popViewControllerAnimated(true)
      presentViewController(alert, animated: true, completion: nil)
    }
  }
  
