middlewares support slice or single handler func