                 }
             }
             
-            if let accessible = attributes[kSecAttrAccessible as String] as? String {
+            if let accessible = attributes[AttributeAccessible] as? String {
                 if let accessibility = Accessibility(rawValue: accessible) {
                     item["accessibility"] = accessibility.description
                 }
             }
-            if let synchronizable = attributes[kSecAttrSynchronizable as String] as? Bool {
+            if let synchronizable = attributes[AttributeSynchronizable] as? Bool {
                 item["synchronizable"] = synchronizable ? "true" : "false"
             }
 

    
    public func contains(key: String) throws -> Bool {
        var query = options.query()
        query[kSecAttrAccount as String] = key
        
        let status = SecItemCopyMatching(query, nil)
        switch status {

            if let credentials = credentials as? [[String: AnyObject]] {
                let credentials = credentials.map { credentials -> [String: String] in
                    var credential = [String: String]()
                    if let server = credentials[AttributeServer] as? String {
                        credential["server"] = server
                    }
                    if let account = credentials[AttributeAccount] as? String {
                        credential["account"] = account
                    }
                    if let password = credentials[SharedPassword] as? String {
                        credential["password"] = password
                    }
                    return credential
