First stab at making run() an async function that takes a callback
update note