diff --git a/Content/CAVEOverlay/DoorOverlay.uasset b/Content/CAVEOverlay/DoorOverlay.uasset
index 8e78c0e895f8b30376111b947b007dbdbc9d7d68..a5f77236ed84ef757a4d40f5dfc23acfe14e972c 100644
Binary files a/Content/CAVEOverlay/DoorOverlay.uasset and b/Content/CAVEOverlay/DoorOverlay.uasset differ
diff --git a/RWTHVRToolkit.uplugin b/RWTHVRToolkit.uplugin
index 690ed43563cb6a18ecc61882b4f323688117263a..8c94abd9cf56285d1b426766502ad364015852ec 100644
--- a/RWTHVRToolkit.uplugin
+++ b/RWTHVRToolkit.uplugin
@@ -1,40 +1,53 @@
 {
-  "FileVersion": 3,
-  "Version": 1,
-  "VersionName": "1.0",
-  "FriendlyName": "RWTH VR Toolkit",
-  "Description": "",
-  "Category": "Other",
-  "CreatedBy": "",
-  "CreatedByURL": "",
-  "DocsURL": "",
-  "MarketplaceURL": "",
-  "SupportURL": "",
-  "CanContainContent": true,
-  "IsBetaVersion": false,
-  "Installed": false,
-  "EnabledByDefault": true,
-  "Modules": [
-	{
-      "Name": "Calibratio",
-      "Type": "Runtime",
-      "LoadingPhase": "Default"
-    },
-    {
-      "Name": "RWTHVRToolkit",
-      "Type": "Runtime",
-      "LoadingPhase": "Default"
-    },
-	{	
-	  "Name": "RWTHVRToolkitEditor",
-	  "Type": "Editor",
-	  "LoadingPhase": "PostEngineInit"
-	}
-  ],
-  "Plugins": [
-    {
-      "Name": "nDisplay",
-      "Enabled": true
-    }
-  ]
+	"FileVersion": 3,
+	"Version": 1,
+	"VersionName": "1.0",
+	"FriendlyName": "RWTH VR Toolkit",
+	"Description": "",
+	"Category": "Other",
+	"CreatedBy": "",
+	"CreatedByURL": "",
+	"DocsURL": "",
+	"MarketplaceURL": "",
+	"SupportURL": "",
+	"CanContainContent": true,
+	"IsBetaVersion": false,
+	"Installed": false,
+	"EnabledByDefault": true,
+	"Modules": [
+		{
+			"Name": "Calibratio",
+			"Type": "Runtime",
+			"LoadingPhase": "Default",
+			"WhitelistPlatforms": [
+				"Win64",
+				"Linux"
+			]
+		},
+		{
+			"Name": "RWTHVRCluster",
+			"Type": "Runtime",
+			"LoadingPhase": "Default",
+			"WhitelistPlatforms": [
+				"Win64",
+				"Linux"
+			]
+		},
+		{
+			"Name": "RWTHVRToolkit",
+			"Type": "Runtime",
+			"LoadingPhase": "Default"
+		},
+		{
+			"Name": "RWTHVRToolkitEditor",
+			"Type": "Editor",
+			"LoadingPhase": "PostEngineInit"
+		}
+	],
+	"Plugins": [
+		{
+			"Name": "nDisplay",
+			"Enabled": true
+		}
+	]
 }
\ No newline at end of file
diff --git a/Source/Calibratio/Public/CalibratioActor.h b/Source/Calibratio/Public/CalibratioActor.h
index a2bac0d157826ae3ff515032a5170a7704e40b08..bb59fb1553ec889a0cef8c888759f5f9725b88bc 100644
--- a/Source/Calibratio/Public/CalibratioActor.h
+++ b/Source/Calibratio/Public/CalibratioActor.h
@@ -62,7 +62,7 @@ private:
 	FVector LastVisiblePosition = FVector(NAN, NAN, NAN);
 	bool FirstPositionSet = false;
 	uint32 AcceptedAbscenceTime = 500u; // in Milliseconds
