         }
     }
 
-    func set(value: NSCoding, forKey key: String) throws {
+    public func set(value: NSCoding, forKey key: String) throws {
         let data = NSKeyedArchiver.archivedDataWithRootObject(value)
         let query = [
             kSecClass as String       : kSecClassGenericPassword as String,

        }
    }

    func deleteValue(forKey key: String) {
        let query = [
            kSecClass as String       : kSecClassGenericPassword as String,
            kSecAttrAccount as String : key ]

        }
    }

    public func optionalForKey<A>(key: String) throws -> A? {
        do {
            let a: A = try valueForKey(key)
            return a
