 {
     struct PickerItemInfo
     {
-        let label:String, value:SecAccessControlCreateFlags
+        let label:String
+        let flags:SecAccessControlCreateFlags!, protection:CFString!
+        init(label:String, flags:SecAccessControlCreateFlags)
+        {
+            self.label = label
+            self.flags = flags
+            self.protection = nil
+        }
+        
+        init(label:String, protection:CFString)
+        {
+            self.label = label
+            self.protection = protection
+            self.flags = nil
+        }
     }
     
     let SERVICE_PSSW = "LARRYHOU-PASSWORD-TEXT"
     let SERVICE_NAME = "TouchID.app"
     
+    enum PickerComponent:Int
+    {
+        case Protection = 0, SACFlags
+    }
+    
     @IBOutlet weak var picker: UIPickerView!
     
-    private var sacFlags:[PickerItemInfo]!
+    private var model:[[PickerItemInfo]]!
     
     override func viewWillAppear(animated: Bool)
     {

    {
        super.viewDidLoad()
        
        sacFlags = []
        sacFlags.append(PickerItemInfo(label: "UserPresence", value: SecAccessControlCreateFlags.UserPresence))
        sacFlags.append(PickerItemInfo(label: "TouchIDAny", value: SecAccessControlCreateFlags.TouchIDAny))
        sacFlags.append(PickerItemInfo(label: "TouchIDCurrentSet", value: SecAccessControlCreateFlags.TouchIDCurrentSet))
        sacFlags.append(PickerItemInfo(label: "DevicePasscode", value: SecAccessControlCreateFlags.DevicePasscode))
        sacFlags.append(PickerItemInfo(label: "ApplicationPassword", value: SecAccessControlCreateFlags.ApplicationPassword))
    }
    
    //MARK: UIPickerView
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int
    {
        return 1
    }
    
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
    {
        return sacFlags.count
    }
    
    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
    {
        return sacFlags[row].label
    }
    
    //MARK: IBActions

    {
        resetPassword()
        
        let protection = getComponentItemInfo(PickerComponent.Protection.rawValue).protection
        let flags = getComponentItemInfo(PickerComponent.SACFlags.rawValue).flags
        
        var error:Unmanaged<CFErrorRef>?
        let sac = SecAccessControlCreateWithFlags(kCFAllocatorDefault, protection, flags, &error)
        if error != nil || sac == nil
        {
            print(error)
