diff --git a/Source/NDisplayLaunchButton/Private/NDisplayLaunchButton.cpp b/Source/NDisplayLaunchButton/Private/NDisplayLaunchButton.cpp
index c400aed5ab2ac0f6dd546af40c51b2c8036eb352..aecc2ef83c528777eeaf0938ccc7948ebf262e99 100644
--- a/Source/NDisplayLaunchButton/Private/NDisplayLaunchButton.cpp
+++ b/Source/NDisplayLaunchButton/Private/NDisplayLaunchButton.cpp
@@ -138,59 +138,24 @@ void FNDisplayLaunchButtonModule::PluginButtonClicked()
 		GEngine->AddOnScreenDebugMessage(-1, 3, FColor::White, TEXT("The Button is set to do nothing."));
 		return;
 	}
+	
 	FString InsightParameters = "";
 	if(Settings->bEnableInsights)
 	{
-		if (Settings->bStatNamedEvents)
-		{
-			InsightParameters.Append("-statnamedevents");
-		}
-		FString TraceChannels = "";
-		if (Settings->bLog)
-		{
-			TraceChannels.Append("log,");
-		}
-		if (Settings->bBookmark)
-		{
-			TraceChannels.Append("bookmark,");
-		}
-		if (Settings->bFrame)
-		{
-			TraceChannels.Append("frame,");
-		}
-		if (Settings->bCPU)
-		{
-			TraceChannels.Append("cpu,");
-		}
-		if (Settings->bGPU)
-		{
-			TraceChannels.Append("gpu,");
-		}
-		if (Settings->bLoadTime)
-		{
-			TraceChannels.Append("loadtime,");
-		}
-		if (Settings->bFile)
-		{
-			TraceChannels.Append("file,");
-		}
-		if (Settings->bNet)
-		{
-			TraceChannels.Append("net,");
-		}
-		if (TraceChannels.Len() > 0)
-		{
-			// There's probably a better way of doing this...
-			TraceChannels.RemoveFromEnd(",");
-			InsightParameters.Append(" -trace=");
-			InsightParameters.Append(TraceChannels);
-		}
-		if (Settings->TracehostIP.Len() > 0)
-		{
-			InsightParameters.Append(" -tracehost=");
-			InsightParameters.Append(Settings->TracehostIP);
-		}
-		InsightParameters.RemoveFromStart(" ");
+		if (Settings->bStatNamedEvents)	InsightParameters.Append("-statnamedevents");
+		
+		TArray<FString> TraceChannels;
+		if (Settings->bLog) TraceChannels.Add("log");
+		if (Settings->bBookmark) TraceChannels.Add("bookmark");
+		if (Settings->bFrame) TraceChannels.Add("frame");
+		if (Settings->bCPU) TraceChannels.Add("cpu");
+		if (Settings->bGPU) TraceChannels.Add("gpu");
+		if (Settings->bLoadTime) TraceChannels.Add("loadtime");
+		if (Settings->bFile) TraceChannels.Add("file");
+		if (Settings->bNet) TraceChannels.Add("net");
+		if (TraceChannels.Num() > 0) InsightParameters.Append(FString::Printf(TEXT(" -trace=%s"), *FString::Join(TraceChannels, TEXT(","))));
+		
+		if (Settings->TracehostIP.Len() > 0) InsightParameters.Append(FString::Printf(TEXT(" -tracehost=%s"), *Settings->TracehostIP));
 	}
 	
 	/* Disable Plugins temporarily */
diff --git a/Source/NDisplayLaunchButton/Public/NDisplayLaunchButtonSettings.h b/Source/NDisplayLaunchButton/Public/NDisplayLaunchButtonSettings.h
index 187ffd80fef402dc5fd1cd709355877beadb9052..538bb468f1577f80fa27a28e2c2734bae9908d55 100644
--- a/Source/NDisplayLaunchButton/Public/NDisplayLaunchButtonSettings.h
+++ b/Source/NDisplayLaunchButton/Public/NDisplayLaunchButtonSettings.h
@@ -34,9 +34,6 @@ public:
 	UPROPERTY(EditAnywhere, config, Category = "General", meta = (DisplayName = "Start "))
 	TEnumAsByte<ButtonLaunchType> LaunchType = ButtonLaunchType_MiniCAVE;
 
-	UPROPERTY(EditAnywhere, config, Category = "General", meta = (DisplayName = "Unreal Insights "))
-	bool bEnableInsights = false;
-
 	/*
 	 * TwoScreen Options
 	 */
@@ -137,6 +134,8 @@ public:
 	/*
 	 * Insights Options
 	 */
+	UPROPERTY(EditAnywhere, config, Category = "General|Insights", meta = (DisplayName = "Unreal Insights "))
+	bool bEnableInsights = false;
 	UPROPERTY(EditAnywhere, config, Category = "General|Insights", meta = (DisplayName = "Stat Named Events", EditCondition = "bEnableInsights==true"))
 	bool bStatNamedEvents = true;
 	UPROPERTY(EditAnywhere, config, Category = "General|Insights", meta = (DisplayName = "Tracehost IP", EditCondition = "bEnableInsights==true"))