Async code isn't supposed to be simpler than sync code, it's supposed to be simpler than doing thing like continuation passing.