Introduce observers and middlewares with well defined calling order