make all require calls async and fix issue with out-of-order resolutions