handle: move callback logic to async