code: func NewConfig(cfgs ...*viper.Viper) *Config {
  	var cfg *viper.Viper
  	if len(cfgs) > 0 {
  		cfg = cfgs[0]
  	} else {
  		cfg = viper.New()
  	}
  
  	cfg.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
  	cfg.AutomaticEnv()
  	c := &Config{config: cfg}
  	c.fillDefaultValues()
  	return c
  }
docs: // NewConfig creates a new config with a given viper config if given