support asynchronous module requiring