diff --git a/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset b/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset
index ade5e7f48de1ff08a9260496ddfc2b79198f8bae..f9fc5be564a79e954f106da527c28e363985bc02 100644
Binary files a/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset and b/Content/Blueprints/OptiXVRPawnStandaloneBP.uasset differ
diff --git a/Content/Blueprints/Screen_Blueprint.uasset b/Content/Blueprints/Screen_Blueprint.uasset
index 0c2398f882a9d821fd68c1dcfccf0086af51b8b7..9466093bac18f14fd88a32adaf36509bb4841adb 100644
Binary files a/Content/Blueprints/Screen_Blueprint.uasset and b/Content/Blueprints/Screen_Blueprint.uasset differ
diff --git a/Content/Blueprints/TeleportControllerBP.uasset b/Content/Blueprints/TeleportControllerBP.uasset
index 605c4f66458361b8572f8e3d58720e1e1ba41265..f7deaf6c057a530dd037b9592afd28725eafde2e 100644
Binary files a/Content/Blueprints/TeleportControllerBP.uasset and b/Content/Blueprints/TeleportControllerBP.uasset differ
diff --git a/Content/UI/Rotator/WhiteC.uasset b/Content/UI/Rotator/WhiteC.uasset
index 62c54f236f4aba71f7e075fee9d0b00254c8c3e2..ab3f0ac770bd01ea46c571864818e92b42dfc965 100644
Binary files a/Content/UI/Rotator/WhiteC.uasset and b/Content/UI/Rotator/WhiteC.uasset differ
diff --git a/Content/UI/Rotator/WhiteCC.uasset b/Content/UI/Rotator/WhiteCC.uasset
index 8701046330eb3e67f9def3b01aa4341051f9d6b6..afd2a350710de0ede5c611f5dc2ea4190843f9a5 100644
Binary files a/Content/UI/Rotator/WhiteCC.uasset and b/Content/UI/Rotator/WhiteCC.uasset differ
diff --git a/Content/UI/Tablet/ScreenWidget.uasset b/Content/UI/Tablet/ScreenWidget.uasset
index a27d0ddf856b29e1db639ffec1dbff31531ee380..816beec95c69016b67707a8bbd957fb2db47fc71 100644
Binary files a/Content/UI/Tablet/ScreenWidget.uasset and b/Content/UI/Tablet/ScreenWidget.uasset differ
diff --git a/Source/OptiX/Private/OptiXLensComponent.cpp b/Source/OptiX/Private/OptiXLensComponent.cpp
index f97e2916edc6f408af6d888b73f680a64dd085c3..5420a6f45fd4d5f35ff211dc03e7317f4f42da66 100644
--- a/Source/OptiX/Private/OptiXLensComponent.cpp
+++ b/Source/OptiX/Private/OptiXLensComponent.cpp
@@ -244,7 +244,8 @@ void UOptiXLensComponent::UpdateCubemap(FRHICommandListImmediate & RHICmdList)
 
 void UOptiXLensComponent::CleanOptiXComponent()
 {
-	OptiXContext->GetGroup("top_object")->RemoveChild(OptiXTransform);
+	if(OptiXContext != NULL && OptiXContext->GetGroup("top_object") != NULL)
+		OptiXContext->GetGroup("top_object")->RemoveChild(OptiXTransform);
 	OptiXTransform = nullptr;
 
 	Super::CleanOptiXComponent();
diff --git a/Source/OptiX/Private/OptiXObjectComponent.cpp b/Source/OptiX/Private/OptiXObjectComponent.cpp
index adcfd9435e7d65ebb87292d9dbbbb3b7ca269c77..e572cfe3deaa2ca6cfba7dfa9be78ed1fa14ccca 100644
--- a/Source/OptiX/Private/OptiXObjectComponent.cpp
+++ b/Source/OptiX/Private/OptiXObjectComponent.cpp
@@ -218,7 +218,7 @@ void UOptiXCubemapComponent::BeginPlay()
 			continue;
 		}
 
-		if (Itr->GetWidgetClass()->GetName().Contains("ScreenWidget"))
+		if (Itr->GetWidgetClass() != NULL && Itr->GetWidgetClass()->GetName().Contains("ScreenWidget"))
 		{
 			HideActorComponents(Itr->GetOwner());
 		}
@@ -299,8 +299,8 @@ void UOptiXCubemapComponent::CleanOptiXComponent()
 
 	// Remove all the optix stuff again here from top to bottom
 
