Implement middlewares as Subscribers