         }
     }
     
-    internal func get(_ key: String) throws -> Data {
-        var query = KeychainService.keychainQuery(withService: service,
-                                                  account: key,
-                                                  accessGroup: accessGroup)
+    internal func get(_ key: String, with prompt: String? = nil) throws -> Data {
+        var query = keychainQuery(forKey: key)
         query[kSecMatchLimit as String] = kSecMatchLimitOne
         query[kSecReturnAttributes as String] = kCFBooleanFalse
         query[kSecReturnData as String] = kCFBooleanTrue
-        query[kSecUseOperationPrompt as String] = "Test"
+        if let authPrompt = prompt {
+            query[kSecUseOperationPrompt as String] = authPrompt
+        }
         
         var queryResult: AnyObject?
         let status = SecItemCopyMatching(query as CFDictionary, &queryResult)

        }
    }
    
    private static func keychainQuery(withService service: String, account: String? = nil, accessGroup: String? = nil) -> [String : Any] {
        var query = [String : Any]()
        query[kSecClass as String] = kSecClassGenericPassword
        query[kSecAttrService as String] = service
        
        if let account = account {
            query[kSecAttrAccount as String] = account
        }
        

        
        try remove(key: key)
        
        var query = keychainQuery(forKey: key)
        
        query[kSecUseAuthenticationUI as String] = kSecUseAuthenticationUIFail
        
