             else
                 console.log "[#{loops}] waiting for previous callback to be executed" if DEBUG
                 @readyLoops[loops] = true
+                @readyLoopArgs[loops] = [arguments...]
 
     flush: (callback) ->
         if @executedLoops is @loops

        @loopCallbacks = []
        @executedLoops = 0
        @readyLoops = []
        @isCallbackExecuted = false

    rewind: ->

                callback arguments...
                if @readyLoops[loops+1]
                    console.log "[#{loops}] executing chaining next callback" if DEBUG
                    doImmediately =>
                        @loopCallbacks[loops+1] @readyLoopArgs[loops+1]...
                else
                    console.log "[#{loops}] waiting for next callback to be executed" if DEBUG
                    if @executedLoops is @loops
