diff --git a/.DS_Store b/.DS_Store
index 031130b..719fe77 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/Assets/.DS_Store b/Assets/.DS_Store
index f88aa74..6f1125c 100644
Binary files a/Assets/.DS_Store and b/Assets/.DS_Store differ
diff --git a/Assets/1OurESP32Scripts/.DS_Store b/Assets/1OurESP32Scripts/.DS_Store
index 4e5214c..7a8b3b1 100644
Binary files a/Assets/1OurESP32Scripts/.DS_Store and b/Assets/1OurESP32Scripts/.DS_Store differ
diff --git a/Assets/1OurESP32Scripts/TouchServo.meta b/Assets/1OurESP32Scripts/TouchServo.meta
new file mode 100644
index 0000000..fdef506
--- /dev/null
+++ b/Assets/1OurESP32Scripts/TouchServo.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 84a70b24331e346a4a3ea9eb99eaa064
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/1OurESP32Scripts/TouchServo/TouchServo.ino b/Assets/1OurESP32Scripts/TouchServo/TouchServo.ino
new file mode 100644
index 0000000..14db969
--- /dev/null
+++ b/Assets/1OurESP32Scripts/TouchServo/TouchServo.ino
@@ -0,0 +1,83 @@
+#include <ArduinoWebsockets.h>
+#include <WiFi.h>
+#include <ESP32Servo.h>
+
+const char* ssid = "dsv-extrality-lab";            // Change to your WiFi network name
+const char* password = "expiring-unstuck-slider";  // Change to your WiFi password
+
+using namespace websockets;
+
+WebsocketsServer server;
+WebsocketsClient client;
+
+//#define TOUCH_PIN 10
+//#define TOUCH_THRESHOLD 100
+
+bool touchDetected = false;  // Flag to track touch detection
+bool touchHandled = false;   // Flag to track if touch has been handled
+
+int touchValue;
+
+static const int servoPin = 8;
+Servo servo1;
+
+void setup() {
+  Serial.begin(115200);
+
+  servo1.attach(servoPin);
+
+  WiFi.begin(ssid, password);
+  while (WiFi.status() != WL_CONNECTED) {
+    delay(1000);
+    Serial.println("Connecting to WiFi...");
+  }
+
+  Serial.print("Connected to WiFi. IP Address: ");
+  Serial.println(WiFi.localIP());
+
+  server.listen(81);
+  Serial.println("WebSocket server started.");
+}
+
+void loop() {
+  if (server.poll()) {
+    client = server.accept();
+    Serial.println("Client connected...");
+
+    while (client.available()) {
+      WebsocketsMessage msg = client.readBlocking();
+      Serial.print("Got Message: ");
+      Serial.println(msg.data());
+
+      if (msg.data().equalsIgnoreCase("Need Touch")) {
+        Serial.println("Reading value from touch sensor!");
+        //touchValue = touchRead(4);
+        Serial.println(touchRead(4));
+
+        while (touchRead(4) < 14000) {
+          if (touchRead(4) >= 14000) {
+            Serial.println("Value above threshold");
+
+            rotateServo();
+
+            client.send(String(touchRead(4)));
+
+            break;
+          }
+        }
+      }
+      
+    }
+    client.close();
+  }
+}
+
+
+
+void rotateServo() {
+  // Rotate the servo motor 180 degrees
+  for (int posDegrees = 0; posDegrees <= 180; posDegrees++) {
+    servo1.write(posDegrees);
+    delay(10);  // Adjust the delay for smooth rotation
+  }
+}
\ No newline at end of file
diff --git a/Assets/1OurESP32Scripts/TouchServo/TouchServo.ino.meta b/Assets/1OurESP32Scripts/TouchServo/TouchServo.ino.meta
new file mode 100644
index 0000000..2d206ab
--- /dev/null
+++ b/Assets/1OurESP32Scripts/TouchServo/TouchServo.ino.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4ea5e337c5c484077bd7704cb81b5270
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/1OurScripts/WaterConnectUnityWithSensors.cs b/Assets/1OurScripts/WaterConnectUnityWithSensors.cs
index fc5dd28..b81f193 100644
--- a/Assets/1OurScripts/WaterConnectUnityWithSensors.cs
+++ b/Assets/1OurScripts/WaterConnectUnityWithSensors.cs
@@ -19,6 +19,9 @@ public class WaterConnectUnityWithSensors : MonoBehaviour
 
     public static bool isTouchDetected = false;
 
