diff --git a/viper.go b/viper.go
index b065a08..d4e7fdc 100644
--- a/viper.go
+++ b/viper.go
@@ -523,17 +523,6 @@
 }
 
 func getRemoteConfig(provider *remoteProvider) (map[string]interface{}, error) {
-	switch provider.provider {
-	case "etcd":
-		return getEtcdConfig(provider)
-	case "consul":
-		// not implemented yet
-
-	}
-	return config, nil
-}
-
-func getEtcdConfig(provider *remoteProvider) (map[string]interface{}, error) {
 	var cm crypt.ConfigManager
 	var err error
 
@@ -543,9 +532,17 @@
 		if err != nil {
 			return nil, err
 		}
-		cm, err = crypt.NewEtcdConfigManager([]string{provider.endpoint}, kr)
+		if provider.provider == "etcd" {
+			cm, err = crypt.NewEtcdConfigManager([]string{provider.endpoint}, kr)
+		} else {
+			cm, err = crypt.NewConsulConfigManager([]string{provider.endpoint}, kr)
+		}
 	} else {
-		cm, err = crypt.NewStandardEtcdConfigManager([]string{provider.endpoint})
+		if provider.provider == "etcd" {
+			cm, err = crypt.NewStandardEtcdConfigManager([]string{provider.endpoint})
+		} else {
+			cm, err = crypt.NewStandardConsulConfigManager([]string{provider.endpoint})
+		}
 	}
 	if err != nil {
 		return nil, err
