code: func (c4 *Seefor) ServeHTTP(w http.ResponseWriter, req *http.Request) {
  	started := time.Now()
  	c4.handleBeforeMiddlewares(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
  		beforeEnd := time.Now()
  		if root, exist := c4.roots[req.Method]; exist {
  			handler, params, route := root.match(req.URL.Path)
  			if handler != nil {
  				if c4.timer != nil {
  					after := time.Now()
  					c4.handleAfterMiddlewares(handler, w, req, params)
  					c4.timer.Get(route).Accumulate(started, beforeEnd, after, time.Now())
  				} else {
  					c4.handleAfterMiddlewares(handler, w, req, params)
  				}
  				return
  			}
  		}
  		c4.Router.handleMissing(w, req)
  	}), w, req)
  }
docs: // Implementing http handler interface.
  // This is a override of Router.ServeHTTP for handling middlewares