     * @chainable
     *###
     _invokeNextFunction: (data, idx) ->
+        if @_isStopped
+            return @
+            
         func = data.func or data[0]
         scope = data.scope or data[1]
         params = data.params or data[2]

                    try
                        return func.apply(scope, params)
                    catch error
                        return error
            }
            {

            @_endCallback   = endCallback

        return @

    stop: (execCallbacks = true) ->
        @_isStopped = true

        sequence.stop(execCallbacks) for sequence in @_sequences

        if execCallbacks
            @_endCallback?()
            @_execDoneCallbacks()
        return @

    interrupt: () ->
        return @stop(false)

    resume: () ->
        @_isStopped = false
        # TODO: pass correct params here (prev res....)
        @_invokeNextFunction()
        return @
