code: def _forward_request(transaction, destination, path):
          
          client = HelperClient(destination)
          request = Request()
          request.options = copy.deepcopy(transaction.request.options)
          del request.block2
          del request.block1
          del request.uri_path
          del request.proxy_uri
          del request.proxy_schema
          # TODO handle observing
          del request.observe
          # request.observe = transaction.request.observe
  
          request.uri_path = path
          request.destination = destination
          request.payload = transaction.request.payload
          request.code = transaction.request.code
          response = client.send_request(request)
          client.stop()
          if response is not None:
              transaction.response.payload = response.payload
              transaction.response.code = response.code
              transaction.response.options = response.options
          else:
              transaction.response.code = defines.Codes.SERVICE_UNAVAILABLE.number
  
          return transaction
docs: Forward requests.
  
          :type transaction: Transaction
          :param transaction: the transaction that owns the request
          :param destination: the destination of the request (IP, port)
          :param path: the path of the request.
          :rtype : Transaction
          :return: the edited transaction