Yeah, all this stuff is much nicer when you can just return promises and never have to explicitly create or manage multiple ones. But in cases that are more complex (like having to dynamically add more promises to pay attention to) it might be hard to avoid. I haven't looked at the code here to see if there's some other way to optimize it, but it might be interesting to think about whether there's a pattern here that *could* be encapsulated in a utility of some kind. (On the Brackets side, I wrote a `PromiseQueue` utility that specifically dealt with the problem of adding more promises to deal with while previous promises were still outstanding, and resolving a master promise only when all the sub-promises were resolved. Turns out it had some bugs :), which were found and fixed by someone from the community. But maybe that pattern would help here?)