diff --git a/Assets/InteractionEngine/CommunicationEvents.cs b/Assets/InteractionEngine/CommunicationEvents.cs
index 83ec7a29579a84540eae73b55d4797060e8da840..edfa3b135b8f3c214d8d4101251f03346da65f80 100644
--- a/Assets/InteractionEngine/CommunicationEvents.cs
+++ b/Assets/InteractionEngine/CommunicationEvents.cs
@@ -59,16 +59,7 @@ public class SignalEvent : UnityEvent {
     */
     public static FactEvent AddFactEvent = new FactEvent();
     public static FactEvent RemoveFactEvent = new FactEvent();
-
-    //public static MouseOverFactEvent HighlightEvent = new MouseOverFactEvent();
-    //public static MouseOverFactEvent EndHighlightEvent = new MouseOverFactEvent();
-
-    public static ShinyEvent StartLineDrawingEvent = new ShinyEvent();
-    public static ShinyEvent StopLineDrawingEvent = new ShinyEvent();
-    public static ShinyEvent StartCurveDrawingEvent = new ShinyEvent();
-    public static ShinyEvent StopCurveDrawingEvent = new ShinyEvent();
-    //Event for stopping all previews -> Made When ToolMode is changed
-    public static ShinyEvent StopPreviewsEvent = new ShinyEvent();
+    
     public static ShinyEvent PushoutFactEvent = new ShinyEvent();
     public static ShinyEvent PushoutFactEndEvent = new ShinyEvent();
     public static ShinyEvent PushoutFactFailEvent = new ShinyEvent();
@@ -77,8 +68,6 @@ public class SignalEvent : UnityEvent {
     public static SignalEvent gameNotSucceededEvent = new SignalEvent();
 
 
-
-
     //------------------------------------------------------------------------------------
     //-------------------------------Global Variables-------------------------------------
     //Global ActiveToolMode
diff --git a/Assets/InteractionEngine/FactManager.cs b/Assets/InteractionEngine/FactManager.cs
index 3f2fa82082663763e797d7c0aceac469726e43e0..cb3cc727a7773034d687d0bd21df904679d05a49 100644
--- a/Assets/InteractionEngine/FactManager.cs
+++ b/Assets/InteractionEngine/FactManager.cs
@@ -18,7 +18,6 @@ public class FactManager : MonoBehaviour
     // Start is called before the first frame update
     void Start()
     {
-        CommunicationEvents.ToolModeChangedEvent.AddListener(OnToolModeChanged);
 
         //  CommunicationEvents.SnapEvent.AddListener(Rocket);
 
@@ -242,112 +241,6 @@ public void Rocket(RaycastHit hit)
         //90degree angle
         CommunicationEvents.AddFactEvent.Invoke(this.AddAngleFact(idB, idA, idC, GetFirstEmptyID()));
     }
-
-    //Creating 90-degree Angles
-    public void SmallRocket(RaycastHit hit, int idA)
-    {
-        //enable collider to measure angle to the treetop
-
-
-
-        int idB = this.GetFirstEmptyID();
-        CommunicationEvents.AddFactEvent.Invoke(this.AddPointFact(hit, idB));
-        Facts[idB].Representation.GetComponentInChildren<Collider>().enabled = true;
-
-        //third point with unknown height
-        int idC = this.GetFirstEmptyID();
-        var skyHit = hit;
-        skyHit.point = (Facts[idA] as PointFact).Point + Vector3.up * 20;
-        CommunicationEvents.AddFactEvent.Invoke(this.AddPointFact(skyHit, idC));
-
-        //lines
-        CommunicationEvents.AddFactEvent.Invoke(this.AddLineFact(idA, idB, this.GetFirstEmptyID()));
-        //lines
-        CommunicationEvents.AddFactEvent.Invoke(this.AddLineFact(idA, idC, this.GetFirstEmptyID()));
-
-        //90degree angle
-        CommunicationEvents.AddFactEvent.Invoke(this.AddAngleFact(idB, idA, idC, GetFirstEmptyID()));
-    }*/
-
-    public void OnToolModeChanged(ToolMode ActiveToolMode)
-    {
-
-        //TODO: instead of enabling/disabling colliders we want to change the raycast mask
-        switch (ActiveToolMode)
-        {
-            case ToolMode.MarkPointMode:
-                //If MarkPointMode is activated we want to have the ability to mark the point
-                //everywhere, independent of already existing facts
-                foreach (Fact fact in Facts)
-                {
-                
-                    GameObject gO = fact.Representation;
-                    if (gO == null) continue;
-                    if ((gO.layer == LayerMask.NameToLayer("Ray")))
-                            gO.GetComponentInChildren<Collider>().enabled = true;
-                }
-                break;
-
-            case ToolMode.CreateRayMode:
-                //same as for line mode atm
-
-            case ToolMode.CreateLineMode:
-                //If CreateLineMode is activated we want to have the ability to select points for the Line
-                //but we don't want to have the ability to select Lines or Angles
-                foreach (Fact fact in Facts)
-                {
-                    GameObject gO = fact.Representation;
-                    if (gO == null) continue;
-                    if (gO.layer == LayerMask.NameToLayer("Line") || gO.layer == LayerMask.NameToLayer("Angle")|| gO.layer == LayerMask.NameToLayer("Ray"))
-                    {
-                        gO.GetComponentInChildren<Collider>().enabled = false;
-                    }
-                    else if (gO.layer == LayerMask.NameToLayer("Point"))
-                    {
-                        gO.GetComponentInChildren<Collider>().enabled = true;
-                    }
-                }
-                break;
-    
-       
-                
-            case ToolMode.CreateAngleMode:
-                //If CreateAngleMode is activated we want to have the ability to select Points for the Angle
-                //but we don't want to have the ability to select Lines or Angles
-                foreach (Fact fact in Facts)
-                {
-                    GameObject gO = fact.Representation;
-                    if (gO == null) continue;
-                    if (gO.layer == LayerMask.NameToLayer("Line") || gO.layer == LayerMask.NameToLayer("Angle"))
-                    {
-                        gO.GetComponentInChildren<Collider>().enabled = false;
-                    }
-                    else if (gO.layer == LayerMask.NameToLayer("Point"))
-                    {
-                        gO.GetComponentInChildren<Collider>().enabled = true;
-                    }
-                }
-                break;
-                /*
-            case ToolMode.DeleteMode:
-                //If DeleteMode is activated we want to have the ability to delete every Fact
-                //independent of the concrete type of fact
-                foreach (Fact fact in Facts)
-                {
-                    GameObject gO = fact.Representation;
-                    gO.GetComponentInChildren<Collider>().enabled = true;
-                }
-                break;*/
-            case ToolMode.ExtraMode:
-                /*foreach (Fact fact in Facts)
-                {
-
-                }
-                */
-                break;
-        }
-        //Stop PreviewEvents in ShineThings on ToolModeChange
-        CommunicationEvents.StopPreviewsEvent.Invoke(null);
-    }
+    */
 
 }
diff --git a/Assets/InteractionEngine/FactSpawner.cs b/Assets/InteractionEngine/FactSpawner.cs
index 79189f1416665ec10dcc7daa006c23325d237440..9b82576dbc7d08a9cc7ed7a33f4e6b4b6052cbad 100644
--- a/Assets/InteractionEngine/FactSpawner.cs
+++ b/Assets/InteractionEngine/FactSpawner.cs
@@ -54,14 +54,6 @@ public void SpawnPoint(PointFact fact)
         point.GetComponentInChildren<TextMeshPro>().text = letter;
         point.GetComponent<FactObject>().Id = fact.Id;
         fact.Representation = point;
-
-        //If a new Point was spawned -> We are in MarkPointMode -> Then we want the collider to be disabled
-        //Hint: Thats why by now, if we mark a Point in an other mode than MarkPointMode, the 
-        //Collider will be set disabled
-        if(CommunicationEvents.ActiveToolMode != ToolMode.ExtraMode)
-            point.GetComponentInChildren<SphereCollider>().enabled = false;
-    
-
     }
 
     public void SpawnLine(LineFact lineFact)
