diff --git a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy
index f04583e..ce726f9 100644
--- a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy
@@ -165,8 +165,11 @@
         clustername)
     assert instance3.yarnApplicationState >= YarnApplicationState.FINISHED
 
+    // destroy it
+    client.actionDestroy(clustername)
+    
     //create another AM, this time with a port range
-    setSliderClientClassName(TestSliderClient.name)
+    sliderClientClassName = ExtendedSliderClient.name
     try {
       launcher = createStandaloneAM(clustername, true, true)
       client = launcher.service
@@ -180,12 +183,12 @@
       assert 0 == clusterActionFreeze(client, clustername)
 
     } finally {
-      setSliderClientClassName(SliderClient.name)
+      sliderClientClassName = DEFAULT_SLIDER_CLIENT
     }
   }
 
 
-  static class TestSliderClient extends SliderClient {
+  static class ExtendedSliderClient extends SliderClient {
     @Override
     protected void persistInstanceDefinition(boolean overwrite,
                                              Path appconfdir,
diff --git a/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAMManagementWS.groovy b/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAMManagementWS.groovy
index 7434c4e..887ca89 100644
--- a/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAMManagementWS.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAMManagementWS.groovy
@@ -124,7 +124,7 @@
     assert agt_ver_path.exists()
     assert agt_conf_path.exists()
     try {
-        setSliderClientClassName(TestSliderClient.name)
+        sliderClientClassName = TestSliderClient.name
         ServiceLauncher<SliderClient> launcher = buildAgentCluster(clustername,
             roles,
             [
@@ -174,7 +174,7 @@
         //TODO: assert failure as actual agent is not started. This test only starts the AM.
         assert RegistrationStatus.FAILED == response.getResponseStatus();
     } finally {
-        setSliderClientClassName(SliderClient.name)
+      sliderClientClassName = DEFAULT_SLIDER_CLIENT
     }
     
   }
diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/TestDelayInContainerLaunch.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/TestDelayInContainerLaunch.groovy
index 973d3af..f32b843 100644
--- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/TestDelayInContainerLaunch.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/TestDelayInContainerLaunch.groovy
@@ -100,7 +100,7 @@
     long delay = 30
 
     TestDelayingSliderClient.delay = delay
-    setSliderClientClassName(TestDelayingSliderClient.name)
+    sliderClientClassName = TestDelayingSliderClient
     try {
       ServiceLauncher<SliderClient> launcher = buildAgentCluster(clustername,
         roles,
@@ -134,7 +134,7 @@
       assert duration/1000 >= delay
 
     } finally {
-      setSliderClientClassName(SliderClient.name)
+      sliderClientClassName = DEFAULT_SLIDER_CLIENT
     }
 
 
diff --git a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestBase.groovy b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestBase.groovy
index afb07d8..e0798a4 100644
--- a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestBase.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestBase.groovy
@@ -27,7 +27,6 @@
 import org.junit.Rule
 import org.junit.rules.TestName
 
-//import java.nio.file.Files
 
 /**
  * Base class for unit tests as well as ones starting mini clusters
@@ -54,10 +53,8 @@
 
   @Before
   public void setup() {
+    sliderClientClassName = DEFAULT_SLIDER_CLIENT
     FileUtil.fullyDelete(new File(SliderXMLConfKeysForTesting.TEST_SECURITY_DIR))
   }
 
-  
-  
-
 }
diff --git a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
index 3b1d022..e67145e 100644
--- a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
@@ -64,7 +64,8 @@
 @Slf4j
 @CompileStatic
 class SliderTestUtils extends Assert {
-  static String sliderClientClassName = SliderClient.class.name
+  public static final String DEFAULT_SLIDER_CLIENT = SliderClient.class.name
+  static String sliderClientClassName = DEFAULT_SLIDER_CLIENT
 
   public static void describe(String s) {
     log.info("");
