yes, as @drewfish mentioned before, this is going to be problematic because you might call `execute` mutliple times even when the previous `execute()` is not done. So, what I will propose is to create the new `this.queue` object right after calling `this.queue.done()` in line 199. That means everytime you call `execute()` the current queue will get in motion, and will become inaccessible automatically, a new queue object will be create. there is not need to keep a hold on the old queue, what matters is the callback when it is done or when an error occur, and that we have it anyway.