     @operationSubscriptions.add(handler)
     handler # DONT REMOVE
 
+  reset: ->
+    @resetCount()
+    @stack = []
+    @processing = false
+    @operationSubscriptions?.dispose()
+    @operationSubscriptions = new CompositeDisposable
+
+  destroy: ->
+    @operationSubscriptions?.dispose()
+    {@stack, @operationSubscriptions} = {}
+
   # Stack manipulation
   # -------------------------
   push: (operation) ->

      @handleError(error)

  runRecorded: ->
    if operation = @getRecorded()
      operation.setRepeated()
      if @hasCount()
        count = @getCount()

      if commandName = top.constructor.getCommandNameWithoutPrefix?()
        @addToClassList(commandName + "-pending")

  execute: (operation) ->
    execution = operation.execute()
    if execution instanceof Promise
