Change the run function to take a callback and run asynchronously instead of blocking the event loop.
run