change async to show UI, this can makes good UX