@@ -94,10 +86,6 @@ public void SpawnLine(LineFact lineFact)
         line.GetComponentInChildren<TextMeshPro>().text = ((Char)(64 + pointFact1.Id + 1)).ToString() + ((Char)(64 + pointFact2.Id + 1)).ToString();
         line.GetComponentInChildren<TextMeshPro>().text += " = " + Math.Round((point1-point2).magnitude, 2) + " m";
         line.GetComponentInChildren<FactObject>().Id = lineFact.Id;
-        //If a new Line was spawned -> We are in CreateLineMode -> Then we want the collider to be disabled
-        if (CommunicationEvents.ActiveToolMode != ToolMode.ExtraMode)
-            //Deactivate the Collider of the Line itself
-            line.transform.GetComponentInChildren<BoxCollider>().enabled = false;
         lineFact.Representation = line;
 
     }
@@ -139,12 +127,7 @@ public void SpawnRay(RayFact lineFact)
         line.GetComponentInChildren<TextMeshPro>().text = letter;
      
         line.GetComponentInChildren<FactObject>().Id = lineFact.Id;
-        //If a new Line was spawned -> We are in CreateLineMode -> Then we want the collider to be disabled
-        if (CommunicationEvents.ActiveToolMode != ToolMode.ExtraMode)
-            //Deactivate the Collider of the Line itself
-            line.transform.GetComponentInChildren<BoxCollider>().enabled = false;
         lineFact.Representation = line;
