     # let everyone know the chain paused
     @_chain.emit 'pause', @paused
 
-    # return as the `resume` function. bind it to this `control`
-    return @_resume.bind this
-
+    # return @_resume as the `resume` function. bind it to this `control`
+    resumer = @_resume.bind this
+
+    # the resumer.callback() execution can grab `control` from this
+    resumer.control = this
+
+    # also, for convenience, add the ability to generate a standard callback
+    # function with param pattern (error, result).
+    # accepts an error message and a key name to place the result into the context.
+    resumer.callback = @_resumeCallback
+
+    return resumer
 
   # stops executing the chain with the reason provided
   stop: (reason) ->

    @stopped = reason:reason, index:@_index, fn:@_array[@_index]

    # let's emit both the context and the stopped info
    result = context:@context, stopped:@stopped

    # let everyone know we stopped
    @_chain.emit 'stop', result

    return true


  fail: (reason, error) ->
    # remember we failed, store the reason and related info
    @failed = reason:reason, index:@_index, fn:@_array[@_index]

    # if they provided an error instance, then add it in
    if error? then @failed.error = error

    # let's emit both the context and the 'failed' info
    result = context:@_context, failed:@failed

    # let everyone know we 'failed'. provide the related info
    @_chain.emit 'fail', result
