code: func NewDataStore(scope string, cfg *ScopeCfg) (DataStore, error) {
  	if cfg == nil || cfg.Client.Provider == "" || cfg.Client.Address == "" {
  		c, ok := defaultScopes[scope]
  		if !ok || c.Client.Provider == "" || c.Client.Address == "" {
  			return nil, fmt.Errorf("unexpected scope %s without configuration passed", scope)
  		}
  
  		cfg = c
  	}
  
  	var cached bool
  	if scope == LocalScope {
  		cached = true
  	}
  
  	return newClient(scope, cfg.Client.Provider, cfg.Client.Address, cfg.Client.Config, cached)
  }
docs: // NewDataStore creates a new instance of LibKV data store