Use async instead of setTimeout