improved use of callbacks but introduced callback hell - good tradeoff