reorder middlewares
add return class
update version