Repository: alttester/AltTester-Unity-SDK (language: python)

Issue:
Change links for examples with new location after moving to alttester organization



Discussion / hints:

Fix patch:
diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml
index 144092ef7..556bc9af0 100644
--- a/.github/workflows/push.yml
+++ b/.github/workflows/push.yml
@@ -1,8 +1,6 @@
 name: Push
-on:
-  push:
-  workflow_dispatch:
 
+on: [push, workflow_dispatch]
 
 jobs:
   build-docs:
@@ -42,9 +40,7 @@ jobs:
             export PROXY_PORT=13010
             export PROXY_HOST="127.0.0.1"
             $UNITY_2021_3_HOME -batchmode -stackTraceLogType None -projectPath $CI_PROJECT_DIR -executeMethod Altom.AltTesterTools.BuildAltTester.MacBuildFromCommandLine -logFile buildMac.log -quit
-          
 
-        - run: ls
         - uses: actions/upload-artifact@v3.1.0
           if: always() # run this step even if one of the previous step failed
           with:
@@ -62,13 +58,18 @@ jobs:
         with:
           name:
             BuildMacArtifact
+
       - run: |
-          chmod -R 755  sampleGame.app
+          export PROXY_PORT=13010
+          export PROXY_HOST="127.0.0.1"
+          chmod -R 755 sampleGame.app
           open sampleGame.app
+
+      - run: |
           export PROXY_PORT=13010
-          echo $PROXY_PORT
           export PROXY_HOST="127.0.0.1"
           $UNITY_2021_3_HOME -batchmode -stackTraceLogType None -projectPath $CI_PROJECT_DIR -executeMethod Altom.AltTesterEditor.AltTestRunner.RunTestFromCommandLine -testsAssembly Assembly-CSharp-Editor  -logFile csharpAndroidTests.log -quit
+
       #TODO add back -reportPath $CI_PROJECT_DIR/reportTest.xml for removing because it's giving me unauthorized error
       - uses: actions/upload-artifact@v3.1.0
         if: always() # run this step even if one of the previous step failed
@@ -77,7 +78,7 @@ jobs:
           path: |
             *.log
             reportTest.xml
-            
+
   test-DotNet:
       runs-on: [self-hosted, macOS]
       needs: build-macOS
@@ -85,7 +86,7 @@ jobs:
         - uses: actions/checkout@v3
         - uses: actions/download-artifact@v3.0.0
           with:
-            name: 
+            name:
               BuildMacArtifact
         - name: Setup .NET Core SDK
           uses: actions/setup-dotnet@v2.1.1
@@ -103,62 +104,56 @@ jobs:
             name: TestCSharpArtifact
             path: |
               *.log
-  
-  test-Python:
-      runs-on: [self-hosted, macOS]
-      needs: build-macOS
-      steps:
-        - uses: actions/checkout@v3
 
-        - uses: actions/download-artifact@v3.0.0
-          with:
-            name:
-              BuildMacArtifact
+  test-Python:
+    runs-on: [self-hosted, macOS]
+    needs: build-macOS
+    steps:
+      - uses: actions/checkout@v3
 
-        - uses: actions/setup-python@v4
-          with:
-            python-version: '3.10'
-            cached: 'pip'
+      - uses: actions/download-artifact@v3.0.0
+        with:
+          name:
+            BuildMacArtifact
 
-        - uses: syphar/restore-virtualenv@v1
-          id: cache-virtualenv
+      - name: Open application
+        run: |
+          export PROXY_PORT=13010
+          export PROXY_HOST="127.0.0.1"
+          chmod -R 755 sampleGame.app
+          open sampleGame.app
 
-        - uses: syphar/restore-pip-download-cache@v1
-          if: steps.cache-virtualenv.outputs.cache-hit != 'true'
-        - name: Open Application
-          run: |
-            export PROXY_PORT=13010
-            export PROXY_HOST="127.0.0.1"
-            echo $PROXY_PORT
-            chmod -R 755 sampleGame.app
-            open sampleGame.app
+      - uses: actions/setup-python@v4
+        with:
+          python-version: '3.10'
 
-        - name: Install dependencies
-          run: |
-            pip install -r "Bindings~/python/requirements.txt"
-            pip install -r "Bindings~/python/requirements-dev.txt"
-            pip install -e "Bindings~/python" --root "Bindings~/python"
+      - name: Install dependencies
+        run: |
+          pip install --upgrade pip setuptools wheel
+          pip uninstall AltTester-Driver
+          pip install -r "Bindings~/python/requirements.txt"
+          pip install -r "Bindings~/python/requirements-dev.txt"
+          pip install -e "Bindings~/python" --root "Bindings~/python"
 
-        - name: Lint with flake8
-          run: |
-            flake8 Bindings~/python/tests --config Bindings~/python/.flake8
+      - name: Lint with flake8
+        run: |
+          flake8 Bindings~/python/ --config Bindings~/python/.flake8
 
-        - name: Run unit tests
-          run: |
-            pytest Bindings~/python/tests/unit
+      - name: Run unit tests
+        run: |
+          pytest Bindings~/python/tests/unit
 
-        - name: Run integration tests
-          run: |
-            export PROXY_PORT=13010
-            export PROXY_HOST="127.0.0.1"
-            pytest Bindings~/python/tests/integration
+      - name: Run integration tests
+        run: |
+          export PROXY_PORT=13010
+          export PROXY_HOST="127.0.0.1"
+          pytest Bindings~/python/tests/integration
 
-        - uses: actions/upload-artifact@v3.1.0
-          if: always() # run this step even if one of the previous step failed
-          with:
-            name: TestPythonArtifact
-            path: |
-              *.log
+      - uses: actions/upload-artifact@v3.1.0
+        if: always() # run this step even if one of the previous step failed
+        with:
+          name: TestPythonArtifact
+          path: "**/*.log"
 
   test-Java:
       runs-on: [self-hosted, macOS]
@@ -167,9 +162,9 @@ jobs:
         - uses: actions/checkout@v3
         - uses: actions/download-artifact@v3.0.0
           with:
-            name: 
+            name:
               BuildMacArtifact
-              
+
         - name: Setup Java JDK
           uses: actions/setup-java@v3.5.1
           with:
@@ -191,7 +186,7 @@ jobs:
             name: TestJavaArtifact
             path: |
               *.log
-              
+
   dev-docs:
     runs-on: [self-hosted, macOS]
     needs: build-docs
diff --git a/Assets/AltTester/AltDriver/Common/AltObject.cs b/Assets/AltTester/AltDriver/Common/AltObject.cs
index 5ba3638e8..d4b86df69 100644
--- a/Assets/AltTester/AltDriver/Common/AltObject.cs
+++ b/Assets/AltTester/AltDriver/Common/AltObject.cs
@@ -41,23 +41,40 @@ public AltObject(string name, int id = 0, int x = 0, int y = 0, int z = 0, int m
             this.transformId = transformId;
         }
 
+        public AltObject GetParent()
+        {
+            var altObject = new AltFindObject(CommHandler, By.PATH, "//*[@id=" + this.id + "]/..", By.NAME, "", true).Execute();
+            CommHandler.SleepFor(CommHandler.GetDelayAfterCommand());
+            return altObject;
+        }
+
+        [Obsolete("getParent is deprecated, please use GetParent instead.")]
         public AltObject getParent()
         {
             var altObject = new AltFindObject(CommHandler, By.PATH, "//*[@id=" + this.id + "]/..", By.NAME, "", true).Execute();
             CommHandler.SleepFor(CommHandler.GetDelayAfterCommand());
             return altObject;
         }
+        public AltVector2 GetScreenPosition()
+        {
+            return new AltVector2(x, y);
+        }
 
+        [Obsolete("getScreenPosition is deprecated, please use GetScreenPosition instead.")]
         public AltVector2 getScreenPosition()
         {
             return new AltVector2(x, y);
         }
+        public AltVector3 GetWorldPosition()
+        {
+            return new AltVector3(worldX, worldY, worldZ);
+        }
 
+        [Obsolete("getWorldPosition is deprecated, please use GetWorldPosition instead.")]
         public AltVector3 getWorldPosition()
         {
             return new AltVector3(worldX, worldY, worldZ);
         }
-
         public T GetComponentProperty<T>(string componentName, string propertyName, string assemblyName, int maxDepth = 2)
         {
             var propertyValue = new AltGetComponentProperty<T>(CommHandler, componentName, propertyName, assemblyName, maxDepth, this).Execute();
diff --git a/Assets/AltTester/AltServer/AltRunner.cs b/Assets/AltTester/AltServer/AltRunner.cs
index 191e441b9..59bc21a27 100644
--- a/Assets/AltTester/AltServer/AltRunner.cs
+++ b/Assets/AltTester/AltServer/AltRunner.cs
@@ -158,16 +158,6 @@ public static UnityEngine.GameObject[] GetDontDestroyOnLoadObjects()
             }
         }
 
-        public static UnityEngine.GameObject GetGameObject(AltObject altObject)
-        {
-            foreach (UnityEngine.GameObject gameObject in UnityEngine.Resources.FindObjectsOfTypeAll<UnityEngine.GameObject>())
-            {
-                if (gameObject.GetInstanceID() == altObject.id)
-                    return gameObject;
-            }
-            throw new NotFoundException("Object not found");
-        }
-
         public static UnityEngine.GameObject GetGameObject(int objectId)
         {
             foreach (UnityEngine.GameObject gameObject in UnityEngine.Resources.FindObjectsOfTypeAll<UnityEngine.GameObject>())
diff --git a/Assets/AltTester/AltServer/Commands/InputActions/AltClickElementCommand.cs b/Assets/AltTester/AltServer/Commands/InputActions/AltClickElementCommand.cs
index 7204c93d5..80abc7c8a 100644
--- a/Assets/AltTester/AltServer/Commands/InputActions/AltClickElementCommand.cs
+++ b/Assets/AltTester/AltServer/Commands/InputActions/AltClickElementCommand.cs
@@ -13,10 +13,9 @@ public AltClickElementCommand(ICommandHandler handler, AltClickElementParams cmd
 
         public override AltObject Execute()
         {
-
-            AltRunner._altRunner.ShowClick(new UnityEngine.Vector2(CommandParams.altObject.getScreenPosition().x, CommandParams.altObject.getScreenPosition().y));
-            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject);
-
+            AltRunner._altRunner.ShowClick(new UnityEngine.Vector2(CommandParams.altObject.GetScreenPosition().x, CommandParams.altObject.GetScreenPosition().y));
+            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject.id);
+            
             InputController.ClickElement(gameObject, CommandParams.count, CommandParams.interval, onFinish);
             return AltRunner._altRunner.GameObjectToAltObject(gameObject);
         }
diff --git a/Assets/AltTester/AltServer/Commands/InputActions/AltDragObjectCommand.cs b/Assets/AltTester/AltServer/Commands/InputActions/AltDragObjectCommand.cs
index 35b1f1c98..03cb74e1c 100644
--- a/Assets/AltTester/AltServer/Commands/InputActions/AltDragObjectCommand.cs
+++ b/Assets/AltTester/AltServer/Commands/InputActions/AltDragObjectCommand.cs
@@ -16,7 +16,7 @@ public override AltObject Execute()
             var mockUp = new AltMockUpPointerInputModule();
 
             var pointerEventData = mockUp.ExecuteTouchEvent(new UnityEngine.Touch() { position = new UnityEngine.Vector2(CommandParams.position.x, CommandParams.position.y) });
-            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject);
+            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject.id);
             UnityEngine.Camera viewingCamera = AltRunner._altRunner.FoundCameraById(CommandParams.altObject.idCamera);
             UnityEngine.Vector3 gameObjectPosition = viewingCamera.WorldToScreenPoint(gameObject.transform.position);
             pointerEventData.delta = pointerEventData.position - new UnityEngine.Vector2(gameObjectPosition.x, gameObjectPosition.y);
diff --git a/Assets/AltTester/AltServer/Commands/InputActions/AltPointerDownFromObjectCommand.cs b/Assets/AltTester/AltServer/Commands/InputActions/AltPointerDownFromObjectCommand.cs
index 10a622a48..9b026c07d 100644
--- a/Assets/AltTester/AltServer/Commands/InputActions/AltPointerDownFromObjectCommand.cs
+++ b/Assets/AltTester/AltServer/Commands/InputActions/AltPointerDownFromObjectCommand.cs
@@ -13,7 +13,7 @@ public AltPointerDownFromObjectCommand(AltPointerDownFromObjectParams cmdParams)
         public override AltObject Execute()
         {
             var pointerEventData = new UnityEngine.EventSystems.PointerEventData(UnityEngine.EventSystems.EventSystem.current);
-            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject);
+            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject.id);
             UnityEngine.EventSystems.ExecuteEvents.Execute(gameObject, pointerEventData, UnityEngine.EventSystems.ExecuteEvents.pointerDownHandler);
             var camera = AltRunner._altRunner.FoundCameraById(CommandParams.altObject.idCamera);
             if (camera != null)
