                     print("Using a convenience encoder/decoder pair using NSKeyedArchiver.")
                 })
             #endif
-            return NSKeyedArchiver.archivedDataWithRootObject(object)
-        }
-        self.decoder = {(key: String, data: NSData) -> AnyObject in
-            return NSKeyedUnarchiver.unarchiveObjectWithData(data)!
+            return NSData(bytes: key.cString, length: key.length)
+        }
+        self.decoder = {(key: String, data: NSData) -> NSObject in
+            return data
         }
         let dirpath = path.stringByDeletingLastPathComponent()
         let fm = NSFileManager.defaultManager()

        return decoder(key, data)
    }
    
    public func objectsForKeys(_ keys: [String]) -> [AnyObject?] {
        var result = [AnyObject?](count: keys.count, repeatedValue: nil)
        var index = 0
        for key in keys {
            result[index] = self[key]

    }
    
    // MARK: - Enumeration
    
    public func enumerateKeys(backward backward: Bool, startingAtKey key: String?, andPrefix prefix: String?, usingBlock block: LevelDBKeyBlock) {
        self.enumerateKeysWithPredicate(nil, backward: backward, startingAtKey: key, andPrefix: prefix, usingBlock: block)
    }
    
    public func enumerateKeysUsingBlock(_ block: LevelDBKeyBlock) {
        self.enumerateKeysWithPredicate(nil, backward: false, startingAtKey: nil, andPrefix: nil, usingBlock: block)
