diff --git a/TestON/drivers/common/cli/onosdriver.py b/TestON/drivers/common/cli/onosdriver.py
index 7d7e26d..e6d699c 100644
--- a/TestON/drivers/common/cli/onosdriver.py
+++ b/TestON/drivers/common/cli/onosdriver.py
@@ -23,12 +23,16 @@
 import re
 import traceback
 import os.path
+import pydoc
 sys.path.append("../")
 from drivers.common.clidriver import CLI
 
 class OnosDriver(CLI):
 
     def __init__(self):
+        '''
+        Initialize client 
+        '''
         super(CLI, self).__init__()
 
     def connect(self,**connectargs):
@@ -543,6 +547,15 @@
         Required:
             * ONOS_ip: specify the ip of the cell machine
             * cmdstr: specify the command string to send
+        
+        This function is intended to expose the entire karaf 
+        CLI commands for ONOS. Try to use this function first
+        before attempting to write a ONOS CLI specific driver
+        function. 
+        You can see a list of available 'cmdstr' arguments 
+        by starting onos, and typing in 'onos' to enter the
+        onos> CLI. Then, type 'help' to see the list of
+        available commands. 
         '''
         try:
             if not ONOS_ip:
diff --git a/TestON/tests/ONOSNextTest/ONOSNextTest.py b/TestON/tests/ONOSNextTest/ONOSNextTest.py
index fadeb82..e4b7a48 100755
--- a/TestON/tests/ONOSNextTest/ONOSNextTest.py
+++ b/TestON/tests/ONOSNextTest/ONOSNextTest.py
@@ -43,6 +43,7 @@
         package_result = main.ONOSbench.onos_package()
 
         main.step("Creating cell file")
+        #params: (bench ip, cell name, mininet ip, *onos ips)
         cell_file_result = main.ONOSbench.create_cell_file(
                 "10.128.20.10", "temp_cell_2", "10.128.10.90",
                 "10.128.10.11", "10.128.10.12", "10.128.10.13")
@@ -107,6 +108,11 @@
         cmd_result2 = main.ONOSbench.onos_cli(ONOS1_ip, cmdstr2)
         main.log.info("onos command returned: "+cmd_result2)
 
+        main.step("Sending command 'onos -w <onos-ip> bundle:list'")
+        cmdstr3 = "bundle:list"
+        cmd_result3 = main.ONOSbench.onos_cli(ONOS1_ip, cmdstr3)
+        main.log.info("onos command returned: "+cmd_result3)
+
     def CASE4(self, main):
         import re
         import time
