                     let message = Status.UnexpectedError.description
                     return (attributes, NSError(domain: KeychainAccessErrorDomain, code: Int(Status.UnexpectedError.rawValue), userInfo: [NSLocalizedDescriptionKey: message]))
                 }
-                attributes[kSecAttrAccessControl as String] = accessControl
+                attributes[AttributeAccessControl] = accessControl
             } else {
                 print("Unavailable 'Touch ID integration' on OS X versions prior to 10.10.")
             }
         } else {
-            attributes[kSecAttrAccessible as String] = accessibility.rawValue
+            attributes[AttributeAccessible] = accessibility.rawValue
         }
         
-        attributes[kSecAttrSynchronizable as String] = synchronizable
+        attributes[AttributeSynchronizable] = synchronizable
         
         return (attributes, nil)
     }

    
    public func remove(key: String) throws {
        var query = options.query()
        query[kSecAttrAccount as String] = key
        
        let status = SecItemDelete(query)
        if status != errSecSuccess && status != errSecItemNotFound {

            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
