Avoid recursion to stay away from loops.
Simplify with async.auto().