Async run

separate PR (no-brainer to merge this in)