         case Always:
             return kSecAttrAccessibleAlways as String
         case WhenPasscodeSetThisDeviceOnly:
-            if #available(OSX 10.10, iOS 8.0, *) {
+            if #available(iOS 8.0, OSX 10.10, *) {
                 return kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly as String
             } else {
-                fatalError("Unavailable 'Touch ID integration' on OS X versions prior to 10.10.")
+                fatalError("'Accessibility.WhenPasscodeSetThisDeviceOnly' is not available on this version of OS.")
             }
         case WhenUnlockedThisDeviceOnly:
             return kSecAttrAccessibleWhenUnlockedThisDeviceOnly as String

    #endif

    #if os(iOS)
    @available(iOS, introduced=8.0)
    public func setSharedPassword(password: String, account: String, completion: (error: NSError?) -> () = { e -> () in }) {
        setSharedPassword(password as String?, account: account, completion: completion)
    }
    #endif

    #if os(iOS)
    @available(iOS, introduced=8.0)
    private func setSharedPassword(password: String?, account: String, completion: (error: NSError?) -> () = { e -> () in }) {
        if let domain = server.host {
            SecAddSharedWebCredential(domain, account, password) { error -> () in

        options.accessibility = accessibility
        return Keychain(options)
    }

    @available(iOS 8.0, OSX 10.10, *)
    public func accessibility(accessibility: Accessibility, authenticationPolicy: AuthenticationPolicy) -> Keychain {
        var options = self.options
        options.accessibility = accessibility