diff --git a/Assets/AltTester/AltServer/Commands/InputActions/AltPointerEnterObjectCommand.cs b/Assets/AltTester/AltServer/Commands/InputActions/AltPointerEnterObjectCommand.cs
index 4f1172bed..f3e34a546 100644
--- a/Assets/AltTester/AltServer/Commands/InputActions/AltPointerEnterObjectCommand.cs
+++ b/Assets/AltTester/AltServer/Commands/InputActions/AltPointerEnterObjectCommand.cs
@@ -13,7 +13,7 @@ public AltPointerEnterObjectCommand(AltPointerEnterObjectParams cmdParams) : bas
         public override AltObject Execute()
         {
             var pointerEventData = new UnityEngine.EventSystems.PointerEventData(UnityEngine.EventSystems.EventSystem.current);
-            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject);
+            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject.id);
             UnityEngine.EventSystems.ExecuteEvents.Execute(gameObject, pointerEventData, UnityEngine.EventSystems.ExecuteEvents.pointerEnterHandler);
             var camera = AltRunner._altRunner.FoundCameraById(CommandParams.altObject.idCamera);
             return camera != null ? AltRunner._altRunner.GameObjectToAltObject(gameObject, camera) : AltRunner._altRunner.GameObjectToAltObject(gameObject);
diff --git a/Assets/AltTester/AltServer/Commands/InputActions/AltPointerExitObjectCommand.cs b/Assets/AltTester/AltServer/Commands/InputActions/AltPointerExitObjectCommand.cs
index 65fc529f7..65f4a2a12 100644
--- a/Assets/AltTester/AltServer/Commands/InputActions/AltPointerExitObjectCommand.cs
+++ b/Assets/AltTester/AltServer/Commands/InputActions/AltPointerExitObjectCommand.cs
@@ -13,7 +13,7 @@ public AltPointerExitObjectCommand(AltPointerExitObjectParams cmdParams) : base(
         public override AltObject Execute()
         {
             var pointerEventData = new UnityEngine.EventSystems.PointerEventData(UnityEngine.EventSystems.EventSystem.current);
-            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject);
+            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject.id);
             UnityEngine.EventSystems.ExecuteEvents.Execute(gameObject, pointerEventData, UnityEngine.EventSystems.ExecuteEvents.pointerExitHandler);
             var camera = AltRunner._altRunner.FoundCameraById(CommandParams.altObject.idCamera);
 
diff --git a/Assets/AltTester/AltServer/Commands/InputActions/AltPointerUpFromObjectCommand.cs b/Assets/AltTester/AltServer/Commands/InputActions/AltPointerUpFromObjectCommand.cs
index 5607f3701..c860b49ca 100644
--- a/Assets/AltTester/AltServer/Commands/InputActions/AltPointerUpFromObjectCommand.cs
+++ b/Assets/AltTester/AltServer/Commands/InputActions/AltPointerUpFromObjectCommand.cs
@@ -12,7 +12,7 @@ public AltPointerUpFromObjectCommand(AltPointerUpFromObjectParams cmdParams) : b
         public override AltObject Execute()
         {
             var pointerEventData = new UnityEngine.EventSystems.PointerEventData(UnityEngine.EventSystems.EventSystem.current);
-            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject);
+            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject.id);
             UnityEngine.EventSystems.ExecuteEvents.Execute(gameObject, pointerEventData, UnityEngine.EventSystems.ExecuteEvents.pointerUpHandler);
             var camera = AltRunner._altRunner.FoundCameraById(CommandParams.altObject.idCamera);
 
diff --git a/Assets/AltTester/AltServer/Commands/InputActions/AltTapElementCommand.cs b/Assets/AltTester/AltServer/Commands/InputActions/AltTapElementCommand.cs
index a2c2dd56a..90e407764 100644
--- a/Assets/AltTester/AltServer/Commands/InputActions/AltTapElementCommand.cs
+++ b/Assets/AltTester/AltServer/Commands/InputActions/AltTapElementCommand.cs
@@ -13,8 +13,8 @@ public AltTapElementCommand(ICommandHandler handler, AltTapElementParams cmdPara
 
         public override AltObject Execute()
         {
-            AltRunner._altRunner.ShowClick(new UnityEngine.Vector2(CommandParams.altObject.getScreenPosition().x, CommandParams.altObject.getScreenPosition().y));
-            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject);
+            AltRunner._altRunner.ShowClick(new UnityEngine.Vector2(CommandParams.altObject.GetScreenPosition().x, CommandParams.altObject.GetScreenPosition().y));
+            UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject.id);
 
             InputController.TapElement(gameObject, CommandParams.count, CommandParams.interval, onFinish);
 
diff --git a/Assets/AltTester/AltServer/Commands/ObjectCommands/AltCallComponentMethodForObjectCommand.cs b/Assets/AltTester/AltServer/Commands/ObjectCommands/AltCallComponentMethodForObjectCommand.cs
index 080409b01..51fcedf87 100644
--- a/Assets/AltTester/AltServer/Commands/ObjectCommands/AltCallComponentMethodForObjectCommand.cs
+++ b/Assets/AltTester/AltServer/Commands/ObjectCommands/AltCallComponentMethodForObjectCommand.cs
@@ -27,7 +27,7 @@ public override object Execute()
             object instance;
             if (CommandParams.altObject != null)
             {
-                UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject);
+                UnityEngine.GameObject gameObject = AltRunner.GetGameObject(CommandParams.altObject.id);
                 if (componentType == typeof(UnityEngine.GameObject))
                 {
                     instance = gameObject;
diff --git a/Assets/AltTester/AltServer/Commands/ObjectCommands/AltReflectionMethodsCommand.cs b/Assets/AltTester/AltServer/Commands/ObjectCommands/AltReflectionMethodsCommand.cs
index 371e46d62..0c6c4cccd 100644
--- a/Assets/AltTester/AltServer/Commands/ObjectCommands/AltReflectionMethodsCommand.cs
+++ b/Assets/AltTester/AltServer/Commands/ObjectCommands/AltReflectionMethodsCommand.cs
@@ -120,7 +120,7 @@ protected object GetValueForMember(AltObject altObject, string[] fieldArray, Typ
             string propertyName;
             int index = getArrayIndex(fieldArray[0], out propertyName);
             MemberInfo memberInfo = GetMemberForObjectComponent(componentType, propertyName);
-            var instance = AltRunner.GetGameObject(altObject).GetComponent(componentType);
+            var instance = AltRunner.GetGameObject(altObject.id).GetComponent(componentType);
             if (instance == null)
             {
                 throw new ComponentNotFoundException("Component " + componentType.Name + " not found");
@@ -139,7 +139,7 @@ protected object GetValueForMember(AltObject altObject, string[] fieldArray, Typ
 
         protected string SetValueForMember(AltObject altObject, string[] fieldArray, Type componentType, string valueString)
         {
-            var instance = AltRunner.GetGameObject(altObject).GetComponent(componentType);
+            var instance = AltRunner.GetGameObject(altObject.id).GetComponent(componentType);
             if (instance == null)
             {
                 throw new ComponentNotFoundException("Component " + componentType.Name + " not found");
diff --git a/Assets/AltTester/AltServer/Commands/ObjectCommands/AltSetTextCommand.cs b/Assets/AltTester/AltServer/Commands/ObjectCommands/AltSetTextCommand.cs
index d3a11ca39..03b5780e9 100644
--- a/Assets/AltTester/AltServer/Commands/ObjectCommands/AltSetTextCommand.cs
+++ b/Assets/AltTester/AltServer/Commands/ObjectCommands/AltSetTextCommand.cs
@@ -22,7 +22,7 @@ public AltSetTextCommand(AltSetTextParams cmdParams) : base(cmdParams)
 
         public override AltObject Execute()
         {
-            var targetObject = AltRunner.GetGameObject(CommandParams.altObject);
+            var targetObject = AltRunner.GetGameObject(CommandParams.altObject.id);
             Exception exception = null;
 
             foreach (var property in textProperties)
diff --git a/Assets/AltTester/AltServer/Communication/AltResponseQueue.cs b/Assets/AltTester/AltServer/Communication/AltResponseQueue.cs
index 96bfeaef3..a8584beb9 100644
--- a/Assets/AltTester/AltServer/Communication/AltResponseQueue.cs
+++ b/Assets/AltTester/AltServer/Communication/AltResponseQueue.cs
@@ -12,6 +12,7 @@ public class AltResponseQueue
         public void Cycle()
         {
             if (responseQueue.Count == 0) return;
+
             lock (queueLock)
             {
                 if (responseQueue.Count > 0)
@@ -31,7 +32,12 @@ public void ScheduleResponse(SendResponse newResponse)
                 }
             }
         }
+
+        public void Clear() {
+            lock (queueLock)
+            {
+                responseQueue.Clear();
+            }
+        }
     }
 }
-
-
diff --git a/Assets/AltTester/AltServer/UI/AltDialog.cs b/Assets/AltTester/AltServer/UI/AltDialog.cs
index 08446ab8b..3a74f75cd 100644
--- a/Assets/AltTester/AltServer/UI/AltDialog.cs
+++ b/Assets/AltTester/AltServer/UI/AltDialog.cs
@@ -40,27 +40,25 @@ public class AltDialog : UnityEngine.MonoBehaviour
         [UnityEngine.SerializeField]
         public UnityEngine.UI.Button RestartButton = null;
 
-        private ICommunication communication;
-
         public AltInstrumentationSettings InstrumentationSettings { get { return AltRunner._altRunner.InstrumentationSettings; } }
 
+        private ICommunication communication;
         private readonly AltResponseQueue _updateQueue = new AltResponseQueue();
         private bool wasConnectedBeforeToProxy = false;
 
         protected void Start()
         {
+            Dialog.SetActive(InstrumentationSettings.ShowPopUp);
+
+            SetTitle("AltTester v." + AltRunner.VERSION);
+            SetUpCloseButton();
+            setUpIcon();
             SetUpHostInputField();
             SetUpPortInputField();
             SetUpGameNameInputField();
-
             SetUpRestartButton();
 
-            Dialog.SetActive(InstrumentationSettings.ShowPopUp);
-            CloseButton.onClick.AddListener(ToggleDialog);
-            Icon.GetComponent<UnityEngine.UI.Button>().onClick.AddListener(ToggleDialog);
-            TitleText.text = "AltTester v." + AltRunner.VERSION;
-
-            StartAltTester();
+            StartClient();
         }
 
         protected void Update()
@@ -70,10 +68,34 @@ protected void Update()
 
         protected void OnApplicationQuit()
         {
-            cleanUp();
+            StopClient();
+        }
+
+        private void SetMessage(string message, UnityEngine.Color color, bool visible)
+        {
+            Dialog.SetActive(visible);
+            Dialog.GetComponent<UnityEngine.UI.Image>().color = color;
+            MessageText.text = message;
         }
 
-        public void OnPortInputFieldValueChange(string value)
+        private void SetTitle(string title) {
+            TitleText.text = title;
+        }
+
+        private void ToggleDialog()
+        {
+            Dialog.SetActive(!Dialog.activeSelf);
+        }
+
+        private void SetUpCloseButton() {
+            CloseButton.onClick.AddListener(ToggleDialog);
+        }
+
+        private void setUpIcon() {
+            Icon.GetComponent<UnityEngine.UI.Button>().onClick.AddListener(ToggleDialog);
+        }
+
+        private void OnPortInputFieldValueChange(string value)
         {
             // Allow only positive numbers.
             if (value == "-")
@@ -82,26 +104,27 @@ public void OnPortInputFieldValueChange(string value)
             }
         }
 
-        public void SetUpHostInputField()
+        private void SetUpHostInputField()
         {
             HostInputField.text = InstrumentationSettings.ProxyHost;
         }
 
-        public void SetUpPortInputField()
+        private void SetUpPortInputField()
         {
             PortInputField.text = InstrumentationSettings.ProxyPort.ToString();
             PortInputField.onValueChanged.AddListener(OnPortInputFieldValueChange);
             PortInputField.characterValidation = UnityEngine.UI.InputField.CharacterValidation.Integer;
         }
 
-        public void SetUpGameNameInputField()
+        private void SetUpGameNameInputField()
         {
             GameNameInputField.text = InstrumentationSettings.GameName;
         }
 
         private void OnRestartButtonPress()
         {
-            logger.Debug("Restart the AltTester.");
+            logger.Debug("Restart the AltTester client.");
+            StopClient();
 
             if (Uri.CheckHostName(HostInputField.text) != UriHostNameType.Unknown)
             {
@@ -109,7 +132,7 @@ private void OnRestartButtonPress()
             }
             else
             {
-                setDialog("The host should be a valid host.", ERROR_COLOR, true);
+                SetMessage("The host should be a valid host.", ERROR_COLOR, true);
                 return;
             }
 
@@ -120,18 +143,28 @@ private void OnRestartButtonPress()
             }
             else
             {
-                setDialog("The port number should be beteween 1 and 65535.", ERROR_COLOR, true);
+                SetMessage("The port number should be beteween 1 and 65535.", ERROR_COLOR, true);
+                return;
+            }
+
+            if (!string.IsNullOrEmpty(GameNameInputField.text))
+            {
+                InstrumentationSettings.GameName = GameNameInputField.text;
+            }
+            else
+            {
+                SetMessage("Game name should not be empty.", ERROR_COLOR, true);
                 return;
             }
 
             try
             {
-                RestartAltTester();
+                StartClient();
             }
             catch (Exception ex)
             {
-                setDialog("An unexpected error occurred while restarting the AltTester.", ERROR_COLOR, true);
-                logger.Error("An unexpected error occurred while restarting the AltTester.");
+                SetMessage("An unexpected error occurred while restarting the AltTester client.", ERROR_COLOR, true);
+                logger.Error("An unexpected error occurred while restarting the AltTester client.");
                 logger.Error(ex.GetType().ToString(), ex.Message);
             }
         }
@@ -141,57 +174,24 @@ public void SetUpRestartButton()
             RestartButton.onClick.AddListener(OnRestartButtonPress);
         }
 
-        public void ToggleDialog()
-        {
-            Dialog.SetActive(!Dialog.activeSelf);
-        }
-
-        private void setDialog(string message, UnityEngine.Color color, bool visible)
-        {
-            Dialog.SetActive(visible);
-            MessageText.text = message;
-            Dialog.GetComponent<UnityEngine.UI.Image>().color = color;
-        }
-
-        private void StartAltTester()
-        {
-            startProxyCommProtocol();
-        }
-
-        private void StopAltTester()
-        {
-            logger.Debug("Stopping AltTester.");
-            if (communication != null)
-            {
-                communication.Stop();
-            }
-        }
-
-        private void RestartAltTester()
-        {
-            StopAltTester();
-            StartAltTester();
-        }
-
-        #region proxy mode comm protocol
-
-        private void initProxyCommProtocol()
+        private void InitClient()
         {
             var cmdHandler = new CommandHandler();
 
-#if UNITY_WEBGL && !UNITY_EDITOR
-            communication = new WebSocketWebGLCommunication(cmdHandler, InstrumentationSettings.ProxyHost, InstrumentationSettings.ProxyPort);
-#else
-            communication = new WebSocketClientCommunication(cmdHandler, InstrumentationSettings.ProxyHost, InstrumentationSettings.ProxyPort, InstrumentationSettings.GameName);
-#endif
-            communication.OnConnect += onProxyConnect;
-            communication.OnDisconnect += onProxyDisconnect;
-            communication.OnError += onError;
+            #if UNITY_WEBGL && !UNITY_EDITOR
+                communication = new WebSocketWebGLCommunication(cmdHandler, InstrumentationSettings.ProxyHost, InstrumentationSettings.ProxyPort);
+            #else
+                communication = new WebSocketClientCommunication(cmdHandler, InstrumentationSettings.ProxyHost, InstrumentationSettings.ProxyPort, InstrumentationSettings.GameName);
+            #endif
+
+            communication.OnConnect += OnConnect;
+            communication.OnDisconnect += OnDisconnect;
+            communication.OnError += OnError;
         }
 
-        private void startProxyCommProtocol()
+        private void StartClient()
         {
-            initProxyCommProtocol();
+            InitClient();
 
             try
             {
@@ -200,78 +200,88 @@ private void startProxyCommProtocol()
                     communication.Start();
                 }
                 if (!communication.IsConnected) // display dialog only if not connected
-                    onStart();
+                {
+                    OnStart();
+                }
             }
             catch (UnhandledStartCommError ex)
             {
-                setDialog("An unexpected error occurred while starting the communication protocol.", ERROR_COLOR, true);
+                SetMessage("An unexpected error occurred while starting the communication protocol.", ERROR_COLOR, true);
                 logger.Error(ex.InnerException, "An unexpected error occurred while starting the communication protocol.");
             }
             catch (Exception ex)
             {
-                setDialog("An unexpected error occurred while starting the communication protocol.", ERROR_COLOR, true);
+                SetMessage("An unexpected error occurred while starting the communication protocol.", ERROR_COLOR, true);
                 logger.Error(ex, "An unexpected error occurred while starting the communication protocol.");
             }
         }
 
