             {
                 for(var i:int = 0; i < source.length; i++)
                 {
-                    if(callback(source[i]))
+                    if(callback(source[i], i, source))
                     {
                         return source[i];
                     }

         */
        public function every(callback:Function):Boolean
        {
            return source.every(function (item:*, index:int, array:Array):Boolean
            {
                return callback(item);
            });
        }

        /**

                callback = _;
            }

            callback = transform(callback);

            var max:* = first;
            var maxValue:Number = callback(first, 0, source);

            for(var i:int = 0; i < source.length; i++)
            {
                var current:* = source[i];
                var result:Number = callback(current, i, source);
                if(maxValue < result)
                {
                    maxValue = result;
