     
     /// Unbox an optional value using a formatter by key
     public func unbox<F: UnboxFormatter>(key: String, formatter: F) -> F.UnboxFormattedType? {
-        return try? unbox(key: key, formatter: formatter)
+        return try? self.unbox(key: key, formatter: formatter)
     }
     
     /// Unbox an optional value using a formatter by key path
     public func unbox<F: UnboxFormatter>(keyPath: String, formatter: F) -> F.UnboxFormattedType? {
-        return try? unbox(keyPath: keyPath, formatter: formatter)
+        return try? self.unbox(keyPath: keyPath, formatter: formatter)
     }
     
     /// Unbox a required collection of values using a formatter by key

    
    /// Unbox an optional UnboxableWithContext type by key
    public func unbox<T: UnboxableWithContext>(key: String, context: T.ContextType) -> T? {
        return try? unbox(key: key, context: context)
    }
    
    /// Unbox an optional UnboxableWithContext type by key path
    public func unbox<T: UnboxableWithContext>(keyPath: String, context: T.ContextType) -> T? {
        return try? unbox(keyPath: keyPath, context: context)
    }
    
    /// Unbox a required collection of UnboxableWithContext values by key

    
    /// Unbox an optional collection of UnboxableWithContext values by key
    public func unbox<C: UnboxableCollection, V: UnboxableWithContext>(key: String, context: V.ContextType, allowInvalidElements: Bool = false) -> C? where C.UnboxValue == V {
        return try? self.unbox(key: key, context: context, allowInvalidElements: allowInvalidElements)
    }
    
    /// Unbox an optional collection of UnboxableWithContext values by key path
    public func unbox<C: UnboxableCollection, V: UnboxableWithContext>(keyPath: String, context: V.ContextType, allowInvalidElements: Bool = false) -> C? where C.UnboxValue == V {
        return try? self.unbox(keyPath: keyPath, context: context, allowInvalidElements: allowInvalidElements)
    }
    
    /// Unbox a required value using a formatter by key
