Use "async" module to clean up horrific recursive-looping code.