code: func NewMessage(data interface{}) (*Message, error) {
  	m := &Message{}
  	if err := m.unmarshalInterface(data); err != nil {
  		return nil, err
  	}
  	return m, nil
  }
docs: // NewMessage parses data and returns a new message.