middleware now waits on customer instead of client