Use Iterators when removing stuff.
- Add stop button
- Handle some corner cases
- correct removing listeners
- don't restart current download if it's the requested download