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