I'd like to see the runner stuff moved out into its own constructor/prototype. I know we're not dealing with a lot of extra memory use, given that there will only be one of these in existence at any time, but it would make it a lot easier to understand this code when the runner isn't effectively an inner class created by this closure. Alternately, if that's done, the project manager could just instantiate and manage its own runner--it wouldn't need FSExplorer to do it for us (if I'm reading this code right, since 90% of it is just `run()`.