async completion support