Added better async loading for modules

Added better async loading for modules using Q. As far as I can tell, this works great.