diff --git a/util/dvsim/LauncherFactory.py b/util/dvsim/LauncherFactory.py
index fdfaaeb..0e7479b 100644
--- a/util/dvsim/LauncherFactory.py
+++ b/util/dvsim/LauncherFactory.py
@@ -4,12 +4,10 @@
 
 import logging as log
 import os
-import sys
 
 from Launcher import Launcher
 from LocalLauncher import LocalLauncher
 from LsfLauncher import LsfLauncher
-from Scheduler import Scheduler
 
 try:
     from EdaCloudLauncher import EdaCloudLauncher
@@ -18,7 +16,7 @@
     EDACLOUD_LAUNCHER_EXISTS = False
 
 # The chosen launcher class.
-launcher_cls = None
+_LAUNCHER_CLS = None
 
 
 def set_launcher_type(is_local=False):
@@ -36,29 +34,29 @@
         launcher = "local"
     Launcher.variant = launcher
 
-    global launcher_cls
+    global _LAUNCHER_CLS
     if launcher == "local":
-        launcher_cls = LocalLauncher
+        _LAUNCHER_CLS = LocalLauncher
 
     elif launcher == "lsf":
-        launcher_cls = LsfLauncher
-
-        # The max_parallel setting is not relevant when dispatching with LSF.
-        Scheduler.max_parallel = sys.maxsize
+        _LAUNCHER_CLS = LsfLauncher
 
     # These custom launchers are site specific. They may not be committed to
     # the open source repo.
     elif launcher == "edacloud" and EDACLOUD_LAUNCHER_EXISTS:
-        launcher_cls = EdaCloudLauncher
-
-        # The max_parallel setting is not relevant when dispatching with
-        # EDACloud.
-        Scheduler.max_parallel = sys.maxsize
+        _LAUNCHER_CLS = EdaCloudLauncher
 
     else:
         log.error("Launcher {} set using DVSIM_LAUNCHER env var does not "
                   "exist. Using local launcher instead.".format(launcher))
-        launcher_cls = LocalLauncher
+        _LAUNCHER_CLS = LocalLauncher
+
+
+def get_launcher_cls():
+    '''Returns the chosen launcher class.'''
+
+    assert _LAUNCHER_CLS is not None
+    return _LAUNCHER_CLS
 
 
 def get_launcher(deploy):
@@ -67,6 +65,5 @@
     'deploy' is an instance of the deploy class to with the launcher is paired.
     '''
 
-    global launcher_cls
-    assert launcher_cls is not None
-    return launcher_cls(deploy)
+    assert _LAUNCHER_CLS is not None
+    return _LAUNCHER_CLS(deploy)
