async handle