proxy = function() {
        return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
    };