[WIP] Cleanup

This is getting a bit unruly and I need it to be a bit simpler in order to do unit testing.

- [ ] Use callbacks to do the run, based on whether it's a selection or file run
- [x] Stop should happen before clear, in case of timing issues

I'll be adding more as I figure it out