exercise 9 with async lib