-        private void onStart()
+        private void StopClient()
+        {
+            _updateQueue.Clear();
+
+            if (communication != null)
+            {
+                communication.Stop();
+
+                communication.OnConnect = null;
+                communication.OnDisconnect = null;
+                communication.OnError = null;
+            }
+        }
+
+        private void OnStart()
         {
-            setDialog("Connected to AltProxy on " + InstrumentationSettings.ProxyHost + ":" + InstrumentationSettings.ProxyPort + " with game name " + InstrumentationSettings.GameName, SUCCESS_COLOR, Dialog.activeSelf || wasConnectedBeforeToProxy);
+            string message = String.Format("Waiting to connect to AltProxy on {0}:{1} with game name: '{2}'.", InstrumentationSettings.ProxyHost, InstrumentationSettings.ProxyPort, InstrumentationSettings.GameName);
+            SetMessage(message, SUCCESS_COLOR, Dialog.activeSelf || wasConnectedBeforeToProxy);
             wasConnectedBeforeToProxy = false;
         }
 
-        private void onProxyConnect()
+        private void OnConnect()
         {
-            string message = "Connected to AltProxy on " + InstrumentationSettings.ProxyHost + ":" + InstrumentationSettings.ProxyPort + " with game name " + InstrumentationSettings.GameName;
-#if ALTTESTER && ENABLE_LEGACY_INPUT_MANAGER
-            Input.UseCustomInput = true;
-            UnityEngine.Debug.Log("Custom input: " + Input.UseCustomInput);
-#endif
+            string message = String.Format("Connected to AltProxy on {0}:{1} with game name: '{2}'.", InstrumentationSettings.ProxyHost, InstrumentationSettings.ProxyPort, InstrumentationSettings.GameName);
+
+            #if ALTTESTER && ENABLE_LEGACY_INPUT_MANAGER
+                Input.UseCustomInput = true;
+                UnityEngine.Debug.Log("Custom input: " + Input.UseCustomInput);
+            #endif
+
             _updateQueue.ScheduleResponse(() =>
             {
-#if ALTTESTER && ENABLE_INPUT_SYSTEM
-                NewInputSystem.DisableDefaultDevicesAndEnableAltDevices();
-#endif
-                setDialog(message, SUCCESS_COLOR, false);
+                #if ALTTESTER && ENABLE_INPUT_SYSTEM
+                    NewInputSystem.DisableDefaultDevicesAndEnableAltDevices();
+                #endif
+
+                SetMessage(message, SUCCESS_COLOR, false);
                 wasConnectedBeforeToProxy = true;
             });
         }
 
-        private void onProxyDisconnect()
+        private void OnDisconnect()
         {
-#if ALTTESTER && ENABLE_LEGACY_INPUT_MANAGER
-            Input.UseCustomInput = false;
-            UnityEngine.Debug.Log("Custom input: " + Input.UseCustomInput);
-#endif
+            #if ALTTESTER && ENABLE_LEGACY_INPUT_MANAGER
+                Input.UseCustomInput = false;
+                UnityEngine.Debug.Log("Custom input: " + Input.UseCustomInput);
+            #endif
+
             _updateQueue.ScheduleResponse(() =>
             {
-#if ALTTESTER && ENABLE_INPUT_SYSTEM
-                NewInputSystem.EnableDefaultDevicesAndDisableAltDevices();
-
-#endif
-                startProxyCommProtocol();
+                #if ALTTESTER && ENABLE_INPUT_SYSTEM
+                    NewInputSystem.EnableDefaultDevicesAndDisableAltDevices();
+                #endif
 
+                StartClient();
             });
         }
 
-        #endregion
-
-        private void onError(string message, Exception ex)
+        private void OnError(string message, Exception ex)
         {
             logger.Error(message);
+
             if (ex != null)
             {
                 logger.Error(ex);
             }
         }
-
-        private void cleanUp()
-        {
-            logger.Debug("Stopping communication protocol");
-            if (communication != null)
-            {
-                communication.Stop();
-            }
-        }
     }
-}
\ No newline at end of file
+}
diff --git a/Assets/AltTester/Examples/Test/Editor/Driver/TestForNIS.cs b/Assets/AltTester/Examples/Test/Editor/Driver/TestForNIS.cs
index 231afc168..e14f118ff 100644
--- a/Assets/AltTester/Examples/Test/Editor/Driver/TestForNIS.cs
+++ b/Assets/AltTester/Examples/Test/Editor/Driver/TestForNIS.cs
@@ -39,7 +39,7 @@ private void dropImageWithMultipointSwipe(string[] objectNames, float duration =
         for (int i = 0; i < objectNames.Length; i++)
         {
             var obj = altDriver.FindObject(By.NAME, objectNames[i]);
-            listPositions[i] = obj.getScreenPosition();
+            listPositions[i] = obj.GetScreenPosition();
         }
         altDriver.MultipointSwipe(listPositions, duration, wait: wait);
     }
@@ -69,7 +69,7 @@ public void TestTapCoordinates()
     {
         altDriver.LoadScene(scene8);
         var closeButton = altDriver.FindObject(By.PATH, "//Panel Drag Area/Panel/Close Button");
-        altDriver.Tap(closeButton.getScreenPosition());
+        altDriver.Tap(closeButton.GetScreenPosition());
         altDriver.WaitForObjectNotBePresent(By.PATH, "//Panel Drag Area/Panel");
     }
 
@@ -79,7 +79,7 @@ public void TestScrollElement()
         altDriver.LoadScene(scene9);
         var scrollbar = altDriver.FindObject(By.NAME, "Scrollbar Vertical");
         var scrollbarPosition = scrollbar.GetComponentProperty<float>("UnityEngine.UI.Scrollbar", "value", "UnityEngine.UI");
-        altDriver.MoveMouse(altDriver.FindObject(By.NAME, "Scroll View").getScreenPosition(), 0.5f);
+        altDriver.MoveMouse(altDriver.FindObject(By.NAME, "Scroll View").GetScreenPosition(), 0.5f);
         altDriver.Scroll(new AltVector2(-3000, -3000), 0.5f, true);
         var scrollbarPositionFinal = scrollbar.GetComponentProperty<float>("UnityEngine.UI.Scrollbar", "value", "UnityEngine.UI");
         Assert.AreNotEqual(scrollbarPosition, scrollbarPositionFinal);
@@ -234,7 +234,7 @@ public void TestClickCoordinates()
     {
         altDriver.LoadScene(scene11);
         var capsule = altDriver.FindObject(By.NAME, "Capsule");
-        altDriver.Click(capsule.getScreenPosition());
+        altDriver.Click(capsule.GetScreenPosition());
         altDriver.WaitForObject(By.PATH, "//ActionText[@text=Capsule was clicked!]");
     }
 
@@ -243,9 +243,9 @@ public void TestTilt()
     {
         altDriver.LoadScene(scene11);
         var cube = altDriver.FindObject(By.NAME, "Cube (1)");
-        var initialPosition = cube.getWorldPosition();
+        var initialPosition = cube.GetWorldPosition();
         altDriver.Tilt(new AltVector3(5, 0, 5f), 1f);
-        Assert.AreNotEqual(initialPosition, altDriver.FindObject(By.NAME, "Cube (1)").getWorldPosition());
+        Assert.AreNotEqual(initialPosition, altDriver.FindObject(By.NAME, "Cube (1)").GetWorldPosition());
         Assert.IsTrue(cube.GetComponentProperty<bool>("AltCubeNIS", "isMoved", "Assembly-CSharp"));
     }
 
@@ -253,10 +253,10 @@ public void TestTilt()
     public void TestSwipe()
     {
         altDriver.LoadScene(scene9);
-        var scrollbarPosition = altDriver.FindObject(By.NAME, "Handle").getScreenPosition();
+        var scrollbarPosition = altDriver.FindObject(By.NAME, "Handle").GetScreenPosition();
         var button = altDriver.FindObject(By.PATH, "//Scroll View/Viewport/Content/Button (4)");
         altDriver.Swipe(new AltVector2(button.x + 1, button.y + 1), new AltVector2(button.x + 1, button.y + 20), 1);
-        var scrollbarPositionFinal = altDriver.FindObject(By.NAME, "Handle").getScreenPosition();
+        var scrollbarPositionFinal = altDriver.FindObject(By.NAME, "Handle").GetScreenPosition();
         Assert.AreNotEqual(scrollbarPosition.y, scrollbarPositionFinal.y);
     }
 