-
     }
     
     //Spawn an angle: point with id = angleFact.Pid2 is the point where the angle gets applied
@@ -231,10 +214,6 @@ public void SpawnAngle(AngleFact angleFact)
         }
 
         angle.GetComponentInChildren<FactObject>().Id = angleFact.Id;
-        //If a new Angle was spawned -> We are in CreateAngleMode -> Then we want the collider to be disabled
-        if (CommunicationEvents.ActiveToolMode != ToolMode.ExtraMode)
-            //Deactivate the Collider of the Angle itself
-            angle.transform.GetComponentInChildren<MeshCollider>().enabled = false;
         angleFact.Representation = angle;
 
     }
diff --git a/Assets/AngleTool.cs b/Assets/InteractionEngine/Gadgets/AngleTool.cs
similarity index 98%
rename from Assets/AngleTool.cs
rename to Assets/InteractionEngine/Gadgets/AngleTool.cs
index d6db88f1ada18c6ad761024b521f2319f156b25a..47ebeebc7705a0328135fe8b2dd03bda8923c6e7 100644
--- a/Assets/AngleTool.cs
+++ b/Assets/InteractionEngine/Gadgets/AngleTool.cs
@@ -25,19 +25,20 @@ public class AngleTool : Gadget
     private Vector3 angleMiddlePoint;
     private float curveRadius;
 
-    //Initialize Gadget when enabled AND activated
-    void OnEnable()
-    {
-        this.ResetGadget();
-    }
-
-    void Start()
+    void Awake()
     {
         if (FactManager == null) FactManager = GameObject.FindObjectOfType<FactManager>();
         CommunicationEvents.TriggerEvent.AddListener(OnHit);
         if (this.Cursor == null) this.Cursor = GameObject.FindObjectOfType<WorldCursor>();
     }
 
