new middleware signature

need to `.call` downstream