Renamed to end with "Async" and refactored code and file structure