async prehooks