middlewares now all have own options