             return
         }
         
-        var inputErrors = [InvalidInputError]()
+        var inputErrors = [UnboxValueError]()
         
         for failure in failureInfo {
             if let failedValue: Any = failure.value {
                 inputErrors.append(.InvalidValue(failure.key, "\(failedValue)"))
             }
             else {
-                inputErrors.append(.MissingKey(failure.key))
+                inputErrors.append(.MissingValueForKey(failure.key))
             }
         }
         

        }
    }
    
    case InvalidInput([InvalidInputError])
    /// Thrown when a piece of data (NSData) could not be unboxed because it was considered invalid
    case InvalidData
    /// Thrown when a custom unboxing closure returned nil

    }
    
    /// Thrown when a required key was missing in an unboxed dictionary. Contains the missing key.
    case MissingValueForKey(String)
    /// Thrown when a required key contained an invalid value in an unboxed dictionary. Contains the invalid
    /// key and a description of the invalid data.
    case InvalidValue(String, String)
