async doc generation