cleaned up logic in ASYNC_DONE