docs: def handle(self, *controller_args, **controller_kwargs):
          """handles the request and returns the response
  
          This should set any response information directly onto self.response
  
          this method has the same signature as the request handling methods
          (eg, GET, POST) so subclasses can override this method and add decorators
  
          :param *controller_args: tuple, the path arguments that will be passed to
              the request handling method (eg, GET, POST)
          :param **controller_kwargs: dict, the query and body params merged together
          """
          req = self.request
          res = self.response
          res.set_header('Content-Type', "{};charset={}".format(
              self.content_type,
              self.encoding
          ))
  
          encoding = req.accept_encoding
          res.encoding = encoding if encoding else self.encoding
  
          res_method_name = ""
          controller_methods = self.find_methods()
          #controller_args, controller_kwargs = self.find_method_params()
          for controller_method_name, controller_method in controller_methods:
              try:
                  logger.debug("Attempting to handle request with {}.{}.{}".format(
                      req.controller_info['module_name'],
                      req.controller_info['class_name'],
                      controller_method_name
                  ))
                  res.body = controller_method(
                      *controller_args,
                      **controller_kwargs
                  )
                  res_method_name = controller_method_name
                  break
  
              except VersionError as e:
                  logger.debug("Request {}.{}.{} failed version check [{} not in {}]".format(
                      req.controller_info['module_name'],
                      req.controller_info['class_name'],
                      controller_method_name,
                      e.request_version,
                      e.versions
                  ))
  
              except RouteError:
                  logger.debug("Request {}.{}.{} failed routing check".format(
                      req.controller_info['module_name'],
                      req.controller_info['class_name'],
                      controller_method_name
                  ))
  
          if not res_method_name:
              # https://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1
              # An origin server SHOULD return the status code 405 (Method Not Allowed)
              # if the method is known by the origin server but not allowed for the
              # requested resource
              raise CallError(405, "Could not find a method to satisfy {}".format(
                  req.path
              ))