-	UPROPERTY() UDisplayClusterSceneComponent* TrackedClusterComponent = nullptr;
+	UPROPERTY() USceneComponent* TrackedClusterComponent = nullptr;
 
 	//Overlay
 	TSubclassOf<class UCalibratioOverlay> Overlay_Class;
diff --git a/Source/RWTHVRToolkit/Private/Cluster/CAVEOverlay/CAVEOverlay.cpp b/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlay.cpp
similarity index 93%
rename from Source/RWTHVRToolkit/Private/Cluster/CAVEOverlay/CAVEOverlay.cpp
rename to Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlay.cpp
index 6d1aaf8bf75963433b6598d43a62beead95e0fbe..75db39b14032cff1b160f5a4fd093f0973ad3ba3 100644
--- a/Source/RWTHVRToolkit/Private/Cluster/CAVEOverlay/CAVEOverlay.cpp
+++ b/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlay.cpp
@@ -1,6 +1,6 @@
 // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
 
-#include "Cluster/CAVEOverlay/CAVEOverlay.h"
+#include "CAVEOverlay/CAVEOverlay.h"
 
 void FCAVEOverlay::Register()
 {
diff --git a/Source/RWTHVRToolkit/Private/Cluster/CAVEOverlay/CAVEOverlayController.cpp b/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp
similarity index 99%
rename from Source/RWTHVRToolkit/Private/Cluster/CAVEOverlay/CAVEOverlayController.cpp
rename to Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp
index 96b53f9733aecd65ab685348cb3aa1d35412f1ad..fe76403ae3cfc8015dbd0f8bf96177023624e310 100644
--- a/Source/RWTHVRToolkit/Private/Cluster/CAVEOverlay/CAVEOverlayController.cpp
+++ b/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp
@@ -1,6 +1,6 @@
-#include "Cluster/CAVEOverlay/CAVEOverlayController.h"
+#include "CAVEOverlay/CAVEOverlayController.h"
 #include "CoreMinimal.h"
-#include "Cluster/CAVEOverlay/DoorOverlayData.h"
+#include "CAVEOverlay/DoorOverlayData.h"
 #include "IDisplayCluster.h"
 #include "IXRTrackingSystem.h"
 #include "Cluster/IDisplayClusterClusterManager.h"
diff --git a/Source/RWTHVRToolkit/Private/Cluster/ClusterConsole.cpp b/Source/RWTHVRCluster/Private/ClusterConsole.cpp
similarity index 95%
rename from Source/RWTHVRToolkit/Private/Cluster/ClusterConsole.cpp
rename to Source/RWTHVRCluster/Private/ClusterConsole.cpp
index 966f4f01cd87adbb2318c49411c9b69b343cc9c0..200e7904a3d8bd50590b4734ef8ca62b8dd03500 100644
--- a/Source/RWTHVRToolkit/Private/Cluster/ClusterConsole.cpp
+++ b/Source/RWTHVRCluster/Private/ClusterConsole.cpp
@@ -1,4 +1,4 @@
-#include "Cluster/ClusterConsole.h"
+#include "ClusterConsole.h"
 #include "IDisplayCluster.h"
 #include "Cluster/DisplayClusterClusterEvent.h"
 
diff --git a/Source/RWTHVRCluster/Private/RWTHVRCluster.cpp b/Source/RWTHVRCluster/Private/RWTHVRCluster.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6aa76eeb8d429ebda4b86675d5aba6ef4a240a35
--- /dev/null
+++ b/Source/RWTHVRCluster/Private/RWTHVRCluster.cpp
@@ -0,0 +1,18 @@
+#include "RWTHVRCluster.h"
+
+#define LOCTEXT_NAMESPACE "FRWTHVRClusterModule"
+
+void FRWTHVRClusterModule::StartupModule ()
+{
+	ClusterConsole.Register();
+	CAVEOverlay.Register();
+}
+void FRWTHVRClusterModule::ShutdownModule()
+{
+	ClusterConsole.Unregister();
+	CAVEOverlay.Unregister();
+}
+
+#undef LOCTEXT_NAMESPACE
+
+IMPLEMENT_MODULE(FRWTHVRClusterModule, RWTHVRCluster)
\ No newline at end of file
diff --git a/Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/CAVEOverlay.h b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlay.h
similarity index 75%
rename from Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/CAVEOverlay.h
rename to Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlay.h
index c84304d4a6283fc37459a830c27bdffe88904b94..daed234366ae2877aee0a0f43141f5540ae682bd 100644
--- a/Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/CAVEOverlay.h
+++ b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlay.h
@@ -2,8 +2,8 @@
 
 #include "CoreMinimal.h"
 #include "Engine/World.h"
-#include "Cluster/CAVEOverlay/CAVEOverlaySettings.h"
-#include "Cluster/CAVEOverlay/CAVEOverlayController.h"
+#include "CAVEOverlay/CAVEOverlaySettings.h"
+#include "CAVEOverlay/CAVEOverlayController.h"
 #include "Kismet/GameplayStatics.h"
 #include "CAVEOverlay.generated.h"
 
@@ -11,7 +11,7 @@
  * Adds the warning tape, which appears if the user gets too close to the wall for the aixCAVE
  */
 USTRUCT()
-struct RWTHVRTOOLKIT_API FCAVEOverlay
+struct RWTHVRCLUSTER_API FCAVEOverlay
 {
 	GENERATED_BODY()
 	
diff --git a/Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/CAVEOverlayController.h b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h
similarity index 95%
rename from Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/CAVEOverlayController.h
rename to Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h
index 74d41de0c152f32bf77282f3955074fcef553869..1ac575b661a8374e026d2b9c0031c7972fa73152 100644
--- a/Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/CAVEOverlayController.h
+++ b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h
@@ -2,7 +2,7 @@
 
 #include "CoreMinimal.h"
 #include "GameFramework/Actor.h"
-#include "Cluster/CAVEOverlay/DoorOverlayData.h"
+#include "CAVEOverlay/DoorOverlayData.h"
 #include "Cluster/IDisplayClusterClusterManager.h"
 #include "Cluster/DisplayClusterClusterEvent.h"
 #include "CAVEOverlayController.generated.h"
@@ -10,7 +10,7 @@
 DECLARE_LOG_CATEGORY_EXTERN(LogCAVEOverlay, Log, All);
 
 UCLASS()
-class RWTHVRTOOLKIT_API ACAVEOverlayController : public AActor
+class RWTHVRCLUSTER_API ACAVEOverlayController : public AActor
 {
 	GENERATED_BODY()
 	
diff --git a/Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/CAVEOverlaySettings.h b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlaySettings.h
similarity index 89%
rename from Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/CAVEOverlaySettings.h
rename to Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlaySettings.h
index f086b9df45ad1f176c221de958e42eeda766330e..5c3a81dbaee9e282e9dd294ba45454d8fc8495d2 100644
--- a/Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/CAVEOverlaySettings.h
+++ b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlaySettings.h
@@ -11,7 +11,7 @@ enum DefaultActivationType
 };
 
 UCLASS(config=Game, defaultconfig, meta=(DisplayName="CAVE Overlay"))
-class RWTHVRTOOLKIT_API UCAVEOverlaySettings : public UDeveloperSettings
+class RWTHVRCLUSTER_API UCAVEOverlaySettings : public UDeveloperSettings
 {
 	GENERATED_BODY()
 
diff --git a/Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/DoorOverlayData.h b/Source/RWTHVRCluster/Public/CAVEOverlay/DoorOverlayData.h
similarity index 88%
rename from Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/DoorOverlayData.h
rename to Source/RWTHVRCluster/Public/CAVEOverlay/DoorOverlayData.h
index 56ca400a5b5039e72a51211e9990f3453a472a1f..a9d9d380e1560ac309f9c8d113636cf47d0450f0 100644
--- a/Source/RWTHVRToolkit/Public/Cluster/CAVEOverlay/DoorOverlayData.h
+++ b/Source/RWTHVRCluster/Public/CAVEOverlay/DoorOverlayData.h
@@ -12,7 +12,7 @@
  * Used as a parent-class in the overlay widget. Like this we can access the UMG properties in C++
  */
 UCLASS()
-class RWTHVRTOOLKIT_API UDoorOverlayData : public UUserWidget
+class RWTHVRCLUSTER_API UDoorOverlayData : public UUserWidget
 {
 	GENERATED_BODY()
 	
diff --git a/Source/RWTHVRToolkit/Public/Cluster/ClusterConsole.h b/Source/RWTHVRCluster/Public/ClusterConsole.h
similarity index 91%
rename from Source/RWTHVRToolkit/Public/Cluster/ClusterConsole.h
rename to Source/RWTHVRCluster/Public/ClusterConsole.h
index 700dceb5bc51d1e27db4d7714d20bce0d8f7aa2e..81faf82f283e4d8ad19fdf160e08fc5a0812bce1 100644
--- a/Source/RWTHVRToolkit/Public/Cluster/ClusterConsole.h
+++ b/Source/RWTHVRCluster/Public/ClusterConsole.h
@@ -12,7 +12,7 @@
  * This class has to be registered and unregistered. This can easily be done in every StartupModule/ShutdownModule functions.
  */
 USTRUCT()
-struct RWTHVRTOOLKIT_API FClusterConsole
+struct RWTHVRCLUSTER_API FClusterConsole
 {
 	GENERATED_BODY()
 private:
diff --git a/Source/RWTHVRToolkit/Public/Cluster/Events/DisplayClusterEventParameterHelper.h b/Source/RWTHVRCluster/Public/Events/DisplayClusterEventParameterHelper.h
similarity index 100%
rename from Source/RWTHVRToolkit/Public/Cluster/Events/DisplayClusterEventParameterHelper.h
rename to Source/RWTHVRCluster/Public/Events/DisplayClusterEventParameterHelper.h
diff --git a/Source/RWTHVRToolkit/Public/Cluster/Events/DisplayClusterEventWrapper.h b/Source/RWTHVRCluster/Public/Events/DisplayClusterEventWrapper.h
similarity index 100%
rename from Source/RWTHVRToolkit/Public/Cluster/Events/DisplayClusterEventWrapper.h
rename to Source/RWTHVRCluster/Public/Events/DisplayClusterEventWrapper.h
diff --git a/Source/RWTHVRCluster/Public/RWTHVRCluster.h b/Source/RWTHVRCluster/Public/RWTHVRCluster.h
new file mode 100644
index 0000000000000000000000000000000000000000..55849a21459f647e222291723beed6950550b107
--- /dev/null
+++ b/Source/RWTHVRCluster/Public/RWTHVRCluster.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include "CoreMinimal.h"
+#include "CAVEOverlay/CAVEOverlay.h"
+#include "Modules/ModuleManager.h"
+#include "ClusterConsole.h"
+
+class FRWTHVRClusterModule : public IModuleInterface
+{
+public:
+	virtual void StartupModule () override;
+	virtual void ShutdownModule() override;
+
+private:
+	FClusterConsole ClusterConsole;
+	FCAVEOverlay CAVEOverlay;
+};
diff --git a/Source/RWTHVRCluster/RWTHVRCluster.Build.cs b/Source/RWTHVRCluster/RWTHVRCluster.Build.cs
new file mode 100644
index 0000000000000000000000000000000000000000..64f40ab0705ede4185c4f352e6ec5ba2090bf233
--- /dev/null
+++ b/Source/RWTHVRCluster/RWTHVRCluster.Build.cs
@@ -0,0 +1,41 @@
+using UnrealBuildTool;
+
+public class RWTHVRCluster : ModuleRules
+{
+	public RWTHVRCluster(ReadOnlyTargetRules Target) : base(Target)
+	{
+		PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
+		
+		PublicIncludePaths.AddRange(
+			new string[]{}
+		);
+
+		PrivateIncludePaths.AddRange(
+			new string[]{}
+		);
+
+		PublicDependencyModuleNames.AddRange(
+			new string[]
+			{
+			"Core",
+			"CoreUObject",
+			"Engine",
+			"RWTHVRToolkit",
+			"DisplayCluster",
+			"DeveloperSettings",
+            "InputCore",
+            "UMG",
+            "Slate",
+            "SlateCore"
+			}
+		);
+
+		PrivateDependencyModuleNames.AddRange(
+			new string[]{}
+		);
+
+        DynamicallyLoadedModuleNames.AddRange(
+            new string[] { }
+        );
+    }
+}
diff --git a/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp b/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp
index bf76c57c0140c3239bac2d16e89ee351364e0849..10abfc9a1cb160e9ef3edb307019e5a9a28a9f33 100644
--- a/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp
+++ b/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp
@@ -4,14 +4,10 @@
 
 void FRWTHVRToolkitModule::StartupModule ()
 {
-	ClusterConsole.Register();
-	CAVEOverlay.Register();
 	ConsoleActivation.Register();
 }
 void FRWTHVRToolkitModule::ShutdownModule()
 {
-	ClusterConsole.Unregister();
-	CAVEOverlay.Unregister();
 	ConsoleActivation.Unregister();
 }
 
diff --git a/Source/RWTHVRToolkit/Private/Utility/VirtualRealityUtilities.cpp b/Source/RWTHVRToolkit/Private/Utility/VirtualRealityUtilities.cpp
index 2260a1e7261a3addb792a7d531b49da615db6af5..83caec4ba4c7aa5da751329224cc38656d64bf94 100644
--- a/Source/RWTHVRToolkit/Private/Utility/VirtualRealityUtilities.cpp
+++ b/Source/RWTHVRToolkit/Private/Utility/VirtualRealityUtilities.cpp
@@ -115,7 +115,7 @@ EEyeStereoOffset UVirtualRealityUtilities::GetNodeEyeType()
 {
 #if PLATFORM_SUPPORTS_NDISPLAY
 	ADisplayClusterRootActor* RootActor = IDisplayCluster::Get().GetGameMgr()->GetRootActor();
-	return (RootActor) ? RootActor->GetDefaultCamera()->GetStereoOffset() : EDisplayClusterEyeStereoOffset::None;
+	return static_cast<EEyeStereoOffset>((RootActor) ? RootActor->GetDefaultCamera()->GetStereoOffset() : EDisplayClusterEyeStereoOffset::None);
 #else
 	return None;
 #endif
diff --git a/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h b/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h
index eb0b6662ae73da395fcd4c433b6ad601ca0c8ba1..56caf39bd46eafe702cbe60e8a986f8ba68f8fa6 100644
--- a/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h
+++ b/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h
@@ -1,12 +1,9 @@
 #pragma once
 
 #include "CoreMinimal.h"
-#include "Cluster/CAVEOverlay/CAVEOverlay.h"
 #include "Modules/ModuleManager.h"
-#include "Cluster/ClusterConsole.h"
 #include "Fixes/ActivateConsoleInShipping.h"
 
-
 class FRWTHVRToolkitModule : public IModuleInterface
 {
 public:
@@ -14,7 +11,5 @@ public:
 	virtual void ShutdownModule() override;
 
 private:
-	FClusterConsole ClusterConsole;
-	FCAVEOverlay CAVEOverlay;
 	FActivateConsoleInShipping ConsoleActivation;
 };
diff --git a/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs b/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs
index dae5948601267b19b931b4276a4f5ae923fa7627..8326044abdc7d5befc32b973a65af29133cf3346 100644
--- a/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs
+++ b/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs
@@ -40,8 +40,8 @@ public class RWTHVRToolkit : ModuleRules
 		
 		if(Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Linux)
 		{
-			//PublicDependencyModuleNames.Add("DisplayCluster");
-			PublicDefinitions.Add("PLATFORM_SUPPORTS_NDISPLAY=0");
+			PublicDependencyModuleNames.Add("DisplayCluster");
+			PublicDefinitions.Add("PLATFORM_SUPPORTS_NDISPLAY=1");
 		}
 		else
 		{