code: func NewErrorResponse(statusCode int, messages ...interface{}) *Error {
  
  	additionalMessages := make([]string, len(messages))
  	for eachIndex, eachMessage := range messages {
  		switch typedValue := eachMessage.(type) {
  		case error:
  			additionalMessages[eachIndex] = typedValue.Error()
  		default:
  			additionalMessages[eachIndex] = fmt.Sprintf("%v", typedValue)
  		}
  	}
  
  	err := &Error{
  		Code:    statusCode,
  		Err:     http.StatusText(statusCode),
  		Message: strings.Join(additionalMessages, " "),
  		Context: make(map[string]interface{}),
  	}
  	if len(err.Err) <= 0 {
  		err.Code = http.StatusInternalServerError
  		err.Err = http.StatusText(http.StatusInternalServerError)
  	}
  	return err
  }
docs: // NewErrorResponse returns a response that satisfies
  // the regular expression used to determine integration mappings
  // via the API Gateway. messages is a stringable type. Error interface
  // instances will be properly typecast.