code: func New(url string, cfg *config.Config, credentialProvider *credentials.Credentials, rwTimeout time.Duration) wsclient.ClientServer {
  	cs := &clientServer{}
  	cs.URL = url
  	cs.CredentialProvider = credentialProvider
  	cs.AgentConfig = cfg
  	cs.ServiceError = &acsError{}
  	cs.RequestHandlers = make(map[string]wsclient.RequestHandler)
  	cs.TypeDecoder = NewACSDecoder()
  	cs.RWTimeout = rwTimeout
  	return cs
  }
docs: // New returns a client/server to bidirectionally communicate with ACS
  // The returned struct should have both 'Connect' and 'Serve' called upon it
  // before being used.