@@ -280,11 +280,11 @@ public void TestBeginMoveEndTouch()
     {
         altDriver.LoadScene(scene8);
         var panelToDrag = altDriver.FindObject(By.PATH, "//Panel/Drag Zone");
-        var initialPanelPos = panelToDrag.getScreenPosition();
-        var fingerId = altDriver.BeginTouch(panelToDrag.getScreenPosition());
+        var initialPanelPos = panelToDrag.GetScreenPosition();
+        var fingerId = altDriver.BeginTouch(panelToDrag.GetScreenPosition());
         altDriver.MoveTouch(fingerId, new AltVector2(initialPanelPos.x + 200, initialPanelPos.y + 20));
         altDriver.EndTouch(fingerId);
-        var finalPanelPos = altDriver.FindObject(By.PATH, "//Panel/Drag Zone").getScreenPosition();
+        var finalPanelPos = altDriver.FindObject(By.PATH, "//Panel/Drag Zone").GetScreenPosition();
         Assert.AreNotEqual(initialPanelPos, finalPanelPos);
     }
 
diff --git a/Assets/AltTester/Examples/Test/Editor/Driver/TestForScene3DragAndDrop.cs b/Assets/AltTester/Examples/Test/Editor/Driver/TestForScene3DragAndDrop.cs
index b5c200080..c957dae14 100644
--- a/Assets/AltTester/Examples/Test/Editor/Driver/TestForScene3DragAndDrop.cs
+++ b/Assets/AltTester/Examples/Test/Editor/Driver/TestForScene3DragAndDrop.cs
@@ -70,7 +70,7 @@ private void dropImageWithMultipointSwipe(string[] objectNames, float duration =
             for (int i = 0; i < objectNames.Length; i++)
             {
                 var obj = altDriver.FindObject(By.NAME, objectNames[i]);
-                listPositions[i] = obj.getScreenPosition();
+                listPositions[i] = obj.GetScreenPosition();
             }
             altDriver.MultipointSwipe(listPositions, duration, wait: wait);
         }
@@ -125,8 +125,8 @@ public void TestDragAndDrop()
             var altElement1 = altDriver.FindObject(By.NAME, "Drag Image1");
             var altElement2 = altDriver.FindObject(By.NAME, "Drop Box1");
 
-            int fingerId = altDriver.BeginTouch(altElement1.getScreenPosition());
-            altDriver.MoveTouch(fingerId, altElement2.getScreenPosition());
+            int fingerId = altDriver.BeginTouch(altElement1.GetScreenPosition());
+            altDriver.MoveTouch(fingerId, altElement2.GetScreenPosition());
             altDriver.EndTouch(fingerId);
             getSpriteName(out imageSource, out imageSourceDropZone, "Drag Image1", "Drop Image");
 
diff --git a/Assets/AltTester/Examples/Test/Editor/Driver/TestForScene5KeyboardAndMouseInput.cs b/Assets/AltTester/Examples/Test/Editor/Driver/TestForScene5KeyboardAndMouseInput.cs
index 72625a7ce..8977671fe 100644
--- a/Assets/AltTester/Examples/Test/Editor/Driver/TestForScene5KeyboardAndMouseInput.cs
+++ b/Assets/AltTester/Examples/Test/Editor/Driver/TestForScene5KeyboardAndMouseInput.cs
@@ -55,11 +55,11 @@ public void TestCameraMovement()
             altDriver.LoadScene("Scene 5 Keyboard Input");
 
             var cube = altDriver.FindObject(By.NAME, "Player1");
-            AltVector3 cubeInitialPostion = cube.getWorldPosition();
+            AltVector3 cubeInitialPostion = cube.GetWorldPosition();
 
             altDriver.PressKey(AltKeyCode.W, 1, 2);
             cube = altDriver.FindObject(By.NAME, "Player1");
-            AltVector3 cubeFinalPosition = cube.getWorldPosition();
+            AltVector3 cubeFinalPosition = cube.GetWorldPosition();
 
             Assert.AreNotEqual(cubeInitialPostion, cubeFinalPosition);
         }
diff --git a/Assets/AltTester/Examples/Test/Editor/Driver/TestForscene2DraggablePanel.cs b/Assets/AltTester/Examples/Test/Editor/Driver/TestForscene2DraggablePanel.cs
index 67e93c58f..91f821b51 100644
--- a/Assets/AltTester/Examples/Test/Editor/Driver/TestForscene2DraggablePanel.cs
+++ b/Assets/AltTester/Examples/Test/Editor/Driver/TestForscene2DraggablePanel.cs
@@ -36,7 +36,7 @@ public void TestResizePanel()
         {
             var altElement = altDriver.FindObject(By.NAME, "Resize Zone");
             var position = new AltVector2(altElement.x, altElement.y);
-            altDriver.Swipe(altElement.getScreenPosition(), new AltVector2(altElement.x - 200, altElement.y - 200), 2);
+            altDriver.Swipe(altElement.GetScreenPosition(), new AltVector2(altElement.x - 200, altElement.y - 200), 2);
 
             altElement = altDriver.FindObject(By.NAME, "Resize Zone");
             var position2 = new AltVector2(altElement.x, altElement.y);
@@ -50,7 +50,7 @@ public void TestResizePanelWithMultipointSwipe()
             var position = new AltVector2(altElement.x, altElement.y);
             var pos = new[]
             {
-            altElement.getScreenPosition(),
+            altElement.GetScreenPosition(),
             new AltVector2(altElement.x - 200, altElement.y - 200),
             new AltVector2(altElement.x - 300, altElement.y - 100),
             new AltVector2(altElement.x - 50, altElement.y - 100),
@@ -179,7 +179,7 @@ public void TestPointerUpFromObject()
         public void TestGetParent()
         {
             var altElement = altDriver.FindObject(By.NAME, "Panel", By.NAME, "Main Camera");
-            var altElementParent = altElement.getParent();
+            var altElementParent = altElement.GetParent();
             Assert.AreEqual("Panel Drag Area", altElementParent.name);
         }
         [Test]
@@ -195,34 +195,34 @@ public void TestGetAllScenesAndElements()
         public void TestNewTouchCommands()
         {
             var draggableArea = altDriver.FindObject(By.NAME, "Drag Zone");
-            var initialPosition = draggableArea.getScreenPosition();
-            int fingerId = altDriver.BeginTouch(draggableArea.getScreenPosition());
+            var initialPosition = draggableArea.GetScreenPosition();
+            int fingerId = altDriver.BeginTouch(draggableArea.GetScreenPosition());
             AltVector2 newPosition = new AltVector2(draggableArea.x + 20, draggableArea.y + 10);
             altDriver.MoveTouch(fingerId, newPosition);
             altDriver.EndTouch(fingerId);
             draggableArea = altDriver.FindObject(By.NAME, "Drag Zone");
-            Assert.AreNotEqual(initialPosition, draggableArea.getScreenPosition());
+            Assert.AreNotEqual(initialPosition, draggableArea.GetScreenPosition());
 
         }
         [Test]
         public void TestCreateTouchTwice()
         {
             var draggableArea = altDriver.FindObject(By.NAME, "Drag Zone");
-            var initialPosition = draggableArea.getScreenPosition();
-            int fingerId = altDriver.BeginTouch(draggableArea.getScreenPosition());
+            var initialPosition = draggableArea.GetScreenPosition();
+            int fingerId = altDriver.BeginTouch(draggableArea.GetScreenPosition());
             AltVector2 newPosition = new AltVector2(draggableArea.x + 20, draggableArea.y + 10);
             altDriver.MoveTouch(fingerId, newPosition);
             altDriver.EndTouch(fingerId);
             draggableArea = altDriver.FindObject(By.NAME, "Drag Zone");
-            var secondPosition = draggableArea.getScreenPosition();
+            var secondPosition = draggableArea.GetScreenPosition();
             Assert.AreNotEqual(initialPosition, secondPosition);
 
-            fingerId = altDriver.BeginTouch(draggableArea.getScreenPosition());
+            fingerId = altDriver.BeginTouch(draggableArea.GetScreenPosition());
             newPosition = new AltVector2(draggableArea.x + 20, draggableArea.y + 10);
             altDriver.MoveTouch(fingerId, newPosition);
             altDriver.EndTouch(fingerId);
             draggableArea = altDriver.FindObject(By.NAME, "Drag Zone");
-            Assert.AreNotEqual(secondPosition, draggableArea.getScreenPosition());
+            Assert.AreNotEqual(secondPosition, draggableArea.GetScreenPosition());
 
         }
     }
diff --git a/Assets/AltTester/Examples/Test/Editor/Driver/TestInputActions.cs b/Assets/AltTester/Examples/Test/Editor/Driver/TestInputActions.cs
index 198ad62cf..4905d1b48 100644
--- a/Assets/AltTester/Examples/Test/Editor/Driver/TestInputActions.cs
+++ b/Assets/AltTester/Examples/Test/Editor/Driver/TestInputActions.cs
@@ -31,12 +31,12 @@ public void TestScrollAndWait()
 
             var scrollBar = altDriver.WaitForObject(By.PATH, "//ScrollCanvas//Handle");
 
-            AltVector2 scrollBarInitialPosition = scrollBar.getScreenPosition();
+            AltVector2 scrollBarInitialPosition = scrollBar.GetScreenPosition();
             altDriver.MoveMouse(scrollBarInitialPosition);
             altDriver.Scroll(-20, 0.1f);
 
             scrollBar = altDriver.FindObject(By.PATH, "//ScrollCanvas//Handle");
-            AltVector2 scrollBarFinalPosition = scrollBar.getScreenPosition();
+            AltVector2 scrollBarFinalPosition = scrollBar.GetScreenPosition();
             Assert.AreNotEqual(scrollBarInitialPosition.y, scrollBarFinalPosition.y);
         }
     }
diff --git a/Assets/AltTester/Examples/Test/Editor/Driver/Testforscene1TestSample.cs b/Assets/AltTester/Examples/Test/Editor/Driver/Testforscene1TestSample.cs
index 2fcb73906..f1a1c00fd 100644
--- a/Assets/AltTester/Examples/Test/Editor/Driver/Testforscene1TestSample.cs
+++ b/Assets/AltTester/Examples/Test/Editor/Driver/Testforscene1TestSample.cs
@@ -698,7 +698,7 @@ public void TestFindNonExistentObjectByName()
         public void TestHoldButton()
         {
             var button = altDriver.FindObject(By.NAME, "UIButton");
-            altDriver.HoldButton(button.getScreenPosition(), 1);
+            altDriver.HoldButton(button.GetScreenPosition(), 1);
             var capsuleInfo = altDriver.FindObject(By.NAME, "CapsuleInfo");
             var text = capsuleInfo.GetText();
             Assert.AreEqual(text, "UIButton clicked to jump capsule!");
@@ -1161,7 +1161,7 @@ public void TestSwipeWithDuration0()
         {
             altDriver.FindObject(By.NAME, "ButtonCounter");
             var counterButtonText = altDriver.FindObject(By.NAME, "ButtonCounter/Text");
-            altDriver.Swipe(counterButtonText.getScreenPosition(), counterButtonText.getScreenPosition(), 0, wait: false);
+            altDriver.Swipe(counterButtonText.GetScreenPosition(), counterButtonText.GetScreenPosition(), 0, wait: false);
             Thread.Sleep(500);
             Assert.AreEqual("1", counterButtonText.GetText());
         }
@@ -1171,7 +1171,7 @@ public void TestCustomTap()
         {
             var counterButton = altDriver.FindObject(By.NAME, "ButtonCounter");
             var counterButtonText = altDriver.FindObject(By.NAME, "ButtonCounter/Text");
-            altDriver.Tap(counterButton.getScreenPosition(), 4);
+            altDriver.Tap(counterButton.GetScreenPosition(), 4);
             Thread.Sleep(1000);
             Assert.AreEqual("4", counterButtonText.GetText());
         }
@@ -1235,7 +1235,7 @@ public void TestFindObjectWithCameraId()
             Assert.True(altElement.name.Equals("Capsule"));
             var camera2 = altDriver.FindObject(By.PATH, "//Main Camera");
             var altElement2 = altDriver.FindObject(By.COMPONENT, "CapsuleCollider", By.ID, camera2.id.ToString());
-            Assert.AreNotEqual(altElement.getScreenPosition(), altElement2.getScreenPosition());
+            Assert.AreNotEqual(altElement.GetScreenPosition(), altElement2.GetScreenPosition());
         }
 
         [Test]
