Use q module methods for async callback stacking to make sure values are there when we need them, and without the pyramid of doom