Part 4 done without async.