@@ -1249,7 +1249,7 @@ public void TestWaitForObjectWithCameraId()
             Assert.True(altElement.name.Equals("Capsule"));
             var camera2 = altDriver.FindObject(By.PATH, "//Main Camera");
             var altElement2 = altDriver.WaitForObject(By.COMPONENT, "CapsuleCollider", By.ID, camera2.id.ToString());
-            Assert.AreNotEqual(altElement.getScreenPosition(), altElement2.getScreenPosition());
+            Assert.AreNotEqual(altElement.GetScreenPosition(), altElement2.GetScreenPosition());
         }
 
         [Test]
@@ -1263,7 +1263,7 @@ public void TestFindObjectsWithCameraId()
             Assert.True(altElement[0].name.Equals("Plane"));
             var camera2 = altDriver.FindObject(By.PATH, "//Main Camera");
             var altElement2 = altDriver.FindObjects(By.NAME, "Plane", By.ID, camera2.id.ToString());
-            Assert.AreNotEqual(altElement[0].getScreenPosition(), altElement2[0].getScreenPosition());
+            Assert.AreNotEqual(altElement[0].GetScreenPosition(), altElement2[0].GetScreenPosition());
         }
 
         [Test]
@@ -1312,7 +1312,7 @@ public void TestFindObjectWithTag()
             var altElement = altDriver.FindObject(By.COMPONENT, "CapsuleCollider", By.TAG, "MainCamera");
             Assert.True(altElement.name.Equals("Capsule"));
             var altElement2 = altDriver.FindObject(By.COMPONENT, "CapsuleCollider", By.TAG, "Untagged");
-            Assert.AreNotEqual(altElement.getScreenPosition(), altElement2.getScreenPosition());
+            Assert.AreNotEqual(altElement.GetScreenPosition(), altElement2.GetScreenPosition());
         }
 
         [Test]
@@ -1324,7 +1324,7 @@ public void TestWaitForObjectWithTag()
             var altElement = altDriver.WaitForObject(By.COMPONENT, "CapsuleCollider", By.TAG, "MainCamera");
             Assert.True(altElement.name.Equals("Capsule"));
             var altElement2 = altDriver.WaitForObject(By.COMPONENT, "CapsuleCollider", By.TAG, "Untagged");
-            Assert.AreNotEqual(altElement.getScreenPosition(), altElement2.getScreenPosition());
+            Assert.AreNotEqual(altElement.GetScreenPosition(), altElement2.GetScreenPosition());
         }
 
         [Test]
@@ -1336,7 +1336,7 @@ public void TestFindObjectsWithTag()
             var altElement = altDriver.FindObjects(By.NAME, "Capsule", By.TAG, "MainCamera");
             Assert.True(altElement[0].name.Equals("Capsule"));
             var altElement2 = altDriver.FindObjects(By.NAME, "Capsule", By.TAG, "Untagged");
-            Assert.AreNotEqual(altElement[0].getScreenPosition(), altElement2[0].getScreenPosition());
+            Assert.AreNotEqual(altElement[0].GetScreenPosition(), altElement2[0].GetScreenPosition());
         }
 
         [Test]
@@ -1376,11 +1376,11 @@ public void TestWaitForObjectWhichContainsWithTag()
         public void TestAcceleration()
         {
             var capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var initialWorldCoordinates = capsule.getWorldPosition();
+            var initialWorldCoordinates = capsule.GetWorldPosition();
             altDriver.Tilt(new AltVector3(1, 1, 1), 1, wait: false);
             Thread.Sleep(1000);
             capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var afterTiltCoordinates = capsule.getWorldPosition();
+            var afterTiltCoordinates = capsule.GetWorldPosition();
             Assert.AreNotEqual(initialWorldCoordinates, afterTiltCoordinates);
 
         }
@@ -1388,11 +1388,11 @@ public void TestAcceleration()
         public void TestAccelerationAndWait()
         {
             var capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var initialWorldCoordinates = capsule.getWorldPosition();
+            var initialWorldCoordinates = capsule.GetWorldPosition();
             altDriver.Tilt(new AltVector3(1, 1, 1), 1);
             Thread.Sleep(100);
             capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var afterTiltCoordinates = capsule.getWorldPosition();
+            var afterTiltCoordinates = capsule.GetWorldPosition();
             Assert.AreNotEqual(initialWorldCoordinates, afterTiltCoordinates);
         }
 
@@ -1405,7 +1405,7 @@ public void TestFindObjectByCamera()
             var altElement = altDriver.FindObject(By.COMPONENT, "CapsuleCollider", By.NAME, "Camera");
             Assert.True(altElement.name.Equals("Capsule"));
             var altElement2 = altDriver.FindObject(By.COMPONENT, "CapsuleCollider", By.NAME, "Main Camera");
-            Assert.AreNotEqual(altElement.getScreenPosition(), altElement2.getScreenPosition());
+            Assert.AreNotEqual(altElement.GetScreenPosition(), altElement2.GetScreenPosition());
         }
 
         [Test]
@@ -1417,7 +1417,7 @@ public void TestWaitForObjectByCamera()
             var altElement = altDriver.WaitForObject(By.COMPONENT, "CapsuleCollider", By.NAME, "Camera");
             Assert.True(altElement.name.Equals("Capsule"));
             var altElement2 = altDriver.WaitForObject(By.COMPONENT, "CapsuleCollider", By.NAME, "Main Camera");
-            Assert.AreNotEqual(altElement.getScreenPosition(), altElement2.getScreenPosition());
+            Assert.AreNotEqual(altElement.GetScreenPosition(), altElement2.GetScreenPosition());
         }
 
         [Test]
@@ -1429,7 +1429,7 @@ public void TestFindObjectsByCamera()
             var altElement = altDriver.FindObjects(By.NAME, "Plane", By.NAME, "Camera");
             Assert.True(altElement[0].name.Equals("Plane"));
             var altElement2 = altDriver.FindObjects(By.NAME, "Plane", By.NAME, "Main Camera");
-            Assert.AreNotEqual(altElement[0].getScreenPosition(), altElement2[0].getScreenPosition());
+            Assert.AreNotEqual(altElement[0].GetScreenPosition(), altElement2[0].GetScreenPosition());
         }
 
         [Test]
