All async possibilities are now supported (simple without switch and complex with multiple awaits inside an async method)