   #  chain.remove 3
   #  chain.remove 'some-id'
   #  chain.remove fn1
-  remove: (which) ->
+  remove: (which, reason) ->
 
     # find it based on the selector. may return an error
     index = @_findIndex which

      # for it, return the expected properties which call the function which
      # provides the error result.
      return ops =
        error  : error
        disable: returnError
        enable : returnError
        remove : returnError

    # if they called control.stop() or control.fail() then include that info
    results.stopped = control.stopped if control.stopped?
    results.failed  = control.failed  if control.failed?
    # also include functions removed during this execution run by `control`
    results.removed = control.removed if control.removed?

    # call the done function if one exists
    control._done? result.error, results
