diff --git a/cmd/init.go b/cmd/init.go
index 8ebee34..a5de8da 100644
--- a/cmd/init.go
+++ b/cmd/init.go
@@ -87,36 +87,22 @@ var initCmd = &cobra.Command{
 		if len(modLoaderName) == 0 {
 			modLoaderName = strings.ToLower(initReadValue("Mod loader [fabric]: ", "fabric"))
 		}
-		_, ok := core.ModLoaders[modLoaderName]
-		if modLoaderName != "none" && !ok {
-			fmt.Println("Given mod loader is not supported! Use \"none\" to specify no modloader, or to configure one manually.")
-			fmt.Print("The following mod loaders are supported: ")
-			keys := make([]string, len(core.ModLoaders))
-			i := 0
-			for k := range core.ModLoaders {
-				keys[i] = k
-				i++
-			}
-			fmt.Println(strings.Join(keys, ", "))
-			os.Exit(1)
-		}
 
+		loader, ok := core.ModLoaders[modLoaderName]
 		modLoaderVersions := make(map[string]string)
 		if modLoaderName != "none" {
-			components := core.ModLoaders[modLoaderName]
-
-			for _, component := range components {
-				versions, latestVersion, err := component.VersionListGetter(mcVersion)
+			if ok {
+				versions, latestVersion, err := loader.VersionListGetter(mcVersion)
 				if err != nil {
 					fmt.Printf("Error loading versions: %s\n", err)
 					os.Exit(1)
 				}
-				componentVersion := viper.GetString("init." + component.Name + "-version")
+				componentVersion := viper.GetString("init." + loader.Name + "-version")
 				if len(componentVersion) == 0 {
-					if viper.GetBool("init." + component.Name + "-latest") {
+					if viper.GetBool("init." + loader.Name + "-latest") {
 						componentVersion = latestVersion
 					} else {
-						componentVersion = initReadValue(component.FriendlyName+" version ["+latestVersion+"]: ", latestVersion)
+						componentVersion = initReadValue(loader.FriendlyName+" version ["+latestVersion+"]: ", latestVersion)
 					}
 				}
 				found := false
@@ -127,10 +113,21 @@ var initCmd = &cobra.Command{
 					}
 				}
 				if !found {
-					fmt.Println("Given " + component.FriendlyName + " version cannot be found!")
+					fmt.Println("Given " + loader.FriendlyName + " version cannot be found!")
 					os.Exit(1)
 				}
-				modLoaderVersions[component.Name] = componentVersion
+				modLoaderVersions[loader.Name] = componentVersion
+			} else {
+				fmt.Println("Given mod loader is not supported! Use \"none\" to specify no modloader, or to configure one manually.")
+				fmt.Print("The following mod loaders are supported: ")
+				keys := make([]string, len(core.ModLoaders))
+				i := 0
+				for k := range core.ModLoaders {
+					keys[i] = k
+					i++
+				}
+				fmt.Println(strings.Join(keys, ", "))
+				os.Exit(1)
 			}
 		}
 
@@ -223,12 +220,10 @@ func init() {
 
 	// ok this is epic
 	for _, loader := range core.ModLoaders {
-		for _, component := range loader {
-			initCmd.Flags().String(component.Name+"-version", "", "The "+component.FriendlyName+" version to use (omit to define interactively)")
-			_ = viper.BindPFlag("init."+component.Name+"-version", initCmd.Flags().Lookup(component.Name+"-version"))
-			initCmd.Flags().Bool(component.Name+"-latest", false, "Automatically select the latest version of "+component.FriendlyName)
-			_ = viper.BindPFlag("init."+component.Name+"-latest", initCmd.Flags().Lookup(component.Name+"-latest"))
-		}
+		initCmd.Flags().String(loader.Name+"-version", "", "The "+loader.FriendlyName+" version to use (omit to define interactively)")
+		_ = viper.BindPFlag("init."+loader.Name+"-version", initCmd.Flags().Lookup(loader.Name+"-version"))
+		initCmd.Flags().Bool(loader.Name+"-latest", false, "Automatically select the latest version of "+loader.FriendlyName)
+		_ = viper.BindPFlag("init."+loader.Name+"-latest", initCmd.Flags().Lookup(loader.Name+"-latest"))
 	}
 }
 
diff --git a/core/versionutil.go b/core/versionutil.go
index 1423d66..2919637 100644
--- a/core/versionutil.go
+++ b/core/versionutil.go
@@ -27,33 +27,22 @@ type ModLoaderComponent struct {
 	VersionListGetter func(mcVersion string) ([]string, string, error)
 }
 
-var ModLoaders = map[string][]ModLoaderComponent{
+var ModLoaders = map[string]ModLoaderComponent{
 	"fabric": {
-		{
-			Name:              "fabric",
-			FriendlyName:      "Fabric loader",
-			VersionListGetter: FetchMavenVersionList("https://maven.fabricmc.net/net/fabricmc/fabric-loader/maven-metadata.xml"),
-		},
 		// There's no need to specify yarn version - yarn isn't used outside a dev environment, and intermediary corresponds to game version anyway
-		//{
-		//	Name:              "yarn",
-		//	FriendlyName:      "Yarn (mappings)",
-		//	VersionListGetter: fetchMavenVersionPrefixedList("https://maven.fabricmc.net/net/fabricmc/yarn/maven-metadata.xml", "Yarn"),
-		//},
+		Name:              "fabric",
+		FriendlyName:      "Fabric loader",
+		VersionListGetter: FetchMavenVersionList("https://maven.fabricmc.net/net/fabricmc/fabric-loader/maven-metadata.xml"),
 	},
 	"forge": {
-		{
-			Name:              "forge",
-			FriendlyName:      "Forge",
-			VersionListGetter: FetchMavenVersionPrefixedListStrip("https://files.minecraftforge.net/maven/net/minecraftforge/forge/maven-metadata.xml", "Forge"),
-		},
+		Name:              "forge",
+		FriendlyName:      "Forge",
+		VersionListGetter: FetchMavenVersionPrefixedListStrip("https://files.minecraftforge.net/maven/net/minecraftforge/forge/maven-metadata.xml", "Forge"),
 	},
 	"liteloader": {
-		{
-			Name:              "liteloader",
-			FriendlyName:      "LiteLoader",
-			VersionListGetter: FetchMavenVersionPrefixedList("http://repo.mumfrey.com/content/repositories/snapshots/com/mumfrey/liteloader/maven-metadata.xml", "LiteLoader"),
-		},
+		Name:              "liteloader",
+		FriendlyName:      "LiteLoader",
+		VersionListGetter: FetchMavenVersionPrefixedList("http://repo.mumfrey.com/content/repositories/snapshots/com/mumfrey/liteloader/maven-metadata.xml", "LiteLoader"),
 	},
 }
 
@@ -137,3 +126,15 @@ func hasPrefixSplitDash(str string, prefix string) bool {
 	}
 	return false
 }
+
+func ComponentToFriendlyName(component string) string {
+	if component == "minecraft" {
+		return "Minecraft"
+	}
+	loader, ok := ModLoaders[component]
+	if ok {
+		return loader.FriendlyName
+	} else {
+		return component
+	}
+}
diff --git a/curseforge/import.go b/curseforge/import.go
index 5f12d1c..4348ce0 100644
--- a/curseforge/import.go
+++ b/curseforge/import.go
@@ -166,6 +166,16 @@ var importCmd = &cobra.Command{
 				},
 				Versions: packImport.Versions(),
 			}
+		} else {
+			for component, version := range packImport.Versions() {
+				packVersion, ok := pack.Versions[component]
+				if !ok {
+					fmt.Println("Set " + core.ComponentToFriendlyName(component) + " version to " + version)
+				} else if packVersion != version {
+					fmt.Println("Set " + core.ComponentToFriendlyName(component) + " version to " + version + " (previously " + version + ")")
+				}
+				pack.Versions[component] = version
+			}
 		}
 		index, err := pack.LoadIndex()
 		if err != nil {