new comments added to async and better code structure