"await;do;return await defer" optimizaiton; tidying up