add defer async