add functionality for asyn require