first middleware implementation and cache middleware