Adding event listeners rather than callbacks, handling immediate downloads and cleaning up