diff --git a/minimal.js b/minimal.js
index <HASH>..<HASH> 100644
--- a/minimal.js
+++ b/minimal.js
@@ -22,12 +22,11 @@ function unbox(data, unboxers, key) {
     for(var i = 0;i < unboxers.length;i++) {
       var unboxer = unboxers[i]
 
-      if (key) {
-        plaintext = unboxer.value(data.value.content, key)
-      } else if (isFunction(unboxer)) {
+      if (isFunction(unboxer))
         plaintext = unboxer(data.value.content, data.value)
-      } else if (!key && unboxer.key) {
-        key = unboxer.key(data.value.content, data.value)
+      else {
+        if (!key) key = unboxer.key(data.value.content, data.value)
+        if (key) plaintext = unboxer.value(data.value.content, key)
       }
 
       if(plaintext) {
@@ -236,3 +235,14 @@ module.exports = function (dirname, keys, opts) {
   return db
 }
 
+
+
+
+
+
+
+
+
+
+
+
can't use key if unboxer is old style, without key method. otherwise, handle if key is already available or not. sorry @christianbundy my earlier advice was incorrect