achieve the async loading function