+    //Initialize Gadget when enabled AND activated
+    void OnEnable()
+    {
+        this.Cursor.setLayerMask(~this.ignoreLayerMask.value);
+        this.ResetGadget();
+    }
+
     public override void OnHit(RaycastHit hit)
     {
         if (!this.isActiveAndEnabled) return;
diff --git a/Assets/AngleTool.cs.meta b/Assets/InteractionEngine/Gadgets/AngleTool.cs.meta
similarity index 100%
rename from Assets/AngleTool.cs.meta
rename to Assets/InteractionEngine/Gadgets/AngleTool.cs.meta
diff --git a/Assets/InteractionEngine/Gadgets/ExtraGadget.cs b/Assets/InteractionEngine/Gadgets/ExtraGadget.cs
new file mode 100644
index 0000000000000000000000000000000000000000..f8b389435c9894ebeeb2760cc8a245cf5b741aa5
--- /dev/null
+++ b/Assets/InteractionEngine/Gadgets/ExtraGadget.cs
@@ -0,0 +1,27 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using static CommunicationEvents;
+
+public class ExtraGadget : Gadget
+{
+    public WorldCursor Cursor;
+
+    void Awake()
+    {
+        if (FactManager == null) FactManager = GameObject.FindObjectOfType<FactManager>();
+        CommunicationEvents.TriggerEvent.AddListener(OnHit);
+        if (this.Cursor == null) this.Cursor = GameObject.FindObjectOfType<WorldCursor>();
+    }
+
+    void OnEnable()
+    {
+        this.Cursor.setLayerMask(~this.ignoreLayerMask.value);
+    }
+
+    public override void OnHit(RaycastHit hit)
+    {
+
+    }
+
+}
diff --git a/Assets/InteractionEngine/Gadgets/ExtraGadget.cs.meta b/Assets/InteractionEngine/Gadgets/ExtraGadget.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..0f1972666f182cc6ac0b07df6df3887428018254
--- /dev/null
+++ b/Assets/InteractionEngine/Gadgets/ExtraGadget.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 38cd422d38f88564e81d012b615cc77a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/InteractionEngine/Gadgets/Gadget.cs b/Assets/InteractionEngine/Gadgets/Gadget.cs
index 587113a3f670e24aad24ac6219b69cce450b0b77..dd8f320ba926b0e756a605c9ddf7b00308e402e4 100644
--- a/Assets/InteractionEngine/Gadgets/Gadget.cs
+++ b/Assets/InteractionEngine/Gadgets/Gadget.cs
@@ -9,17 +9,14 @@ public class Gadget : MonoBehaviour
     public ToolMode ToolMode;
     public Sprite Sprite;
     public FactManager FactManager;
-    // Start is called before the first frame update
-    void Start()
+    public LayerMask ignoreLayerMask;
+
+    void Awake()
     {
         if (FactManager == null) FactManager = GameObject.FindObjectOfType<FactManager>();
         CommunicationEvents.TriggerEvent.AddListener(OnHit);
 
     }
 
-    public virtual void OnHit(RaycastHit hit)
-    {
-
-    }
-
+    public virtual void OnHit(RaycastHit hit){}
 }
diff --git a/Assets/LineTool.cs b/Assets/InteractionEngine/Gadgets/LineTool.cs
similarity index 91%
rename from Assets/LineTool.cs
rename to Assets/InteractionEngine/Gadgets/LineTool.cs
index ea72df96169808468b6c3d1e3c3a45cfef70bc51..f191b5b6b3778d8d4fdae0cca39250c4a60748df 100644
--- a/Assets/LineTool.cs
+++ b/Assets/InteractionEngine/Gadgets/LineTool.cs
@@ -16,19 +16,20 @@ public class LineTool : Gadget
     private List<Vector3> linePositions = new List<Vector3>();
     public Material linePreviewMaterial;
 
-    //Initialize Gadget when enabled AND activated
-    void OnEnable()
-    {
-        this.ResetGadget();
-    }
-
-    void Start()
+    void Awake()
     {
         if (FactManager == null) FactManager = GameObject.FindObjectOfType<FactManager>();
         CommunicationEvents.TriggerEvent.AddListener(OnHit);
         if (this.Cursor == null) this.Cursor = GameObject.FindObjectOfType<WorldCursor>();
     }
 
