using async instead of bang methods