concurrency/exercises 18-20