+    //Initialize Gadget when enabled AND activated
+    void OnEnable()
+    {
+        this.Cursor.setLayerMask(~this.ignoreLayerMask.value);
+        this.ResetGadget();
+    }
+
     public override void OnHit(RaycastHit hit)
     {
         if (!this.isActiveAndEnabled) return;
@@ -46,14 +47,7 @@ public override void OnHit(RaycastHit hit)
                 //Create LineFact
                 //Check if exactly the same line/distance already exists
                 if (!FactManager.factAlreadyExists(new int[] { this.LineModeFirstPointSelected.Id, tempFact.Id }))
-                    //TODO: That won't work anymore because of gadget-refactoring
-                    if (ActiveToolMode == ToolMode.CreateLineMode)
-                        CommunicationEvents.AddFactEvent.Invoke(FactManager.AddLineFact(this.LineModeFirstPointSelected.Id, tempFact.Id, FactManager.GetFirstEmptyID()));
-                    else
-                    {
-                        CommunicationEvents.AddFactEvent.Invoke(FactManager.AddRayFact(this.LineModeFirstPointSelected.Id, tempFact.Id, FactManager.GetFirstEmptyID()));
-
-                    }
+                    CommunicationEvents.AddFactEvent.Invoke(FactManager.AddRayFact(this.LineModeFirstPointSelected.Id, tempFact.Id, FactManager.GetFirstEmptyID()));
 
                 this.ResetGadget();
             }
