diff --git a/TestON/drivers/common/cli/.onosclidriver.py.swo b/TestON/drivers/common/cli/.onosclidriver.py.swo
new file mode 100644
index 0000000..87ea889
--- /dev/null
+++ b/TestON/drivers/common/cli/.onosclidriver.py.swo
Binary files differ
diff --git a/TestON/drivers/common/cli/emulator/mininetclidriver.py b/TestON/drivers/common/cli/emulator/mininetclidriver.py
index 6579e6d..9edd126 100644
--- a/TestON/drivers/common/cli/emulator/mininetclidriver.py
+++ b/TestON/drivers/common/cli/emulator/mininetclidriver.py
@@ -233,7 +233,7 @@
         """
            Uses the fping package for faster pinging...
            *requires fping to be installed on machine running mininet"""
-        args = utilities.parseArgs( [ "SRC", "TARGET" ], **pingParams )
+        args = utilities.parse_args( [ "SRC", "TARGET" ], **pingParams )
         command = args[ "SRC" ] + \
             " fping -i 100 -t 20 -C 1 -q " + args[ "TARGET" ]
         self.handle.sendline( command )
@@ -255,7 +255,7 @@
         """
            Ping from one mininet host to another
            Currently the only supported Params: SRC and TARGET"""
-        args = utilities.parseArgs( [ "SRC", "TARGET" ], **pingParams )
+        args = utilities.parse_args( [ "SRC", "TARGET" ], **pingParams )
         command = args[ "SRC" ] + " ping " + \
             args[ "TARGET" ] + " -c 1 -i 1 -W 8"
         try:
@@ -705,7 +705,7 @@
     def link( self, **linkargs ):
         """
            Bring link( s ) between two nodes up or down"""
-        args = utilities.parseArgs( [ "END1", "END2", "OPTION" ], **linkargs )
+        args = utilities.parse_args( [ "END1", "END2", "OPTION" ], **linkargs )
         end1 = args[ "END1" ] if args[ "END1" ] is not None else ""
         end2 = args[ "END2" ] if args[ "END2" ] is not None else ""
         option = args[ "OPTION" ] if args[ "OPTION" ] is not None else ""
@@ -733,7 +733,7 @@
         """
            yank a mininet switch interface to a host"""
         main.log.info( 'Yank the switch interface attached to a host' )
-        args = utilities.parseArgs( [ "SW", "INTF" ], **yankargs )
+        args = utilities.parse_args( [ "SW", "INTF" ], **yankargs )
         sw = args[ "SW" ] if args[ "SW" ] is not None else ""
         intf = args[ "INTF" ] if args[ "INTF" ] is not None else ""
         command = "py " + str( sw ) + '.detach("' + str(intf) + '")'
@@ -753,7 +753,7 @@
         """
            plug the yanked mininet switch interface to a switch"""
         main.log.info( 'Plug the switch interface attached to a switch' )
-        args = utilities.parseArgs( [ "SW", "INTF" ], **plugargs )
+        args = utilities.parse_args( [ "SW", "INTF" ], **plugargs )
         sw = args[ "SW" ] if args[ "SW" ] is not None else ""
         intf = args[ "INTF" ] if args[ "INTF" ] is not None else ""
         command = "py " + str( sw ) + '.attach("' + str(intf) + '")'
@@ -773,7 +773,7 @@
         """
            Run dpctl command on all switches."""
         main.log.info( 'Run dpctl command on all switches' )
-        args = utilities.parseArgs( [ "CMD", "ARGS" ], **dpctlargs )
+        args = utilities.parse_args( [ "CMD", "ARGS" ], **dpctlargs )
         cmd = args[ "CMD" ] if args[ "CMD" ] is not None else ""
         cmdargs = args[ "ARGS" ] if args[ "ARGS" ] is not None else ""
         command = "dpctl " + cmd + " " + str( cmdargs )
@@ -825,14 +825,14 @@
     def assignSwController( self, **kwargs ):
         """
            count is only needed if there is more than 1 controller"""
-        args = utilities.parseArgs( [ "COUNT" ], **kwargs )
+        args = utilities.parse_args( [ "COUNT" ], **kwargs )
         count = args[ "COUNT" ] if args != {} else 1
 
         argstring = "SW"
         for j in range( count ):
             argstring = argstring + ",IP" + \
                 str( j + 1 ) + ",PORT" + str( j + 1 )
-        args = utilities.parseArgs( argstring.split( "," ), **kwargs )
+        args = utilities.parse_args( argstring.split( "," ), **kwargs )
 
         sw = args[ "SW" ] if args[ "SW" ] is not None else ""
         ptcpA = int( args[ "PORT1" ] ) + \
@@ -843,7 +843,7 @@
             str( sw ) + " " + ptcpB + " "
         for j in range( count ):
             i = j + 1
-            args = utilities.parseArgs(
+            args = utilities.parse_args(
                 [ "IP" + str( i ), "PORT" + str( i ) ], **kwargs )
             ip = args[
                 "IP" +
diff --git a/TestON/drivers/common/cli/emulator/remotemininetdriver.py b/TestON/drivers/common/cli/emulator/remotemininetdriver.py
index 051d4ad..e2e00e1 100644
--- a/TestON/drivers/common/cli/emulator/remotemininetdriver.py
+++ b/TestON/drivers/common/cli/emulator/remotemininetdriver.py
@@ -104,7 +104,7 @@
         """
         self.handle.sendline( "" )
         self.handle.expect( "\$" )
-        args = utilities.parseArgs(
+        args = utilities.parse_args(
             [ "SRC", "TARGET", "PINGTIME" ], **pingParams )
         precmd = "sudo rm /tmp/ping." + args[ "SRC" ]
         self.execute( cmd=precmd, prompt="(.*)", timeout=10 )
@@ -124,7 +124,7 @@
         """
         self.handle.sendline( "" )
         self.handle.expect( "\$" )
-        args = utilities.parseArgs( [ "SRC" ], **pingParams )
+        args = utilities.parse_args( [ "SRC" ], **pingParams )
         self.handle.sendline( "tail /tmp/ping." + args[ "SRC" ] )
         self.handle.expect( "tail" )
         self.handle.expect( "\$" )
@@ -187,7 +187,7 @@
         Ping from one mininet host to another
         Currently the only supported Params: SRC and TARGET
         """
-        args = utilities.parseArgs( [ "SRC", "TARGET" ], **pingParams )
+        args = utilities.parse_args( [ "SRC", "TARGET" ], **pingParams )
         command = args[ "SRC" ] + " ping " + \
             args[ "TARGET" ] + " -c 1 -i 1 -W 8"
         try:
@@ -229,12 +229,12 @@
         """
         self.handle.sendline( "" )
         self.handle.expect( "\$" )
-        args = utilities.parseArgs( [ "SRC", "TARGET" ], **pingParams )
+        args = utilities.parse_args( [ "SRC", "TARGET" ], **pingParams )
         command = "mininet/util/m " + \
             args[ "SRC" ] + " ping " + args[ "TARGET" ] + " -c 4 -W 1 -i .2"
         main.log.info( command )
         response = self.execute( cmd=command, prompt="rtt", timeout=10 )
-        if utilities.assertMatches(
+        if utilities.assert_matches(
                 expect=',\s0\%\spacket\sloss',
                 actual=response,
                 onpass="No Packet loss",
