diff --git a/Tools/HashingToolStart/Program.cs b/Tools/HashingToolStart/Program.cs
index 5e249bc5535387770fb697ebb4b6442ec018b8eb..e95ad9fa05d4bb85192716b405755ecb5f3d923d 100644
--- a/Tools/HashingToolStart/Program.cs
+++ b/Tools/HashingToolStart/Program.cs
@@ -1,91 +1,18 @@
-using System;
-using Microsoft.Win32;
-using System.Diagnostics;
-using System.Reflection;
-using System.IO;
-using System.Windows.Forms;
-using System.Linq;
+using System.Windows.Forms;
+using System;
 
 namespace TUGraz.VECTO
 {
 	class Program
 	{
-		private static string[] validVersions = { "net45" };
-		private static void ValidateVersion(string version)
-		{
-			if (!validVersions.Contains(version))
-				throw new Exception($"Invalid .NET Version supplied. Only the following values are valid: {string.Join(", ", validVersions)}");
-		}
-
 		static void Main(string[] args)
 		{
-			var path = "No path found.";
-			string version = "No version found.";
 			try {
-				if (args.Length > 0) {
-					version = args[0].ToLower();
-					ValidateVersion(version);
-				} else {
-					version = GetHighestNETVersion();
-				}
-
-				path = $"{version}\\{Assembly.GetExecutingAssembly().GetName().Name}.exe";
-				Process.Start(new ProcessStartInfo(path) {
-					WorkingDirectory = Directory.GetCurrentDirectory()
-				});
+				StarterHelper.StartVECTO(args, "net45");
 			} catch (Exception e) {
-				var message = $"Error during starting VECTO.\nDetected .NET version: {version}\nTried to open path: {path}\n{e.Message}";
-				File.AppendAllText("LOG.txt", $"{DateTime.Now} {message}\n");
-				Console.WriteLine(message);
-				MessageBox.Show(message);
+				MessageBox.Show(e.Message);
 			}
 		}
 
-		private static string GetHighestNETVersion()
-		{
-			//todo mk2022-02-17 hashing tool currently only works under net45. this has to be fixed.
-			//if (SupportsNet60()) {
-			//	return "net60";
-			//}
-
-			//if (SupportsNet48()) {
-			//	return "net48";
-			//}
-
-			return "net45";
-		}
-
-		private static bool SupportsNet60()
-		{
-			try {
-				var p = Process.Start(new ProcessStartInfo("dotnet", "--list-runtimes") {
-					CreateNoWindow = true,
-					UseShellExecute = false,
-					RedirectStandardError = true,
-					RedirectStandardOutput = true
-				});
-
-				p.WaitForExit();
-				var output = p.StandardOutput.ReadToEnd();
-				return output.Contains("Microsoft.WindowsDesktop.App 6");
-			} catch (Exception e) {
-				Console.WriteLine(e);
-			}
-
-			return false;
-		}
-
-		private static bool SupportsNet48()
-		{
-			const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
-			using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey)) {
-				if (ndpKey != null && ndpKey.GetValue("Release") != null) {
-					var releaseKey = (int)ndpKey.GetValue("Release");
-					return releaseKey >= 528040;
-				}
-
-				return false;
-			}
-		}
 	}
-}
+}
\ No newline at end of file
diff --git a/Tools/VECTOMultistageStart/Program.cs b/Tools/VECTOMultistageStart/Program.cs
index 69d88bdf179b7874437e5ccf855371e974a34212..aeb288b8560de2928c7339bc928501f4126b11b7 100644
--- a/Tools/VECTOMultistageStart/Program.cs
+++ b/Tools/VECTOMultistageStart/Program.cs
@@ -1,7 +1,18 @@
-namespace TUGraz.VECTO
+using System.Windows.Forms;
+using System;
+
+namespace TUGraz.VECTO
 {
 	class Program
 	{
-		static void Main(string[] args) => StarterHelper.StartVECTO(args, "net48", "net60");
+		static void Main(string[] args)
+		{
+			try {
+				StarterHelper.StartVECTO(args, "net48", "net60");
+			} catch (Exception e) {
+				MessageBox.Show(e.Message);
+			}
+		}
+
 	}
 }
diff --git a/Tools/VECTOStart/Program.cs b/Tools/VECTOStart/Program.cs
index 178aabefbf8e59c15ecad4b119b343f94ccb3928..34b6e45df9c3dde2df7eafbbcce41beaf4fdd926 100644
--- a/Tools/VECTOStart/Program.cs
+++ b/Tools/VECTOStart/Program.cs
@@ -1,7 +1,17 @@
-namespace TUGraz.VECTO
+using System;
+using System.Windows.Forms;
+
+namespace TUGraz.VECTO
 {
 	class Program
 	{
-		static void Main(string[] args) => StarterHelper.StartVECTO(args);
+		static void Main(string[] args)
+		{
+			try {
+				StarterHelper.StartVECTO(args);
+			} catch (Exception e) {
+				MessageBox.Show(e.Message);
+			}
+		}
 	}
 }
diff --git a/Tools/VECTOStart/StarterHelper.cs b/Tools/VECTOStart/StarterHelper.cs
index 6ff0fe0d428fb44566758321b6a39c93429906ea..1e87aafd8f831ef2fa8b59eb47c698a7088a6e36 100644
--- a/Tools/VECTOStart/StarterHelper.cs
+++ b/Tools/VECTOStart/StarterHelper.cs
@@ -4,7 +4,6 @@ using System.Collections;
 using System.Diagnostics;
 using System.IO;
 using System.Reflection;
-using System.Windows.Forms;
 
 namespace TUGraz.VECTO
 {
@@ -33,7 +32,7 @@ namespace TUGraz.VECTO
 				var message = $"Error during starting VECTO.\nDetected .NET version: {version}\nTried to open path: {path}\n{e.Message}";
 				File.AppendAllText("LOG.txt", $"{DateTime.Now} {message}\n");
 				Console.WriteLine(message);
-				MessageBox.Show(message);
+				throw new Exception(message);
 			}
 		}