rename middleware to decorator