async listen
actually call the middleware