diff --git a/Assets/LineTool.cs.meta b/Assets/InteractionEngine/Gadgets/LineTool.cs.meta
similarity index 100%
rename from Assets/LineTool.cs.meta
rename to Assets/InteractionEngine/Gadgets/LineTool.cs.meta
diff --git a/Assets/InteractionEngine/Gadgets/Pointer.cs b/Assets/InteractionEngine/Gadgets/Pointer.cs
index c4b859cb21b1da7efab49465fb3cd18b9e7fcd9d..9fe58f5cde14d00d1518afac560db4d164464a25 100644
--- a/Assets/InteractionEngine/Gadgets/Pointer.cs
+++ b/Assets/InteractionEngine/Gadgets/Pointer.cs
@@ -5,6 +5,26 @@
 
 public class Pointer : Gadget
 {
+    public WorldCursor Cursor;
+
+    void Awake()
+    {
+        if (FactManager == null) FactManager = GameObject.FindObjectOfType<FactManager>();
+        CommunicationEvents.TriggerEvent.AddListener(OnHit);
+        if (this.Cursor == null) this.Cursor = GameObject.FindObjectOfType<WorldCursor>();
+    }
+
+    /*
+    public override void activate() {
+        this.activated = true;
+        this.Cursor.setLayerMask(this.layerMask);
+    }
+    */
+
+    void OnEnable()
+    {
+        this.Cursor.setLayerMask(~this.ignoreLayerMask.value);
+    }
 
     public override void OnHit(RaycastHit hit)
     {
diff --git a/Assets/Tape.cs b/Assets/InteractionEngine/Gadgets/Tape.cs
similarity index 91%
rename from Assets/Tape.cs
rename to Assets/InteractionEngine/Gadgets/Tape.cs
index e29372f2e049a63d4ce75c820215923ad3080b82..2443430baf603e10e00d10fd1acd966305d92f43 100644
--- a/Assets/Tape.cs
+++ b/Assets/InteractionEngine/Gadgets/Tape.cs
@@ -16,19 +16,20 @@ public class Tape : Gadget
     private List<Vector3> linePositions = new List<Vector3>();
     public Material linePreviewMaterial;
 
-    //Initialize Gadget when enabled AND activated
-    void OnEnable()
-    {
-        this.ResetGadget();
-    }
-
-    void Start()
+    void Awake()
     {
         if (FactManager == null) FactManager = GameObject.FindObjectOfType<FactManager>();
         CommunicationEvents.TriggerEvent.AddListener(OnHit);
         if (this.Cursor == null) this.Cursor = GameObject.FindObjectOfType<WorldCursor>();
     }
 
+    //Initialize Gadget when enabled AND activated
+    void OnEnable()
+    {
+        this.Cursor.setLayerMask(~this.ignoreLayerMask.value);
+        this.ResetGadget();
+    }
+
     public override void OnHit(RaycastHit hit)
     {
         if (!this.isActiveAndEnabled) return;
@@ -46,14 +47,8 @@ public override void OnHit(RaycastHit hit)
                 //Create LineFact
                 //Check if exactly the same line/distance already exists
                 if (!FactManager.factAlreadyExists(new int[] { this.TapeModeFirstPointSelected.Id, tempFact.Id }))
-                    //TODO: That won't work anymore because of gadget-refactoring
-                    if (ActiveToolMode == ToolMode.CreateLineMode)
-                        CommunicationEvents.AddFactEvent.Invoke(FactManager.AddLineFact(this.TapeModeFirstPointSelected.Id, tempFact.Id, FactManager.GetFirstEmptyID()));
-                    else
-                    {
-                        CommunicationEvents.AddFactEvent.Invoke(FactManager.AddRayFact(this.TapeModeFirstPointSelected.Id, tempFact.Id, FactManager.GetFirstEmptyID()));
-
-                    }
+                    CommunicationEvents.AddFactEvent.Invoke(FactManager.AddLineFact(this.TapeModeFirstPointSelected.Id, tempFact.Id, FactManager.GetFirstEmptyID()));
+                    
 
                 this.ResetGadget();
             }
diff --git a/Assets/Tape.cs.meta b/Assets/InteractionEngine/Gadgets/Tape.cs.meta
similarity index 100%
rename from Assets/Tape.cs.meta
rename to Assets/InteractionEngine/Gadgets/Tape.cs.meta
diff --git a/Assets/InteractionEngine/WorldCursor.cs b/Assets/InteractionEngine/WorldCursor.cs
index cdecea4b150fcfa890db76581c6667c83814ecd2..7618c9174f0b7b7a975b9999d59738fcdcf74503 100644
--- a/Assets/InteractionEngine/WorldCursor.cs
+++ b/Assets/InteractionEngine/WorldCursor.cs
@@ -11,6 +11,14 @@ public class WorldCursor : MonoBehaviour
 {
     public RaycastHit Hit;
     private Camera Cam;
+    private int layerMask;
+
+    private void Awake()
+    {
+        this.layerMask = LayerMask.GetMask("Player", "TalkingZone");
+        //Ignore player and TalkingZone
+        this.layerMask = ~this.layerMask;
+    }
 
     void Start()
     {
@@ -21,6 +29,10 @@ void Start()
         CultureInfo.CurrentCulture = new CultureInfo("en-US");
     }
 
+    public void setLayerMask(int layerMask) {
+        this.layerMask = layerMask;
+    }
+
   
     /// <summary>
     /// Gets the coordinates of the intersection point of two lines.
@@ -56,13 +68,11 @@ public Vector2 GetIntersectionPointCoordinates(Vector2 A1, Vector2 A2, Vector2 B
     void Update()
     {
         Ray ray = Cam.ScreenPointToRay(Input.mousePosition);
-        
-        int layerMask = LayerMask.GetMask("Player", "TalkingZone");
-        //Ignore player and TalkingZone
-        layerMask = ~layerMask;
+        RaycastHit tempHit;
 
-        if(Physics.Raycast(ray, out Hit, 30f, layerMask)){
+        if(Physics.Raycast(ray, out tempHit, 30f, this.layerMask)){
 
+            this.Hit = tempHit;
             // Debug.Log(Hit.transform.tag);
             if (Hit.collider.transform.CompareTag("SnapZone"))
             {
@@ -111,9 +121,10 @@ void Update()
         }
         else
         {
+            this.Hit = new RaycastHit();
             var dist = 10f;
-            if (Hit.transform!=null)
-            dist = (Camera.main.transform.position - Hit.transform.position).magnitude;
+            if (tempHit.transform!=null)
+            dist = (Camera.main.transform.position - tempHit.transform.position).magnitude;
             transform.position = Cam.ScreenToWorldPoint(Input.mousePosition + new Vector3(0,0,1) *dist);
             transform.up = -Cam.transform.forward;
         }
diff --git a/Assets/TreeWorld_02.unity b/Assets/TreeWorld_02.unity
index f4e50110578ab97b7019e12836787f46b63651eb..b882dc688eaf5733dbc73b1b7d62d218ae76f832 100644
--- a/Assets/TreeWorld_02.unity
+++ b/Assets/TreeWorld_02.unity
@@ -21571,6 +21571,11 @@ PrefabInstance:
       propertyPath: m_Materials.Array.data[0]
       value: 
       objectReference: {fileID: 2100000, guid: d9c43ce51f1a01d41a18fae03c0d406c, type: 2}
+    - target: {fileID: 2600518978420199386, guid: 9cb473a50d07f1245b0f6a7ee2557d4f,
+        type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 3052661700889384477, guid: 9cb473a50d07f1245b0f6a7ee2557d4f,
         type: 3}
       propertyPath: m_RootOrder
@@ -21769,6 +21774,12 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 604017021}
   m_PrefabAsset: {fileID: 0}
+--- !u!4 &1160544320 stripped
+Transform:
+  m_CorrespondingSourceObject: {fileID: 1085307961, guid: 2ba8d552442ba664e8e567adee683a11,
+    type: 3}
+  m_PrefabInstance: {fileID: 2120427836}
+  m_PrefabAsset: {fileID: 0}
 --- !u!4 &1161290928 stripped
 Transform:
   m_CorrespondingSourceObject: {fileID: 2222111361405018444, guid: 88f2fd29f58b9734683512546acec310,
@@ -23706,6 +23717,96 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 494f6d43e170e9145bc7865d243ee00b, type: 3}
+--- !u!1001 &1266672920
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 1461116882}
+    m_Modifications:
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0.464
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0.39499974
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0.663414
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalRotation.y
+      value: -0.38302216
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalRotation.z
+      value: -0.5566704
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 0.3213938
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_RootOrder
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: -100
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: -120
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalScale.x
+      value: 0.08
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalScale.y
+      value: 0.10000001
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_LocalScale.z
+      value: 0.099999994
+      objectReference: {fileID: 0}
+    - target: {fileID: 919132149155446097, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+        type: 3}
+      propertyPath: m_Name
+      value: hammer
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: 77b64dedcbc1d5548b2c91fcda846c48, type: 3}
+--- !u!4 &1266672921 stripped
+Transform:
+  m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 77b64dedcbc1d5548b2c91fcda846c48,
+    type: 3}
+  m_PrefabInstance: {fileID: 1266672920}
+  m_PrefabAsset: {fileID: 0}
 --- !u!4 &1267030562 stripped
 Transform:
   m_CorrespondingSourceObject: {fileID: 3356751432537613521, guid: ffbddc4ef9676cc419e81e06aaa836d8,
@@ -28321,6 +28422,57 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: f1fc5bb90ac285e4486771552d63bcb8, type: 3}
+--- !u!1 &1461116881
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1461116882}
+  - component: {fileID: 1461116883}
+  m_Layer: 9
+  m_Name: ExtraTool
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1461116882
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1461116881}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1266672921}
+  m_Father: {fileID: 1160544320}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1461116883
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1461116881}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 38cd422d38f88564e81d012b615cc77a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  ToolMode: 4
+  Sprite: {fileID: 21300000, guid: d456617ba2282854d9570dcebcc2b279, type: 3}
+  FactManager: {fileID: 0}
+  ignoreLayerMask:
+    serializedVersion: 2
+    m_Bits: 16896
+  Cursor: {fileID: 1661088666}
 --- !u!1001 &1465332558
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -40471,6 +40623,22 @@ PrefabInstance:
   m_Modification:
     m_TransformParent: {fileID: 0}
     m_Modifications:
