forget this async stuff
simpler