  *  @discussion See the documentation for the main `Unbox(dictionary:)` function above for more information.
  */
 public func Unbox<T: Unboxable>(data: NSData, context: Any? = nil) -> T? {
-    do {
-        let unboxed: T = try UnboxOrThrow(data, context: context)
-        return unboxed
-    } catch {
-        return nil
-    }
+    return try? UnboxOrThrow(data, context: context)
 }
 
 /**

 *  error handling instead of optionals; use `UnboxOrThrow` instead.
 */
public func Unbox<T: Unboxable>(dictionary: UnboxableDictionary, context: Any? = nil) -> T? {
    do {
        let unboxed: T = try UnboxOrThrow(dictionary, context: context)
        return unboxed
    } catch {
        return nil
    }
}

/**

 *  @discussion See the documentation for `Unbox(dictionary:)` for more information.
 */
public func Unbox<T: UnboxableWithContext>(dictionary: UnboxableDictionary, context: T.ContextType) -> T? {
    return try? UnboxOrThrow(dictionary, context: context)
}

/**