-
-	OptiXGeometryGroup->RemoveChild(OptiXGeometryInstance);
+	if (OptiXContext == NULL)
+		return;
 	//OptiXGeometryGroup = nullptr; // This should trigger the GC and eat the object if this is the last reference
 
 	OptiXGeometryInstance->RemoveFromRoot();
diff --git a/Source/OptiX/Private/OptiXTargetComponent.cpp b/Source/OptiX/Private/OptiXTargetComponent.cpp
index bb5d4d307d754436fd928751dc9e1cf847823365..8669dfeb4e3b876872e5f9dba4b8fb1032eaa29b 100644
--- a/Source/OptiX/Private/OptiXTargetComponent.cpp
+++ b/Source/OptiX/Private/OptiXTargetComponent.cpp
@@ -207,10 +207,14 @@ void UOptiXTargetComponent::UpdateOptiXComponentVariables()
 
 void UOptiXTargetComponent::CleanOptiXComponent()
 {
-	if (OptiXContext->GetGroup("top_object") != nullptr)
+	if (OptiXContext == NULL)
 	{
-		OptiXContext->GetGroup("top_object")->RemoveChild(OptiXTransform);
+		Super::CleanOptiXComponent();
+		return;
 	}
+
+	OptiXContext->GetGroup("top_object")->RemoveChild(OptiXTransform);
+	
 	OptiXTransform = nullptr;
 	OptiXAcceleration = nullptr;
 
diff --git a/Source/OptiX/Private/SelectableActorBase.cpp b/Source/OptiX/Private/SelectableActorBase.cpp
index 433a720cce080ba4a0cd1da4ff240cf56dbda881..317e78746b1d05a03d2d89c68c4526da8f9b25ab 100644
--- a/Source/OptiX/Private/SelectableActorBase.cpp
+++ b/Source/OptiX/Private/SelectableActorBase.cpp
@@ -47,6 +47,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 
 	TranslateX->CastShadow = 0;
 	TranslateX->bVisibleInReflectionCaptures = false;
+	TranslateX->SetCanEverAffectNavigation(false);
 
 	ArrowX = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ArrowX"));
 	ArrowX->SetupAttachment(TranslateX);
@@ -61,7 +62,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 
 	ArrowX->CastShadow = 0;
 	ArrowX->bVisibleInReflectionCaptures = false;
-
+	ArrowX->SetCanEverAffectNavigation(false);
 
 	TranslateWidgetX = CreateDefaultSubobject<UWidgetComponent>(TEXT("TranslateWidgetX"));
 	TranslateWidgetX->SetAbsolute(false, true, true);
@@ -88,6 +89,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 
 	TranslateY->CastShadow = 0;
 	TranslateY->bVisibleInReflectionCaptures = false;
+	TranslateY->SetCanEverAffectNavigation(false);
 
 	ArrowY = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ArrowY"));
 	ArrowY->SetupAttachment(TranslateY);
@@ -101,6 +103,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 
 	ArrowY->CastShadow = 0;
 	ArrowY->bVisibleInReflectionCaptures = false;
+	ArrowY->SetCanEverAffectNavigation(false);
 
 	TranslateWidgetY = CreateDefaultSubobject<UWidgetComponent>(TEXT("TranslateWidgetY"));	
 	TranslateWidgetY->SetAbsolute(false, true, true);
@@ -121,7 +124,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 	TranslateZ->SetGenerateOverlapEvents(false);
 	TranslateZ->SetHiddenInGame(true);
 	TranslateZ->SetWorldRotation(FRotator(90.f, 0.0f, 0.0f));
-
+	TranslateZ->SetCanEverAffectNavigation(false);
 	TranslateZ->CastShadow = 0;
 	TranslateZ->bVisibleInReflectionCaptures = false;
 
@@ -134,7 +137,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 	ArrowZ->SetGenerateOverlapEvents(false);
 	ArrowZ->SetHiddenInGame(true);
 	ArrowZ->SetAbsolute(false, false, true);
-
+	ArrowZ->SetCanEverAffectNavigation(false);
 	ArrowZ->CastShadow = 0;
 	ArrowZ->bVisibleInReflectionCaptures = false;
 
@@ -163,7 +166,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 	ScaleH->SetGenerateOverlapEvents(false);
 	ScaleH->SetCollisionEnabled(ECollisionEnabled::NoCollision);
 	ScaleH->SetHiddenInGame(true);
-
+	ScaleH->SetCanEverAffectNavigation(false);
 	ScaleH->CastShadow = 0;
 	ScaleH->bVisibleInReflectionCaptures = false;
 
@@ -175,7 +178,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 	ScaleV->SetGenerateOverlapEvents(false);
 	ScaleV->SetCollisionEnabled(ECollisionEnabled::NoCollision);
 	ScaleV->SetHiddenInGame(true);
-
+	ScaleV->SetCanEverAffectNavigation(false);
 	ScaleV->CastShadow = 0;
 	ScaleV->bVisibleInReflectionCaptures = false;
 
@@ -188,7 +191,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 	SupportH->SetGenerateOverlapEvents(false);
 	SupportH->SetHiddenInGame(true);
 	//SupportH->SetWorldLocation(FVector(25, 0, 0));
-
+	SupportH->SetCanEverAffectNavigation(false);
 	SupportH->CastShadow = 0;
 	SupportH->bVisibleInReflectionCaptures = false;
 
@@ -201,7 +204,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 	SupportSphereH->SetGenerateOverlapEvents(false);
 	SupportSphereH->SetHiddenInGame(true);
 	SupportSphereH->SetRelativeLocation(FVector(0, 0, 100));
-
+	SupportSphereH->SetCanEverAffectNavigation(false);
 	SupportSphereH->CastShadow = 0;
 	SupportSphereH->bVisibleInReflectionCaptures = false;
 
@@ -223,7 +226,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 	SupportV->SetGenerateOverlapEvents(false);
 	SupportV->SetHiddenInGame(true);
 	//SupportV->SetWorldLocation(FVector(0, 25, 0));
-
+	SupportV->SetCanEverAffectNavigation(false);
 	SupportV->CastShadow = 0;
 	SupportV->bVisibleInReflectionCaptures = false;
 
@@ -236,7 +239,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 	SupportSphereV->SetGenerateOverlapEvents(false);
 	SupportSphereV->SetHiddenInGame(true);
 	SupportSphereV->SetRelativeLocation(FVector(0, 0, 100));
-
+	SupportSphereV->SetCanEverAffectNavigation(false);
 	SupportSphereV->CastShadow = 0;
 	SupportSphereV->bVisibleInReflectionCaptures = false;
 
@@ -264,7 +267,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 	ConnectorV->SetCollisionEnabled(ECollisionEnabled::NoCollision);
 	ConnectorV->SetMaterial(0, MetalMaterial.Object);
 	ConnectorV->SetMaterial(1, MetalMaterial.Object);
-
+	ConnectorV->SetCanEverAffectNavigation(false);
 	ConnectorV->CastShadow = 0;
 	ConnectorV->bVisibleInReflectionCaptures = false;
 
@@ -279,7 +282,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 	Sphere->SetCollisionEnabled(ECollisionEnabled::NoCollision);
 	Sphere->SetWorldScale3D(FVector(0.05, 0.05, 0.05));
 	Sphere->SetRelativeLocation(FVector(0, 0, 100));
-
+	Sphere->SetCanEverAffectNavigation(false);
 	Sphere->CastShadow = 0;
 	Sphere->bVisibleInReflectionCaptures = false;
 
@@ -293,7 +296,7 @@ ASelectableActorBase::ASelectableActorBase(const FObjectInitializer& ObjectIniti
 	ConnectorH->SetMaterial(1, MetalMaterial.Object);
 	ConnectorH->SetGenerateOverlapEvents(false);
 	ConnectorH->SetCollisionEnabled(ECollisionEnabled::NoCollision);
-
+	ConnectorH->SetCanEverAffectNavigation(false);
 	ConnectorH->CastShadow = 0;
 	ConnectorH->bVisibleInReflectionCaptures = false;
 
diff --git a/Source/OptiX/Public/PickupActorInterface.h b/Source/OptiX/Public/PickupActorInterface.h
index e3dd81800c4143d816c7ef1d89fa9e6b4bd418c8..eb1f72aec1ae21f797d1b4727349ea679e93fea7 100644
--- a/Source/OptiX/Public/PickupActorInterface.h
+++ b/Source/OptiX/Public/PickupActorInterface.h
@@ -1,3 +1,5 @@
+#pragma once
+
 #include "PickupActorInterface.generated.h"
 
 UINTERFACE(BlueprintType)