diff --git a/acts/framework/acts/test_utils/power/PowerWiFiBaseTest.py b/acts/framework/acts/test_utils/power/PowerWiFiBaseTest.py
index 167e73f..635c8b5 100644
--- a/acts/framework/acts/test_utils/power/PowerWiFiBaseTest.py
+++ b/acts/framework/acts/test_utils/power/PowerWiFiBaseTest.py
@@ -56,10 +56,13 @@
             self.pkt_sender.stop_sending(ignore_status=True)
         if hasattr(self, 'brconfigs'):
             self.access_point.bridge.teardown(self.brconfigs)
+            delattr(self, 'brconfigs')
         if hasattr(self, 'brconfigs_main'):
             self.access_point_main.bridge.teardown(self.brconfigs_main)
+            delattr(self, 'brconfigs_main')
         if hasattr(self, 'brconfigs_aux'):
             self.access_point_aux.bridge.teardown(self.brconfigs_aux)
+            delattr(self, 'brconfigs_aux')
         if hasattr(self, 'access_points'):
             for ap in self.access_points:
                 ap.close()
diff --git a/acts/tests/google/wifi/WifiIOTTest.py b/acts/tests/google/wifi/WifiIOTTest.py
index 36f7302..22e67d9 100755
--- a/acts/tests/google/wifi/WifiIOTTest.py
+++ b/acts/tests/google/wifi/WifiIOTTest.py
@@ -142,12 +142,12 @@
         self.connect_to_wifi_network_and_run_iperf(self.ssid_map[ssid_key])
 
     @test_tracker_info(uuid="6870e35b-f7a7-45bf-b021-fea049ae53de")
-    def iot_connection_to_AirportExpress_2G(self):
+    def test_iot_connection_to_AirportExpress_2G(self):
         ssid_key = self.current_test_name.replace(self.iot_test_prefix, "")
         self.connect_to_wifi_network_and_run_iperf(self.ssid_map[ssid_key])
 
     @test_tracker_info(uuid="95f4b405-79d7-4873-a152-4384acc88f41")
-    def iot_connection_to_AirportExpress_5G(self):
+    def test_iot_connection_to_AirportExpress_5G(self):
         ssid_key = self.current_test_name.replace(self.iot_test_prefix, "")
         self.connect_to_wifi_network_and_run_iperf(self.ssid_map[ssid_key])
 
@@ -317,17 +317,17 @@
         self.connect_to_wifi_network_and_run_iperf(self.ssid_map[ssid_key])
 
     @test_tracker_info(uuid="7c12f943-d9e2-45b1-aa84-fcb43efbbb04")
-    def iot_connection_to_TP_LINK_5504_2G(self):
+    def test_iot_connection_to_TP_LINK_5504_2G(self):
         ssid_key = self.current_test_name.replace(self.iot_test_prefix, "")
         self.connect_to_wifi_network_and_run_iperf(self.ssid_map[ssid_key])
 
     @test_tracker_info(uuid="52be6b76-5e43-4289-83e1-4cd0d995d39b")
-    def iot_connection_to_TP_LINK_5504_5G_1(self):
+    def test_iot_connection_to_TP_LINK_5504_5G_1(self):
         ssid_key = self.current_test_name.replace(self.iot_test_prefix, "")
         self.connect_to_wifi_network_and_run_iperf(self.ssid_map[ssid_key])
 
     @test_tracker_info(uuid="0b43d1da-e207-443d-b16c-c4ee3e924036")
-    def iot_connection_to_TP_LINK_5504_5G_2(self):
+    def test_iot_connection_to_TP_LINK_5504_5G_2(self):
         ssid_key = self.current_test_name.replace(self.iot_test_prefix, "")
         self.connect_to_wifi_network_and_run_iperf(self.ssid_map[ssid_key])
 
@@ -352,12 +352,12 @@
         self.connect_to_wifi_network_and_run_iperf(self.ssid_map[ssid_key])
 
     @test_tracker_info(uuid="e639f6db-ad8e-4b4f-91f3-10acdf93142a")
-    def iot_connection_to_AmpedAthena_2G(self):
+    def test_iot_connection_to_AmpedAthena_2G(self):
         ssid_key = self.current_test_name.replace(self.iot_test_prefix, "")
         self.connect_to_wifi_network_and_run_iperf(self.ssid_map[ssid_key])
 
     @test_tracker_info(uuid="3dd90d80-952f-4f17-a48a-fe42e7d6e1ff")
-    def iot_connection_to_AmpedAthena_5G(self):
+    def test_iot_connection_to_AmpedAthena_5G(self):
         ssid_key = self.current_test_name.replace(self.iot_test_prefix, "")
         self.connect_to_wifi_network_and_run_iperf(self.ssid_map[ssid_key])
 
diff --git a/acts/tests/google/wifi/WifiStressTest.py b/acts/tests/google/wifi/WifiStressTest.py
index 0eab3ad..0f17c19 100755
--- a/acts/tests/google/wifi/WifiStressTest.py
+++ b/acts/tests/google/wifi/WifiStressTest.py
@@ -267,9 +267,7 @@
                 WifiEnums.WIFI_CONFIG_APBAND_5G)
             wutils.start_wifi_connection_scan_and_ensure_network_found(
                 self.dut_client, ap_ssid)
-            # Toggle WiFi ON, which inturn calls softAP teardown.
-            wutils.wifi_toggle_state(self.dut, True)
-            time.sleep(TIMEOUT)
+            wutils.stop_wifi_tethering(self.dut)
             asserts.assert_false(self.dut.droid.wifiIsApEnabled(),
                                  "SoftAp failed to shutdown!")
             time.sleep(TIMEOUT)
