make async less dumb