code: func NewMesosScheduler(master string, uid string, privateKeyFile io.Reader) (scheduler.Scheduler, error) {
  	//Create the object
  	m := &mesosScheduler{
  		master: master,
  		uid:    uid,
  	}
  
  	//Parse and validate the private key
  	if err := m.parsePrivateKey(privateKeyFile); err != nil {
  		return nil, err
  	}
  
  	//Build the transport
  	tr := &http.Transport{
  		Proxy: http.ProxyFromEnvironment,
  		DialContext: (&net.Dialer{
  			Timeout:   30 * time.Second,
  			KeepAlive: 30 * time.Second,
  			DualStack: true,
  		}).DialContext,
  		MaxIdleConns:          100,
  		IdleConnTimeout:       90 * time.Second,
  		TLSHandshakeTimeout:   10 * time.Second,
  		ExpectContinueTimeout: 1 * time.Second,
  	}
  
  	//If requested ignore the TLS verify
  	if viper.GetBool("mesos-skipverify") {
  		if tr.TLSClientConfig == nil {
  			tr.TLSClientConfig = &tls.Config{
  				InsecureSkipVerify: true,
  			}
  		} else {
  			tr.TLSClientConfig.InsecureSkipVerify = true
  		}
  	}
  	client := http.DefaultClient
  	client.Transport = tr
  	m.client = client
  
  	//Check to see if you can communicate with the Mesos Master
  	if _, _, err := m.getMesosMaster(); err != nil {
  		return nil, err
  	}
  
  	//Create initial authorization token
  	if err := m.createAuthorizationToken(); err != nil {
  		return nil, err
  	}
  
  	return m, nil
  }
docs: //NewMesosScheduler creates the object for talking to mesos.  In this case it
  // will create the object to talk to DCOS EE Mesos which needs some authentication
  // pieces setup