+    - target: {fileID: 37108876, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: Cursor
+      value: 
+      objectReference: {fileID: 1661088666}
+    - target: {fileID: 37108876, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: layerMask.m_Bits
+      value: 8503
+      objectReference: {fileID: 0}
+    - target: {fileID: 37108876, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: complementaryLayerMask.m_Bits
+      value: 24064
+      objectReference: {fileID: 0}
+    - target: {fileID: 37108876, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: ignoreLayerMask.m_Bits
+      value: 24064
+      objectReference: {fileID: 0}
     - target: {fileID: 729203331, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
       propertyPath: Cursor
       value: 
@@ -40483,6 +40651,18 @@ PrefabInstance:
       propertyPath: anglePreviewMaterial
       value: 
       objectReference: {fileID: 2100000, guid: 8a28cccde2536794c97ec91954e34e90, type: 2}
+    - target: {fileID: 729203331, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: layerMask.m_Bits
+      value: 1335
+      objectReference: {fileID: 0}
+    - target: {fileID: 729203331, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: complementaryLayerMask.m_Bits
+      value: 31232
+      objectReference: {fileID: 0}
+    - target: {fileID: 729203331, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: ignoreLayerMask.m_Bits
+      value: 31232
+      objectReference: {fileID: 0}
     - target: {fileID: 1085307962, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
       propertyPath: GadgetUI
       value: 
@@ -40499,6 +40679,23 @@ PrefabInstance:
       propertyPath: linePreviewMaterial
       value: 
       objectReference: {fileID: 2100000, guid: a8a7bf60a30970f469a9c9d3ae2de6ef, type: 2}
+    - target: {fileID: 1111866520, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: fa8323d8b52054c46b24fc9a0040caa3,
+        type: 3}
+    - target: {fileID: 1111866520, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: layerMask.m_Bits
+      value: 1335
+      objectReference: {fileID: 0}
+    - target: {fileID: 1111866520, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: complementaryLayerMask.m_Bits
+      value: 31232
+      objectReference: {fileID: 0}
+    - target: {fileID: 1111866520, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: ignoreLayerMask.m_Bits
+      value: 31232
+      objectReference: {fileID: 0}
     - target: {fileID: 1947773663, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
       propertyPath: lineRenderer
       value: 
@@ -40507,6 +40704,22 @@ PrefabInstance:
       propertyPath: linePreviewMaterial
       value: 
       objectReference: {fileID: 2100000, guid: a8a7bf60a30970f469a9c9d3ae2de6ef, type: 2}
+    - target: {fileID: 1947773663, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: Cursor
+      value: 
+      objectReference: {fileID: 1661088666}
+    - target: {fileID: 1947773663, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: layerMask.m_Bits
+      value: 1335
+      objectReference: {fileID: 0}
+    - target: {fileID: 1947773663, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: complementaryLayerMask.m_Bits
+      value: 31232
+      objectReference: {fileID: 0}
+    - target: {fileID: 1947773663, guid: 2ba8d552442ba664e8e567adee683a11, type: 3}
+      propertyPath: ignoreLayerMask.m_Bits
+      value: 31232
+      objectReference: {fileID: 0}
     - target: {fileID: 2198523595365450379, guid: 2ba8d552442ba664e8e567adee683a11,
         type: 3}
       propertyPath: m_LocalPosition.x