Added async and tests