code: func NewMessageFromRequest(req protocol.Request, replyto string, choria *Framework) (msg *Message, err error) {
  	reqm, err := NewMessage(req.Message(), req.Agent(), req.Collective(), "request", nil, choria)
  	if err != nil {
  		return msg, fmt.Errorf("could not create request message: %s", err)
  	}
  
  	if replyto != "" {
  		reqm.replyTo = replyto
  	}
  
  	msg, err = NewMessage(req.Message(), req.Agent(), req.Collective(), "reply", reqm, choria)
  	if err != nil {
  		return msg, err
  	}
  
  	msg.RequestID = req.RequestID()
  	msg.TTL = req.TTL()
  	msg.TimeStamp = req.Time()
  	msg.Filter, _ = req.Filter()
  	msg.SenderID = choria.Config.Identity
  	msg.SetBase64Payload(req.Message())
  	msg.req = req
  
  	return
  }
docs: // NewMessageFromRequest constructs a Message based on a Request