+    int threshhold = 14000;
+    
+
     public BoundWaterScript waterScript = new BoundWaterScript();
 
     void Start()
@@ -64,9 +67,9 @@ public class WaterConnectUnityWithSensors : MonoBehaviour
 
             if (touchDataReceived)
             {
-                if (receivedTouchValue == 10)
+                if (receivedTouchValue >= threshhold)
                 {
-                    Debug.Log("Distance threshold exceeded, action triggered.");
+                    Debug.Log("Touch threshold exceeded, action triggered.");
                     isTouchDetected = true;
                     waterScript.collectTouch();
 
diff --git a/Assets/OurESP32Scripts/TouchServo/TouchServo.ino b/Assets/OurESP32Scripts/TouchServo/TouchServo.ino
new file mode 100644
index 0000000..14db969
--- /dev/null
+++ b/Assets/OurESP32Scripts/TouchServo/TouchServo.ino
@@ -0,0 +1,83 @@
+#include <ArduinoWebsockets.h>
+#include <WiFi.h>
+#include <ESP32Servo.h>
+
+const char* ssid = "dsv-extrality-lab";            // Change to your WiFi network name
+const char* password = "expiring-unstuck-slider";  // Change to your WiFi password
+
+using namespace websockets;
+
+WebsocketsServer server;
+WebsocketsClient client;
+
+//#define TOUCH_PIN 10
+//#define TOUCH_THRESHOLD 100
+
+bool touchDetected = false;  // Flag to track touch detection
+bool touchHandled = false;   // Flag to track if touch has been handled
+
+int touchValue;
+
+static const int servoPin = 8;
+Servo servo1;
+
+void setup() {
+  Serial.begin(115200);
+
+  servo1.attach(servoPin);
+
+  WiFi.begin(ssid, password);
+  while (WiFi.status() != WL_CONNECTED) {
+    delay(1000);
+    Serial.println("Connecting to WiFi...");
+  }
+
+  Serial.print("Connected to WiFi. IP Address: ");
+  Serial.println(WiFi.localIP());
+
+  server.listen(81);
+  Serial.println("WebSocket server started.");
+}
+
+void loop() {
+  if (server.poll()) {
+    client = server.accept();
+    Serial.println("Client connected...");
+
+    while (client.available()) {
+      WebsocketsMessage msg = client.readBlocking();
+      Serial.print("Got Message: ");
+      Serial.println(msg.data());
+
+      if (msg.data().equalsIgnoreCase("Need Touch")) {
+        Serial.println("Reading value from touch sensor!");
+        //touchValue = touchRead(4);
+        Serial.println(touchRead(4));
+
+        while (touchRead(4) < 14000) {
+          if (touchRead(4) >= 14000) {
+            Serial.println("Value above threshold");
+
+            rotateServo();
+
+            client.send(String(touchRead(4)));
+
+            break;
+          }
+        }
+      }
+      
+    }
+    client.close();
+  }
+}
+
+
+
+void rotateServo() {
+  // Rotate the servo motor 180 degrees
+  for (int posDegrees = 0; posDegrees <= 180; posDegrees++) {
+    servo1.write(posDegrees);
+    delay(10);  // Adjust the delay for smooth rotation
+  }
+}
\ No newline at end of file
diff --git a/Assets/OurESP32Scripts/TouchServo/TouchServo.ino.meta b/Assets/OurESP32Scripts/TouchServo/TouchServo.ino.meta
new file mode 100644
index 0000000..2d206ab
--- /dev/null
+++ b/Assets/OurESP32Scripts/TouchServo/TouchServo.ino.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4ea5e337c5c484077bd7704cb81b5270
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scenes/MainScene.unity b/Assets/Scenes/MainScene.unity
index bb95493..ed29de0 100644
--- a/Assets/Scenes/MainScene.unity
+++ b/Assets/Scenes/MainScene.unity
@@ -4672,18 +4672,6 @@ MonoBehaviour:
   _whenSelect:
     m_PersistentCalls:
       m_Calls:
-      - m_Target: {fileID: 1293977771}
-        m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.OVR.Samples
-        m_MethodName: PlayAudio
-        m_Mode: 1
-        m_Arguments:
-          m_ObjectArgument: {fileID: 0}
-          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
-          m_IntArgument: 0
-          m_FloatArgument: 0
-          m_StringArgument: 
-          m_BoolArgument: 0
-        m_CallState: 2
       - m_Target: {fileID: 1726060523}
         m_TargetAssemblyTypeName: BoundWaterScript, Assembly-CSharp
         m_MethodName: stationCompleted
@@ -9512,7 +9500,7 @@ MonoBehaviour:
   canActivateAir: 0
   narrationHasPlayed: 0
   audioSource: {fileID: 171465764}
-  narrationClip: {fileID: 8300000, guid: 687001dfd7eb24ccca4eb0e4db510dca, type: 3}
+  narrationClip: {fileID: 8300000, guid: 00628ee3ba7b9f0458535254ad137558, type: 3}
   narrationClipTwo: {fileID: 8300000, guid: 8cb9b31b6571647878893398d64e6f19, type: 3}
   windObjectToCollect: {fileID: 140392492}
   boundControl: {fileID: 979159588}
@@ -10395,7 +10383,7 @@ MonoBehaviour:
   narrationHasFinished: 0
   narrationHasStarted: 0
   audioSource: {fileID: 171465764}
-  narrationClip: {fileID: 8300000, guid: 1eac976b1660e489a87b946acaf94b72, type: 3}
+  narrationClip: {fileID: 8300000, guid: bc06e403323bf5a4ca12eef6b12390dd, type: 3}
   narrationClipTwo: {fileID: 8300000, guid: deff384217dfb4266aa229b913f8fd03, type: 3}
   fireObjectToCollect: {fileID: 282901708}
   boundControl: {fileID: 979159588}
@@ -14125,7 +14113,7 @@ Transform:
   m_GameObject: {fileID: 979159584}
   serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalPosition: {x: 0.13, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
@@ -31786,7 +31774,7 @@ MonoBehaviour:
   narrationHasFinished: 0
   narrationHasStarted: 0
   audioSource: {fileID: 171465764}
-  narrationClip: {fileID: 8300000, guid: 94cf8154f1b9943aba707d774a2821c7, type: 3}
+  narrationClip: {fileID: 8300000, guid: 1be9373128f41584db11cc06df6eb340, type: 3}
   narrationClipTwo: {fileID: 8300000, guid: d6a09c727429f41e1808479b9f8fd7a4, type: 3}
   earthObjectToCollect: {fileID: 31480962}
   boundControl: {fileID: 979159588}
@@ -33925,7 +33913,7 @@ MonoBehaviour:
   dropHasAppeared: 0
   narrationHasStarted: 0
   audioSource: {fileID: 171465764}
-  narrationClip: {fileID: 8300000, guid: 08211c0f27d2740228ddd729a21f516f, type: 3}
+  narrationClip: {fileID: 8300000, guid: edcbc9fe06a7c054c8bc791420ddf5dc, type: 3}
   narrationClipTwo: {fileID: 8300000, guid: 86108e3698a924d59860ac92e3cc414a, type: 3}
   waterObjectToCollect: {fileID: 297646202}
   boundControl: {fileID: 979159588}
@@ -40046,11 +40034,11 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 461792, guid: b5ea624fac4bcb44f96ad51d3745727e, type: 3}
       propertyPath: m_LocalPosition.y
-      value: -3.5883074
+      value: -2.7
       objectReference: {fileID: 0}
     - target: {fileID: 461792, guid: b5ea624fac4bcb44f96ad51d3745727e, type: 3}
       propertyPath: m_LocalPosition.z
-      value: -6.94
+      value: -7.02
       objectReference: {fileID: 0}
     - target: {fileID: 461792, guid: b5ea624fac4bcb44f96ad51d3745727e, type: 3}
       propertyPath: m_LocalRotation.w
@@ -40096,6 +40084,14 @@ PrefabInstance:
       propertyPath: m_LocalScale.z
       value: 0.5
       objectReference: {fileID: 0}
+    - target: {fileID: 470880, guid: b5ea624fac4bcb44f96ad51d3745727e, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: -2.04
+      objectReference: {fileID: 0}
+    - target: {fileID: 470880, guid: b5ea624fac4bcb44f96ad51d3745727e, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: -1.58
+      objectReference: {fileID: 0}
     - target: {fileID: 470880, guid: b5ea624fac4bcb44f96ad51d3745727e, type: 3}
       propertyPath: m_ConstrainProportionsScale
       value: 1