add answer requiring async module
outilines a solution that does **not** use async module