exercise 4 - async io
exercises 5 and 6