         }
     }
     
-    private func update(value:String, forEntry entry:String) throws {
+    fileprivate func update(value:String, forEntry entry:String) throws {
         let query = commonConfigurationDictionary(forEntry: entry)
         var dataDict = [String : AnyObject]()
         let valueData = value.data(using: String.Encoding.utf8)!

        return value
    }
    
    private func deleteValue(forEntry entry:String) throws {
        let query = commonConfigurationDictionary(forEntry: entry)
        let status = SecItemDelete(query as CFDictionary)
        guard status == noErr || status == errSecItemNotFound else { throw WMFKeychainCredentialsError.unhandledError(status: status) }
    }
    
    private func set(value:String?, forEntry entry:String) throws {
        // nil value causes the entry to be removed from the keychain
        guard let value = value else {
            do {

        }
    }

    fileprivate enum WMFKeychainCredentialsError: Error {
        case noValue
        case unexpectedData
        case couldNotDeleteData
        case unhandledError(status: OSStatus)
    }

    fileprivate func commonConfigurationDictionary(forEntry entry:String) -> [String : AnyObject] {
        var query = [String : AnyObject]()
        query[kSecClass as String] = kSecClassGenericPassword
        query[kSecAttrService as String] = Bundle.main.bundleIdentifier as AnyObject?
