code: func New(api APIVersion, remoteHost string, contentType string, authToken string, application string) (*HipChat, error) {
  	// test here https://developer.atlassian.com/hipchat/guide/hipchat-rest-api that api token has access
  	authToken = "Bearer " + authToken
  
  	client := &stdhttp.Client{}
  
  	req, err := stdhttp.NewRequest("GET", remoteHost+"?auth_test=true", nil)
  	if err != nil {
  		return nil, err
  	}
  	req.Header.Add("Authorization", authToken)
  
  	resp, err := client.Do(req)
  	if err != nil {
  		return nil, err
  	}
  
  	if resp.StatusCode != stdhttp.StatusAccepted {
  		bt, _ := ioutil.ReadAll(resp.Body)
  		return nil, fmt.Errorf("HipChat authorization failed\n %s", string(bt))
  	}
  
  	header := make(stdhttp.Header)
  	header.Set("Content-Type", contentType)
  	header.Set("Authorization", authToken)
  
  	hc := &HipChat{
  		colors:      defaultColors,
  		api:         api,
  		application: application,
  	}
  
  	// not checking error because url.Parse() is the only thin that can fail,
  	// and we've already checked above that it was OK sending the test request
  	hc.HTTP, _ = http.New(strings.TrimRight(remoteHost, "/")+"/notification", method, header)
  	hc.HTTP.SetFormatFunc(formatFunc(hc))
  	hc.SetTemplate(defaultTemplate)
  	return hc, nil
  }
docs: // New returns a new instance of the HipChat logger