@@ -1563,25 +1563,25 @@ public void TestSetComponentPropertyComplexClass3()
         public void TestClickWithMouse0Capsule()
         {
             var capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var initialCapsulePosition = capsule.getWorldPosition();
-            altDriver.MoveMouse(capsule.getScreenPosition(), 0.1f);
+            var initialCapsulePosition = capsule.GetWorldPosition();
+            altDriver.MoveMouse(capsule.GetScreenPosition(), 0.1f);
             Thread.Sleep(400);
             altDriver.PressKey(AltKeyCode.Mouse0, 1, 0.2f);
             capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var finalCapsulePosition = capsule.getWorldPosition();
+            var finalCapsulePosition = capsule.GetWorldPosition();
             Assert.AreNotEqual(initialCapsulePosition, finalCapsulePosition);
         }
         [Test]
         public void TestClickWithMouse1Capsule()
         {
             var capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var initialCapsulePosition = capsule.getWorldPosition();
-            altDriver.MoveMouse(capsule.getScreenPosition(), 0.1f);
+            var initialCapsulePosition = capsule.GetWorldPosition();
+            altDriver.MoveMouse(capsule.GetScreenPosition(), 0.1f);
             Thread.Sleep(400);
             altDriver.PressKey(AltKeyCode.Mouse1, 1, 0.2f);
 
             capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var finalCapsulePosition = capsule.getWorldPosition();
+            var finalCapsulePosition = capsule.GetWorldPosition();
             Assert.True(FastApproximately(initialCapsulePosition.x, finalCapsulePosition.x, 0.01f));
             Assert.True(FastApproximately(initialCapsulePosition.y, finalCapsulePosition.y, 0.01f));
             Assert.True(FastApproximately(initialCapsulePosition.z, finalCapsulePosition.z, 0.01f));
@@ -1590,12 +1590,12 @@ public void TestClickWithMouse1Capsule()
         public void TestClickWithMouse2Capsule()
         {
             var capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var initialCapsulePosition = capsule.getWorldPosition();
-            altDriver.MoveMouse(capsule.getScreenPosition(), 0.1f);
+            var initialCapsulePosition = capsule.GetWorldPosition();
+            altDriver.MoveMouse(capsule.GetScreenPosition(), 0.1f);
             Thread.Sleep(400);
             altDriver.PressKey(AltKeyCode.Mouse2, 1, 0.2f);
             capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var finalCapsulePosition = capsule.getWorldPosition();
+            var finalCapsulePosition = capsule.GetWorldPosition();
             Assert.True(FastApproximately(initialCapsulePosition.x, finalCapsulePosition.x, 0.01f));
             Assert.True(FastApproximately(initialCapsulePosition.y, finalCapsulePosition.y, 0.01f));
             Assert.True(FastApproximately(initialCapsulePosition.z, finalCapsulePosition.z, 0.01f));
@@ -1737,7 +1737,7 @@ public void TestUnloadOnlyScene()
         public void TestClickButtonInWolrdSpaceCanvas()
         {
             altDriver.LoadScene("Scene6");
-            var screenPosition = altDriver.FindObject(By.NAME, "WorldSpaceButton").getScreenPosition();
+            var screenPosition = altDriver.FindObject(By.NAME, "WorldSpaceButton").GetScreenPosition();
             altDriver.Tap(screenPosition, 1);
             var worldSpaceButton = altDriver.FindObject(By.NAME, "WorldSpaceButton", enabled: false);
             Assert.IsFalse(worldSpaceButton.enabled);
@@ -1747,9 +1747,9 @@ public void TestDifferentObjectSelectedClickingOnScreenshot()
         {
             var uiButton = altDriver.FindObject(By.NAME, "UIButton");
             AltObject selectedObject;
-            altDriver.GetScreenshot(uiButton.getScreenPosition(), new AltColor(1, 1, 1, 1), 1, out selectedObject);
+            altDriver.GetScreenshot(uiButton.GetScreenPosition(), new AltColor(1, 1, 1, 1), 1, out selectedObject);
             Assert.AreEqual("Text", selectedObject.name);
-            altDriver.GetScreenshot(uiButton.getScreenPosition(), new AltColor(1, 1, 1, 1), 1, out selectedObject);
+            altDriver.GetScreenshot(uiButton.GetScreenPosition(), new AltColor(1, 1, 1, 1), 1, out selectedObject);
             Assert.AreEqual("UIButton", selectedObject.name);
         }
         [Test]
@@ -1829,10 +1829,14 @@ public void TestClick_MultipleClicks()
         }
 
         [Test]
-        public void TestClick_MouseDownUp()
+        [Ignore("mousePressCounter remains stuck and is 13 when asserting instead of 1")]
+        public void AAAATestClick_MouseDownUp()
         {
-            altDriver.MoveMouse(new AltVector2(0, 0));
             var counterElement = altDriver.FindObject(By.NAME, "ButtonCounter");
+            counterElement.SetComponentProperty("AltExampleScriptIncrementOnClick", "mouseUpCounter", 0, "Assembly-CSharp");
+            counterElement.SetComponentProperty("AltExampleScriptIncrementOnClick", "mousePressedCounter", 0, "Assembly-CSharp");
+
+            altDriver.MoveMouse(new AltVector2(0, 0));
             counterElement.Click();
 
             var mouseDownCounter = counterElement.GetComponentProperty<int>("AltExampleScriptIncrementOnClick", "mouseDownCounter", "Assembly-CSharp");
@@ -1857,7 +1861,7 @@ public void TestPointerEnter_PointerExit()
 
             var counterElement = altDriver.FindObject(By.NAME, "ButtonCounter");
 
-            altDriver.MoveMouse(counterElement.getScreenPosition(), 1);
+            altDriver.MoveMouse(counterElement.GetScreenPosition(), 1);
             Thread.Sleep(800); // OnPointerEnter, OnPointerExit events are raised during the Update function. right now there is a delay from mouse moved to events raised.
 
             var eventsRaised = counterElement.GetComponentProperty<List<string>>("AltExampleScriptIncrementOnClick", "eventsRaised", "Assembly-CSharp");
@@ -1894,7 +1898,7 @@ public void TestClickCoordinates_MouseDownUp()
         {
             var button2dCollider = altDriver.FindObject(By.NAME, "TapClickEventsButtonCollider");
 
-            altDriver.Click(button2dCollider.getScreenPosition());
+            altDriver.Click(button2dCollider.GetScreenPosition());
 
             var monoBehaviourEventsRaised = button2dCollider.GetComponentProperty<List<string>>("AltTapClickEventsScript", "monoBehaviourEventsRaised", "Assembly-CSharp");
             // Assert.IsTrue(monoBehaviourEventsRaised.Contains("OnMouseEnter")); does not work on mobile
@@ -1915,7 +1919,7 @@ public void TestClickCoordinates_MouseDownUp()
         public void TestClickCoordinates_ColliderNoParent()
         {
             var sphere = altDriver.FindObject(By.PATH, "/Sphere");
-            altDriver.Click(sphere.getScreenPosition());
+            altDriver.Click(sphere.GetScreenPosition());
 
             var monoBehaviourEventsRaised = sphere.GetComponentProperty<List<string>>("AltSphereColliderScript", "monoBehaviourEventsRaised", "Assembly-CSharp");
             Assert.IsTrue(monoBehaviourEventsRaised.Contains("OnMouseOver"));
@@ -1932,7 +1936,7 @@ public void TestClickCoordinates_ColliderParentCollider()
             altDriver.MoveMouse(new AltVector2(0, 0));
             var sphere = altDriver.FindObject(By.PATH, "/Sphere");
             var plane = altDriver.FindObject(By.PATH, "/Sphere/PlaneS");
-            altDriver.Click(plane.getScreenPosition());
+            altDriver.Click(plane.GetScreenPosition());
 
             var planeEvents = plane.GetComponentProperty<List<string>>("AltPlaneColliderScript", "monoBehaviourEventsRaised", "Assembly-CSharp");
             Assert.IsTrue(planeEvents.Contains("OnMouseOver"));
@@ -1956,7 +1960,7 @@ public static bool FastApproximately(float a, float b, float threshold)
         public void TestClickCoordinatesCheckPressRaycastObject()
         {
             var incrementClick = altDriver.FindObject(By.NAME, "ButtonCounter");
-            altDriver.Click(incrementClick.getScreenPosition());
+            altDriver.Click(incrementClick.GetScreenPosition());
             Assert.AreEqual("Text", incrementClick.GetComponentProperty<string>("AltExampleScriptIncrementOnClick", "eventDataPressRaycastObject", "Assembly-CSharp"));
         }
 
@@ -1975,23 +1979,23 @@ public void TestPointerPressSet()
         public void TestKeyDownAndKeyUpMouse0()
         {
             var capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var initialCapsulePosition = capsule.getWorldPosition();
-            altDriver.MoveMouse(capsule.getScreenPosition(), 0.1f);
+            var initialCapsulePosition = capsule.GetWorldPosition();
+            altDriver.MoveMouse(capsule.GetScreenPosition(), 0.1f);
             Thread.Sleep(400);
             altDriver.KeyDown(AltKeyCode.Mouse0);
             altDriver.KeyUp(AltKeyCode.Mouse0);
             capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var finalCapsulePosition = capsule.getWorldPosition();
+            var finalCapsulePosition = capsule.GetWorldPosition();
             Assert.AreNotEqual(initialCapsulePosition, finalCapsulePosition);
         }
         [Test]
         public void TestTouchAreUpdatedWhenMoved()
         {
             var capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var id = altDriver.BeginTouch(capsule.getScreenPosition());
+            var id = altDriver.BeginTouch(capsule.GetScreenPosition());
             var phase = capsule.GetComponentProperty<int>("AltExampleScriptCapsule", "TouchPhase", "Assembly-CSharp");
             Assert.AreEqual(0, phase);
-            altDriver.MoveTouch(id, capsule.getScreenPosition());
+            altDriver.MoveTouch(id, capsule.GetScreenPosition());
             Thread.Sleep(100);
             phase = capsule.GetComponentProperty<int>("AltExampleScriptCapsule", "TouchPhase", "Assembly-CSharp");
             Assert.AreEqual(1, phase);
@@ -2105,21 +2109,22 @@ public void TestFindElementAtCoordinates_NoElement()
         public void TestFindElementAtCoordinates_3dElement()
         {
             var counterButton = altDriver.FindObject(By.NAME, "Capsule");
-            var element = altDriver.FindObjectAtCoordinates(counterButton.getScreenPosition());
+            var element = altDriver.FindObjectAtCoordinates(counterButton.GetScreenPosition());
             Assert.AreEqual("Capsule", element.name);
         }
-        // [Test]
-        // public void TestScrollViewSwipe()
-        // {
-        //     altDriver.LoadScene("Scene 11 ScrollView Scene");
-        //     var buttons = altDriver.FindObjects(By.PATH, "//Content/*");
-        //     for (int i = 1; i <= buttons.Count - 3; i++)
-        //     {
-        //         altDriver.Swipe(buttons[i].getScreenPosition(), buttons[i - 1].getScreenPosition());
-
-        //     }
-        //     Assert.AreEqual(0, buttons[0].GetComponentProperty<int>("AltScrollViewButtonController", "Counter", "Assembly-CSharp"));
-        // }
+        [Test]
+        [Ignore("Was commented before")]
+        public void TestScrollViewSwipe()
+        {
+            altDriver.LoadScene("Scene 11 ScrollView Scene");
+            var buttons = altDriver.FindObjects(By.PATH, "//Content/*");
+            for (int i = 1; i <= buttons.Count - 3; i++)
+            {
+                altDriver.Swipe(buttons[i].getScreenPosition(), buttons[i - 1].getScreenPosition());
+
+            }
+            Assert.AreEqual(0, buttons[0].GetComponentProperty<int>("AltScrollViewButtonController", "Counter", "Assembly-CSharp"));
+        }
 
         [Test]
         public void TestCallPrivateMethod()
diff --git a/Bindings~/dotnet/AltDriver.Tests/unit/TestAltPortForwarding.cs b/Bindings~/dotnet/AltDriver.Tests/unit/TestAltPortForwarding.cs
deleted file mode 100644
index a68576ba4..000000000
--- a/Bindings~/dotnet/AltDriver.Tests/unit/TestAltPortForwarding.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using System;
-using System.IO;
-using NUnit.Framework;
-
-namespace Altom.AltDriver.Tests
-{
-    [Timeout(10000)]
-    [Category("Android")]
-    public class TestAltPortForwarding
-    {
-        private string androidSdkRoot;
-        [OneTimeSetUp]
-        public void OneTimeSetUp()
-        {
-            //store ANDROID_SDK_ROOT original
-            androidSdkRoot = Environment.GetEnvironmentVariable("ANDROID_SDK_ROOT");
-        }
-        [OneTimeTearDown]
-        public void OneTimeTearDown()
-        {
-            //restore ANDROID_SDK_ROOT to original
-            Environment.SetEnvironmentVariable("ANDROID_SDK_ROOT", androidSdkRoot);
-            AltPortForwarding.ForwardAndroid();
-        }
-        [SetUp]
-        public void SetUp()
-        {
-            AltPortForwarding.RemoveAllForwardAndroid();
-        }
-
-        [TearDown]
-        public void TearDown()
-        {
-            //restore ANDROID_SDK_ROOT to original
-            Environment.SetEnvironmentVariable("ANDROID_SDK_ROOT", androidSdkRoot);
-        }
-
-        [Test]
-        public void TestGetAdbPathOverwrite()
-        {
-            Assert.AreEqual("overwrite", AltPortForwarding.GetAdbPath("overwrite"));
-        }
-
-        [Test]
-        public void TestGetAdbPathAndroidSdk()
-        {
-            var sdkPath = string.Join(Path.DirectorySeparatorChar, "path", "to", "sdk");
-            Environment.SetEnvironmentVariable("ANDROID_SDK_ROOT", sdkPath);
-
-            var expected = string.Join(Path.DirectorySeparatorChar, sdkPath, "platform-tools", "adb");
-            Assert.AreEqual(expected, AltPortForwarding.GetAdbPath(""));
-        }
-        [Test]
-        public void TestGetAdbPathSystemPath()
-        {
-            Environment.SetEnvironmentVariable("ANDROID_SDK_ROOT", null);
-            Assert.AreEqual("adb", AltPortForwarding.GetAdbPath(""));
-        }
-
-        // Since changing the build to run on mac this test will fail TODO Filter this test out on mac
-        // [Test]
-        // public void TestRemoveForwardAndroid()
-        // {
-        //     AltPortForwarding.ForwardAndroid();
-        //     AltPortForwarding.RemoveForwardAndroid(13000);
-        //     try
-        //     {
-        //         var driver = new AltDriver(enableLogging: true, connectTimeout: 2);
-        //         driver.Stop();
-        //     }
-        //     catch (Exception ex)
-        //     {
-        //         Console.WriteLine(ex.ToString());
-        //         Assert.AreEqual("Failed to connect to AltTester on host: 127.0.0.1 port: 13000.", ex.Message);
-        //         return;
-        //     }
-        //     Assert.Fail("Should not be able to connect");
-
-        // }
-
-        [Test]
-        public void TestForwardAndroid()
-        {
-            AltPortForwarding.RemoveAllForwardAndroid();
-            AltPortForwarding.ForwardAndroid();
-            try
-            {
-                var driver = new AltDriver(enableLogging: true, connectTimeout: 2);
-                driver.Stop();
-            }
-            catch
-            {
-                Assert.Fail("ForwardAndroid failed");
-            }
-        }
-    }
-}
diff --git a/Bindings~/python/requirements-dev.txt b/Bindings~/python/requirements-dev.txt
index a1c40065e..a8dbff040 100644
--- a/Bindings~/python/requirements-dev.txt
+++ b/Bindings~/python/requirements-dev.txt
@@ -10,4 +10,3 @@ flake8
 pytest
 pytest-cov
 pytest-repeat
-# appium-python-client
diff --git a/Docs/source/pages/advanced-usage.md b/Docs/source/pages/advanced-usage.md
index b394cb743..d4e6a96a1 100644
--- a/Docs/source/pages/advanced-usage.md
+++ b/Docs/source/pages/advanced-usage.md
@@ -97,7 +97,7 @@ commands:
 
     .. tab:: C#
 
-        Available Alt command line arguments:
+        Available AltTester SDK command line arguments:
 
         ``-testsClass`` - runs tests from given class/classes
 
@@ -188,7 +188,7 @@ When you run your game instrumented with AltTester Unity SDK, on a device, you n
 to tell your AltDriver how to connect to it.
 
 Port forwarding can be set up either through a command line command or in the
-test code by using the methods available in Alt classes.
+test code by using the methods available in AltTester SDK classes.
 
 The following are some cases when Port Forwarded is needed:
 
@@ -200,7 +200,7 @@ The following are some cases when Port Forwarded is needed:
 Port forwarding can be set up in three ways:
 
 - through a command line command (using ADB/IProxy)
-- in the test code by using the methods available in Alt classes
+- in the test code by using the methods available in AltTester SDK classes
 - from AltTester Editor - Port Forwarding Section
 
 All methods listed above require that you have ADB or IProxy installed.
diff --git a/Docs/source/pages/commands.md b/Docs/source/pages/commands.md
index 999314c2a..d7f41a727 100644
--- a/Docs/source/pages/commands.md
+++ b/Docs/source/pages/commands.md
@@ -838,7 +838,7 @@ Simulates holding left click button down for a specified amount of time at given
         public void TestHoldButton()
         {
             var button = altDriver.FindObject(By.NAME, "UIButton");
-            altDriver.HoldButton(button.getScreenPosition(), 1);
+            altDriver.HoldButton(button.GetScreenPosition(), 1);
             var capsuleInfo = altDriver.FindObject(By.NAME, "CapsuleInfo");
             var text = capsuleInfo.GetText();
             Assert.AreEqual(text, "UIButton clicked to jump capsule!");
@@ -1344,7 +1344,7 @@ Simulates a multipoint swipe action.
             var position = new AltVector2(altElement.x, altElement.y);
             var pos = new[]
             {
-                altElement.getScreenPosition(),
+                altElement.GetScreenPosition(),
                 new AltVector2(altElement.x - 200, altElement.y - 200),
                 new AltVector2(altElement.x - 300, altElement.y - 100),
                 new AltVector2(altElement.x - 50, altElement.y - 100),
@@ -1425,13 +1425,13 @@ Simulates starting of a touch on the screen. To further interact with the touch
         public void TestNewTouchCommands()
         {
             var draggableArea = altDriver.FindObject(By.NAME, "Drag Zone");
-            var initialPosition = draggableArea.getScreenPosition();
-            int fingerId = altDriver.BeginTouch(draggableArea.getScreenPosition());
+            var initialPosition = draggableArea.GetScreenPosition();
+            int fingerId = altDriver.BeginTouch(draggableArea.GetScreenPosition());
             AltVector2 newPosition = new AltVector2(draggableArea.x + 20, draggableArea.y + 10);
             altDriver.MoveTouch(fingerId, newPosition);
             altDriver.EndTouch(fingerId);
             draggableArea = altDriver.FindObject(By.NAME, "Drag Zone");
-            Assert.AreNotEqual(initialPosition, draggableArea.getScreenPosition());
+            Assert.AreNotEqual(initialPosition, draggableArea.GetScreenPosition());
 
         }
 
@@ -1492,13 +1492,13 @@ Simulates a touch movement on the screen. Move the touch created with [BeginTouc
         public void TestNewTouchCommands()
         {
             var draggableArea = altDriver.FindObject(By.NAME, "Drag Zone");
-            var initialPosition = draggableArea.getScreenPosition();
-            int fingerId = altDriver.BeginTouch(draggableArea.getScreenPosition());
+            var initialPosition = draggableArea.GetScreenPosition();
+            int fingerId = altDriver.BeginTouch(draggableArea.GetScreenPosition());
             AltVector2 newPosition = new AltVector2(draggableArea.x + 20, draggableArea.y + 10);
             altDriver.MoveTouch(fingerId, newPosition);
             altDriver.EndTouch(fingerId);
             draggableArea = altDriver.FindObject(By.NAME, "Drag Zone");
-            Assert.AreNotEqual(initialPosition, draggableArea.getScreenPosition());
+            Assert.AreNotEqual(initialPosition, draggableArea.GetScreenPosition());
 
         }
 
@@ -1558,13 +1558,13 @@ Simulates ending of a touch on the screen. This command will destroy the touch m
         public void TestNewTouchCommands()
         {
             var draggableArea = altDriver.FindObject(By.NAME, "Drag Zone");
-            var initialPosition = draggableArea.getScreenPosition();
-            int fingerId = altDriver.BeginTouch(draggableArea.getScreenPosition());
+            var initialPosition = draggableArea.GetScreenPosition();
+            int fingerId = altDriver.BeginTouch(draggableArea.GetScreenPosition());
             AltVector2 newPosition = new AltVector2(draggableArea.x + 20, draggableArea.y + 10);
             altDriver.MoveTouch(fingerId, newPosition);
             altDriver.EndTouch(fingerId);
             draggableArea = altDriver.FindObject(By.NAME, "Drag Zone");
-            Assert.AreNotEqual(initialPosition, draggableArea.getScreenPosition());
+            Assert.AreNotEqual(initialPosition, draggableArea.GetScreenPosition());
         }
 
     .. code-tab:: java
@@ -1627,7 +1627,7 @@ Click at screen coordinates.
         {
             const string name = "UIButton";
             var altObject = altDriver.FindObject(By.NAME,name);
-            altDriver.Click(altObject.getScreenPosition());
+            altDriver.Click(altObject.GetScreenPosition());
             Assert.AreEqual(name, altObject.name);
             altDriver.WaitForObject(By.PATH, "//CapsuleInfo[@text="UIButton clicked to jump capsule!"]");
         }
@@ -1687,7 +1687,7 @@ Tap at screen coordinates.
         {
             const string name = "UIButton";
             var altObject = altDriver.FindObject(By.NAME,name);
-            altDriver.Tap(altObject.getScreenPosition());
+            altDriver.Tap(altObject.GetScreenPosition());
             Assert.AreEqual(name, altObject.name);
             altDriver.WaitForObject(By.PATH, "//CapsuleInfo[@text="UIButton clicked to jump capsule!"]");
         }
@@ -1745,11 +1745,11 @@ Simulates device rotation action in your game.
         public void TestAcceleration()
         {
             var capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var initialWorldCoordinates = capsule.getWorldPosition();
+            var initialWorldCoordinates = capsule.GetWorldPosition();
             altDriver.Tilt(new AltVector3(1, 1, 1), 1);
             Thread.Sleep(100);
             capsule = altDriver.FindObject(By.NAME, "Capsule");
-            var afterTiltCoordinates = capsule.getWorldPosition();
+            var afterTiltCoordinates = capsule.GetWorldPosition();
             Assert.AreNotEqual(initialWorldCoordinates, afterTiltCoordinates);
         }
 
@@ -2830,7 +2830,7 @@ Invokes a method from an existing component of the object.
             const string methodName = "get_text";
             const string assemblyName = "UnityEngine.UI";
             const string elementText = "Change Camera Mode";
-            var altElement = altUnityDriver.FindObject(By.PATH, "/Canvas/Button/Text");
+            var altElement = altDriver.FindObject(By.PATH, "/Canvas/Button/Text");
             var data = altElement.CallComponentMethod<string>(componentName, methodName, assemblyName, new object[] { });
             Assert.AreEqual(elementText, data);
         }
@@ -2844,7 +2844,7 @@ Invokes a method from an existing component of the object.
             const string assemblyName = "UnityEngine.UI";
             Int32 fontSizeExpected = 16;
             string[] parameters = new[] {"16"};
-            var altElement = altUnityDriver.FindObject(By.PATH, "/Canvas/UnityUIInputField/Text");
+            var altElement = altDriver.FindObject(By.PATH, "/Canvas/UnityUIInputField/Text");
             var data = altElement.CallComponentMethod<string>(componentName, methodName, assemblyName, parameters);
             var fontSize =  altElement.CallComponentMethod<Int32>(componentName, methodToVerifyName, assemblyName, new object[] { });
             Assert.AreEqual(fontSizeExpected, fontSize);
@@ -2877,9 +2877,9 @@ Invokes a method from an existing component of the object.
             String methodName = "get_text";
             String assembly = "UnityEngine.UI";
             String expected_text = "Change Camera Mode";
-            AltFindObjectsParams altFindObjectsParams = new AltFindObjectsParams.Builder(AltUnityDriver.By.PATH,
+            AltFindObjectsParams altFindObjectsParams = new AltFindObjectsParams.Builder(AltDriver.By.PATH,
                 "/Canvas/Button/Text").build();
-            AltUnityObject altElement = altUnityDriver.findObject(altFindObjectsParams);
+            AltObject altElement = altDriver.findObject(altFindObjectsParams);
             assertEquals(expected_text, altElement.callComponentMethod(
                 new AltCallComponentMethodParams.Builder(componentName, methodName, assembly, new Object[] {}).build(),
                 String.class));
@@ -2893,9 +2893,9 @@ Invokes a method from an existing component of the object.
             String methodExpectedName = "get_fontSize";
             String assembly = "UnityEngine.UI";
             String[] parameters = new String[] { "16"};
-            AltFindObjectsParams altFindObjectsParams = new AltFindObjectsParams.Builder(AltUnityDriver.By.PATH,
+            AltFindObjectsParams altFindObjectsParams = new AltFindObjectsParams.Builder(AltDriver.By.PATH,
             "/Canvas/UnityUIInputField/Text").build();
-            AltUnityObject altElement = altUnityDriver.findObject(altFindObjectsParams);
+            AltObject altElement = altDriver.findObject(altFindObjectsParams);
             altElement.callComponentMethod(
                 new AltCallComponentMethodParams.Builder(componentName, methodName, assembly, parameters)
                     .build(),
@@ -3574,7 +3574,7 @@ None
         public void TestGetParent()
         {
             var altObject = altDriver.FindObject(By.NAME, "Panel", By.NAME, "Main Camera");
-            var altObjectParent = altObject.getParent();
+            var altObjectParent = altObject.GetParent();
             Assert.AreEqual("Panel Drag Area", altObjectParent.name);
         }
 
@@ -3799,7 +3799,6 @@ Is a solution offered by AltTester Unity SDK in order to find object easier. Thi
 
 To add AltId to every object simply just click _Add AltId to every object_ from AltTester menu.
 
-![Add Alt Id](../_static/img/commands/add-alt-id.png)
 ![Add AltId](../_static/img/commands/add-alt-id.png)
 
 ## AltPortForwarding
diff --git a/Docs/source/pages/examples.md b/Docs/source/pages/examples.md
index ad70d03a3..af9364c2e 100644
--- a/Docs/source/pages/examples.md
+++ b/Docs/source/pages/examples.md
@@ -13,11 +13,11 @@ We plan to add more examples in the near future.
 **1.** Example test projects created for different languages and platforms:
 
 <!-- * C# tests [Standalone (NuGetPackage)](https://github.com/alttester-test-examples/CSharp-Standalone-AltTrashCat) | [Android](https://github.com/alttester-test-examples/CSharp-Android-AltTrahCat) | [iOS](https://github.com/alttester-test-examples/CSharp-iOS-AltTrahCat) -->
-* C# tests [Standalone (NuGetPackage)](https://github.com/alttester-test-examples/CSharp-Standalone-AltTrashCat)
+* C# tests [Standalone (NuGetPackage)](https://github.com/alttester/EXAMPLES-CSharp-Standalone-AltTrashCat)
 <!-- * Python tests [Standalone](https://github.com/alttester-test-examples/Python-Standalone-AltTrashCat) | [Android](https://github.com/alttester-test-examples/Python-Android-AltTrashCat) | [iOS](https://github.com/alttester-test-examples/Python-iOS-AltTrashCat) -->
-* Python tests [Android with Appium](https://github.com/alttester-test-examples/Python-Android-with-Appium-AltTrashCat-)
+* Python tests [Android with Appium](https://github.com/alttester/EXAMPLES-Python-Android-with-Appium-AltTrashCat)
 <!-- * Java tests [Standalone](https://github.com/alttester-test-examples/Java-Standalone-and-Android-AltTrashCat) | [Android](https://github.com/alttester-test-examples/Java-Standalone-and-Android-AltTrashCat) | [iOS](https://github.com/alttester-test-examples/Java-iOS-AltTrashCat) -->
-* Java tests [Standalone](https://github.com/alttester-test-examples/Java-Standalone-and-Android-AltTrashCat) | [Android](https://github.com/alttester-test-examples/Java-Standalone-and-Android-AltTrashCat)
+* Java tests [Standalone](https://github.com/alttester/EXAMPLES-Java-Standalone-and-Android-AltTrashCat) | [Android](https://github.com/alttester/EXAMPLES-Java-Standalone-and-Android-AltTrashCat)
 
     You can get the sample game from the [Unity Asset Store](https://assetstore.unity.com/packages/essentials/tutorial-projects/endless-runner-sample-game-87901).
 
diff --git a/Docs/source/pages/get-started.md b/Docs/source/pages/get-started.md
index ee12738fd..7654882c3 100644
--- a/Docs/source/pages/get-started.md
+++ b/Docs/source/pages/get-started.md
@@ -318,7 +318,8 @@ AltTester package contains AltDriver class used to connect to the instrumented g
 
                 .. code-block:: console
 
-                    mvn install:install-file -Dfile=./target/AltTester-Driver.jar -DgroupId=com.alttester -DartifactId=alttester -Dversion=1.8.0 -Dpackaging=jar``
+                    mvn install:install-file -Dfile=./target/AltTester-Driver.jar -DgroupId=com.alttester -DartifactId=alttester -Dversion=1.8.0 -Dpackaging=jar
+
 
 
         Run your tests by using the following command (in the test project folder):
diff --git a/Docs/source/pages/known-issues.rst b/Docs/source/pages/known-issues.rst
index 8e740a2eb..591b21461 100644
--- a/Docs/source/pages/known-issues.rst
+++ b/Docs/source/pages/known-issues.rst
@@ -28,7 +28,7 @@ Calling ``GetPNGScreenshot`` throws ``StackOverflow`` error (.NET Driver)
 .NET 5, or if you can't downgrade to .NET 5, try to run your tests with a lower
 resolution until this issue is fixed.
 
-**Affects**: AltTester Unity SDK v1.7.0 with .NET 6
+**Affects**: AltUnity Tester v1.7.* and AltTester Unity SDK v1.8.0  with .NET 6
 
 
 New Input System
@@ -41,7 +41,7 @@ Touch or Mouse actions do not work in tests
 Simulate Touch Input From Mouse or Pen is not checked and Lock Input to
 Game View is checked.
 
-**Affects**: AltTester Unity SDK v1.7.1 and Input System with a version below 1.3.0
+**Affects**: AltUnity Tester v1.7.1, v1.7.2, AltTester Unity SDK v1.8.0 and Input System with a version below 1.3.0
 
 The PressKey command does not work
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -50,7 +50,7 @@ The PressKey command does not work
 ``wasPressedThisFrame`` and ``wasReleasedThisFrame*``. Use ``isPressed``
 instead.
 
-**Affects**: AltTester Unity SDK v1.7.1
+**Affects**: AltUnity Tester v1.7.1, v1.7.2 and AltTester Unity SDK v1.8.0
 
 Player Input is not working when connected to AltTester Unity SDK/Desktop
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -74,4 +74,4 @@ used inside the AltTester Unity SDK. There are other alternatives that work with
 instrumented builds. For Android you can use the Android Emulator inside the
 Android Studio. For iOS you can use a simulator inside Xcode.
 
-**Affects**: AltTester Unity SDK v1.7.0 and v1.7.1
+**Affects**: AltUnity Tester v1.7.* and AltTester Unity SDK v1.8.0
diff --git a/Docs/source/pages/overview.md b/Docs/source/pages/overview.md
index 4a96c3603..31b5a96fb 100644
--- a/Docs/source/pages/overview.md
+++ b/Docs/source/pages/overview.md
@@ -17,6 +17,7 @@ You can run your tests on real devices (mobile, PCs, etc.) or inside the Unity E
 - integrate with Appium tests for the ability to interact with native elements
 - visualize input actions during test execution
 - see test results and reports inside the Unity Editor
+- generate XML test report from the Editor Window
 
 
 ## How it works
diff --git a/Docs/source/pages/upgrade-guides.rst b/Docs/source/pages/upgrade-guides.rst
index a47f4a8b4..c721e12bc 100644
--- a/Docs/source/pages/upgrade-guides.rst
+++ b/Docs/source/pages/upgrade-guides.rst
@@ -9,3 +9,4 @@ the available upgrade guides.
     :maxdepth: 2
 
     upgrade-guides/v-1-7-0
+    upgrade-guides/v-1-8-0
diff --git a/Docs/source/pages/upgrade-guides/v-1-8-0.rst b/Docs/source/pages/upgrade-guides/v-1-8-0.rst
new file mode 100644
index 000000000..2b59d7261
--- /dev/null
+++ b/Docs/source/pages/upgrade-guides/v-1-8-0.rst
@@ -0,0 +1,152 @@
+Upgrade from v1.7.2 to v1.8.0
+=============================
+
+This guide will assist in upgrading your AltUnity projects from **v1.7.2** to AltTester Unity SDK **v1.8.0**.
+
+AltUnity Tester becomes AltTester Unity SDK. The new one fits our mission to extend our test automation solution in the following directions:
+support new platforms, help game testers to start automation easier and start exploring how we could support Unreal and other engines.
+All changes are listed below, organized by drivers along with how to upgrade
+your code to work with AltTester Unity SDK v1.8.0.
+
+To learn more about what's new in AltTester Unity SDK v1.8.0, read the
+`v1.8.0 section from our changelog <https://github.com/alttester/AltTester-Unity-SDK/blob/development/CHANGELOG.md>`_.
+
+
+Unity
+-----
+
+To replace AltUnity Tester with AltTester Unity SDK you will need to do the following steps:
+
+1. Download AltTester Unity SDK from `Altom website <https://altom.com/app/uploads/AltTester/sdks/AltTester.unitypackage>`_
+2. Delete your AltUnity Tester folder
+3. Drag and drop the unitypackage you downloaded in step 1 to your Unity projects
+
+.. attention::
+   Don't delete your folder with tests during step 2. You can reuse your tests just with minor modifications
+
+Python
+------
+**altunityrunner**  →  **alttester**
+
+1. In case of `altunityrunner` PyPI package, we change the name to `AltTester-Driver`.
+
+To install the new package run ``pip install AltTester-Driver``.
+
+2. In case of `altunityrunner` python package, we change the name to `alttester`.
+
+Replace:
+
+.. code-block:: Python
+
+    from altunityrunner import *
+
+With:
+
+.. code-block:: Python
+
+    from alttester import *
+
+3. In case of `AltUnityDriver` class, we changed the name to `AltDriver`.
+4. In case of `AltUnityObject` class, we changed the name to `AltObject`.
+5. In case of `AltUnityKeyCode` object, we changed the name to `AltKeyCode`.
+6. In case of `AltUnityLogger` class, we changed the name to `AltLogger`.
+7. In case of `AltUnityLogLevel` class, we changed the name to `AltLogLevel`.
+8. In case of `AltUnityException` class, we changed the name to `AltException`.
+9. In case of `AltUnityInvalidServerResponse` class, we changed the name to `AltTesterInvalidServerResponse`.
+10. In case of `AltUnityInvalidPathException` class, we changed the name to `InvalidPathException`.
+11. In case of `AltUnityInputModuleException` class, we changed the name to `AltTesterInputModuleException`.
+12. In case of `AltUnityPortForwarding` class, we changed the name to `AltPortForwarding`.
+
+Dotnet
+------
+**AltUnityDriver**  →  **AltTester-Driver**
+
+1. In case of `AltUnityDriver` class, we changed the name to `AltDriver`.
+2. In case of `AltUnityPortForwarding` class, we changed the name to `AltPortForwarding`.
+3. In case of `AltUnityDriver` package, we changeg the name to `AltTester-Driver`.
+
+Replace:
+
+.. code-block:: C#
+
+    <PropertyGroup>
+        <PackageId>AltUnityDriver</PackageId>
+        <TargetFrameworks>netstandard2.0;net5.0</TargetFrameworks>
+        <RootNamespace>Altom.AltUnityDriver</RootNamespace>
+    </PropertyGroup>
+
+With:
+
+.. code-block:: C#
+
+    <PropertyGroup>
+        <PackageId>AltTester-Driver</PackageId>
+        <TargetFrameworks>netstandard2.0;net5.0</TargetFrameworks>
+        <RootNamespace>Altom.AltTester-Driver</RootNamespace>
+    </PropertyGroup>
+    
+Java
+----
+**altunityrunner**  →  **AltTester-Driver**
+
+1. In case of `altunityrunner` Maven package, we changed the name to `AltTester-Driver`.
+
+To install the jar run ``mvn install:install-file -Dfile=./target/AltTester-Driver.jar -DgroupId=com.alttester -DartifactId=alttester -Dversion=1.8.0 -Dpackaging=jar``.
+
+2. In case of  `altunityrunner` jar, we changed the name to `AltTester-Driver`.
+
+Replace:
+
+.. code-block:: Java
+
+    import ro.altom.atlunitytester.*
+
+With:
+
+.. code-block:: Java
+    
+    import com.alttester.*
+
+3. In case of `altunitytester-java-client` dependency, we changed the name to `alttester`.
+
+Replace:
+
+.. code-block:: java
+
+    <groupId>com.alttester</groupId>
+    <artifactId>altunitytester-java-client</artifactId>
+    <packaging>jar</packaging>
+    <version>1.8.0</version>
+
+With:
+
+.. code-block:: java
+
+    <groupId>com.alttester</groupId>
+    <artifactId>alttester</artifactId>
+    <version>1.8.0</version>
+
+4. In case of `AltUnityDriver` class, we changed the name to `AltDriver`.
+5. In case of `AltUnityObject` class, we changed the name to `AltObject`.
+6. In case of `AltUnityDriverConfigFactory` class, we changed the name to `AltDriverConfigFactory`.
+7. In case of `AltUnityKeyCode` object, we changed the name to `AltKeyCode`.
+8. In case of `AltUnityLogger` class, we changed the name to `AltLogger`.
+9. In case of `AltUnityLogLevel` class, we changed the name to `AltLogLevel`.
+10. In case of `AltUnitySetServerLogging` class, we changed the name to `AltSetServerLogging`.
+11. In case of `AltUnityAddNotificationListenerParams` class, we changed the name to `AltAddNotificationListenerParams`.
+12. In case of `AltUnityAddNotificationListener` class, we changed the name to `AltAddNotificationListener`.
+13. In case of `AltUnityRemoveNotificationListenerParams` class, we changed the name to `AltRemoveNotificationListenerParams`.
+14. In case of `AltUnityRemoveNotificationListener` class, we changed the name to `AltRemoveNotificationListener`.
+15. In case of `setAltUnityObject` command, we changed the name to `setAltObject`.
+16. In case of `AltUnityObjectAction` class, we changed the name to `AltObjectAction`.
+17. In case of `AltUnityObjectProperty` class, we changed the name to `AltObjectProperty`.
+18. In case of `AltUnityPortForwarding` class, we changed the name to `AltPortForwarding`.
+19. In case of `AltInvalidServerResponse` class, we changed the name to `AltInvalidServerResponse`.
+20. In case of `ReceiveAltUnityObject` class, we changed the name to `ReceiveAltObject`.
+21. In case of `ReceiveListOfAltUnityObjects` class, we changed the name to `ReceiveListOfAltObjects`.
+22. In case of `AltUnityException` class, we changed the name to `AltException`.
+23. In case of `AltUnityObjectParams` class, we changed the name to `AltObjectParams`.
+24. In case of `AltUnityRecvallException` class, we changed the name to `AltRecvallException`.
+25. In case of `AltUnityLoadSceneNotificationResultParams` class, we changed the name to `AltLoadSceneNotificationResultParams`.
+26. In case of `AltUnityErrors` class, we changed the name to `AltErrors`.
+27. In case of `AltUnityLogNotificationResultParams` class, we changed the name to `AltLogNotificationResultParams`.
\ No newline at end of file


Test patch:
diff --git a/Bindings~/java/src/test/java/com/alttester/TestsHelper.java b/Bindings~/java/src/test/java/com/alttester/TestsHelper.java
index 43194bc70..2ddb7fb68 100644
--- a/Bindings~/java/src/test/java/com/alttester/TestsHelper.java
+++ b/Bindings~/java/src/test/java/com/alttester/TestsHelper.java
@@ -2,8 +2,9 @@
 
 public class TestsHelper {
     public static int GetAltDriverPort() {
-        String port = System.getenv("ALTDRIVER_PORT");
-        if (port != null && port == "") {
+        String port = System.getenv("PROXY_PORT");
+
+        if (port != null && port != "") {
             return Integer.parseInt(port);
         }
 
@@ -11,8 +12,9 @@ public static int GetAltDriverPort() {
     }
 
     public static String GetAltDriverHost() {
-        String host = System.getenv("ALTDRIVER_HOST");
-        if (host != null && host == "") {
+        String host = System.getenv("PROXY_HOST");
+
+        if (host != null && host != "") {
             return host;
         }
 
diff --git a/Bindings~/python/alttester/__init__.py b/Bindings~/python/alttester/__init__.py
index 8f483d199..0f7c7918c 100644
--- a/Bindings~/python/alttester/__init__.py
+++ b/Bindings~/python/alttester/__init__.py
@@ -4,5 +4,4 @@
 from alttester.playerpref import PlayerPrefKeyType
 from alttester.keycode import AltKeyCode
 from alttester.logging import AltLogLevel, AltLogger
-from alttester.portforwarding import AltPortForwarding
 from alttester.exceptions import *
diff --git a/Bindings~/python/alttester/portforwarding.py b/Bindings~/python/alttester/portforwarding.py
deleted file mode 100644
index 826b4b216..000000000
--- a/Bindings~/python/alttester/portforwarding.py
+++ /dev/null
@@ -1,58 +0,0 @@
-import subprocess
-
-from ppadb.client import Client as AdbClient
-
-
-class AltPortForwarding:
-    _client = AdbClient(host="127.0.0.1", port=5037)
-
-    @staticmethod
-    def _get_iproxy_path(iproxy_path):
-        if not iproxy_path:
-            return "iproxy"
-        return iproxy_path
-
-    @classmethod
-    def _get_device(cls, device_id=""):
-        if device_id == "":
-            devices = cls._client.devices()
-            if len(devices) == 0:
-                raise Exception("No device found")
-            return devices[0]
-        else:
-            return cls._client.device(device_id)
-
-    @staticmethod
-    def forward_ios(local_port=13000, device_port=13000, device_id="", iproxy_path=""):
-        process = None
-        iproxy_path = AltPortForwarding._get_iproxy_path(iproxy_path)
-        if device_id == "":
-            process = subprocess.Popen(
-                [iproxy_path, str(local_port), str(device_port)])
-        else:
-            process = subprocess.Popen(
-                [iproxy_path, str(local_port), str(device_port), "-u", device_id])
-        return process.pid
-
-    @staticmethod
-    def kill_iproxy(pid):
-        subprocess.Popen(['kill', str(pid)]).wait()
-
-    @staticmethod
-    def kill_all_iproxy_process():
-        subprocess.Popen(['killall', 'iproxy']).wait()
-
-    @staticmethod
-    def forward_android(local_port=13000, device_port=13000, device_id=""):
-        device = AltPortForwarding._get_device(device_id)
-
-        device.forward("tcp:" + str(local_port), "tcp:" + str(device_port))
-
-    @staticmethod
-    def remove_forward_android(local_port=13000, device_id=""):
-        device = AltPortForwarding._get_device(device_id)
-        device.killforward("tcp:" + str(local_port))
-
-    @staticmethod
-    def remove_all_forward_android():
-        AltPortForwarding._client.killforward_all()