diff --git a/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.params b/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.params
index 549fed1..333ac26 100755
--- a/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.params
+++ b/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.params
@@ -45,11 +45,13 @@
 
     <CASE10>
         <app>org.onosproject.openflow-base</app>
+        <cfg>org.onosproject.provider.of.flow.impl.OpenFlowRuleProvider</cfg>
         <adaptiveFlowenabled>false</adaptiveFlowenabled>
         <mnArgs> --topo linear,{} --switch ovsk,protocols=OpenFlow13 --controller remote,port=6653</mnArgs>
     </CASE10>
 
     <CASE11>
+        <cfg>org.onosproject.provider.nil.NullProviders</cfg>
         <nullTopo>linear</nullTopo>
         <nullStart>true</nullStart>
     </CASE11>
diff --git a/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.py b/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.py
index 9512cd5..da99bd2 100644
--- a/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.py
+++ b/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.py
@@ -88,7 +88,8 @@
         - Install ONOS cluster
         - Connect to cli
         """
-        main.testSetUp.ONOSSetUp( main.Mininet1, skipPack=main.skipPackaging )
+        main.testSetUp.ONOSSetUp( main.Mininet1, main.Cluster,
+                                  skipPack=main.skipPackaging )
 
     def CASE10( self, main ):
         """
@@ -100,7 +101,7 @@
 
         main.step( "Activate openflow-base App" )
         app = main.params[ 'CASE10' ][ 'app' ]
-        stepResult = main.ONOScli1.activateApp( app )
+        stepResult = main.Cluster.active( 0 ).CLI.activateApp( app )
         time.sleep( main.cfgSleep )
         main.log.info( stepResult )
         utilities.assert_equals( expect=main.TRUE,
@@ -111,7 +112,7 @@
         time.sleep( main.cfgSleep )
 
         main.step( "Configure AdaptiveFlowSampling " )
-        stepResult = main.ONOScli1.setCfg( component="org.onosproject.provider.of.flow.impl.OpenFlowRuleProvider",
+        stepResult = main.Cluster.active( 0 ).CLI.setCfg( component=main.params[ 'CASE10' ][ 'cfg' ],
                                            propName="adaptiveFlowSampling ", value=main.params[ 'CASE10' ][ 'adaptiveFlowenabled' ] )
         utilities.assert_equals( expect=main.TRUE,
                                  actual=stepResult,
@@ -132,7 +133,8 @@
 
         main.step( "Assign switches to controller" )
         for i in range( 1, main.numSw + 1 ):
-            main.Mininet1.assignSwController( "s" + str( i ), main.ONOSip[ 0 ] )
+            main.Mininet1.assignSwController( "s" + str( i ),
+                                              main.Cluster.active( 0 ).ipAddress )
 
         utilities.assert_equals( expect=main.TRUE,
                                  actual=stepResult,
@@ -152,18 +154,24 @@
         main.case( "Setup Null Provider for linear Topology" )
 
         main.step( "Activate Null Provider App" )
-        stepResult = main.ONOSbench.onosCli( ONOSIp=main.ONOSip[ 0 ],
+        stepResult = main.ONOSbench.onosCli( ONOSIp=main.Cluster.active( 0 ).ipAddress,
                                              cmdstr="app activate org.onosproject.null" )
         utilities.assert_equals( expect=main.TRUE,
                                  actual=stepResult,
                                  onpass="Successfully activated org.onosproject.null",
                                  onfail="Failed to activate org.onosproject.null" )
         time.sleep( main.cfgSleep )
-
+        cfgs = main.params[ 'CASE11' ][ 'cfg' ]
         main.step( "Setup Null Provider Linear Topology with " + str( main.numSw ) + " devices." )
-        r1 = main.ONOSbench.onosCfgSet( main.ONOSip[ 0 ], "org.onosproject.provider.nil.NullProviders", "deviceCount " + str( main.numSw ) )
-        r2 = main.ONOSbench.onosCfgSet( main.ONOSip[ 0 ], "org.onosproject.provider.nil.NullProviders", "topoShape " + main.params[ 'CASE11' ][ 'nullTopo' ] )
-        r3 = main.ONOSbench.onosCfgSet( main.ONOSip[ 0 ], "org.onosproject.provider.nil.NullProviders", "enabled " + main.params[ 'CASE11' ][ 'nullStart' ] )
+        r1 = main.ONOSbench.onosCfgSet( main.Cluster.active( 0 ).ipAddress,
+                                        cfgs,
+                                        "deviceCount " + str( main.numSw ) )
+        r2 = main.ONOSbench.onosCfgSet( main.Cluster.active( 0 ).ipAddress,
+                                        cfgs,
+                                        "topoShape " + main.params[ 'CASE11' ][ 'nullTopo' ] )
+        r3 = main.ONOSbench.onosCfgSet( main.Cluster.active( 0 ).ipAddress,
+                                        cfgs,
+                                        "enabled " + main.params[ 'CASE11' ][ 'nullStart' ] )
         stepResult = r1 & r2 & r3
         utilities.assert_equals( expect=main.TRUE,
                                  actual=stepResult,
@@ -206,7 +214,7 @@
                 ind = startSw
 
             main.log.info( "Creating batch: " + str( index ) )
-            flowJsonBatch = main.ONOSrest.createFlowBatch( numSw=main.numSw,
+            flowJsonBatch = main.Cluster.active( 0 ).REST.createFlowBatch( numSw=main.numSw,
                                                            swIndex=ind,
                                                            batchSize=main.batchSize,
                                                            batchIndex=index,
@@ -240,7 +248,7 @@
             while True:
                 item = q.get()
                 #print json.dumps( item )
-                status, response = main.ONOSrest.sendFlowBatch( batch=item )
+                status, response = main.Cluster.active( 0 ).REST.sendFlowBatch( batch=item )
                 if status == main.TRUE:
                     main.log.info( "Thread {} is working on posting. ".format( id ) )
                     #print json.dumps( response )
@@ -272,9 +280,9 @@
         resp = main.FALSE
         while resp != main.TRUE and ( tAllAdded - tLastPostEnd < int( main.params[ 'CASE2100' ][ 'chkFlowTO' ] ) ):
             if main.params[ 'CASE2100' ][ 'RESTchkFlow' ] == 'main.TRUE':
-                resp = main.ONOSrest.checkFlowsState()
+                resp = main.Cluster.active( 0 ).REST.checkFlowsState()
             else:
-                handle = main.CLIs[ 0 ].flows( state=" |grep PEND|wc -l", jsonFormat=False )
+                handle = main.Cluster.active( 0 ).CLI.flows( state=" |grep PEND|wc -l", jsonFormat=False )
                 main.log.info( "handle returns PENDING flows: " + handle )
                 if handle == "0":
                     resp = main.TRUE
@@ -321,7 +329,7 @@
         def removeWorker( id ):
             while True:
                 item = q.get()
-                response = main.ONOSrest.removeFlowBatch( batch=json.loads( item ) )
+                response = main.Cluster.active( 0 ).REST.removeFlowBatch( batch=json.loads( item ) )
                 main.log.info( "Thread {} is working on deleting. ".format( id ) )
                 q.task_done()
 
@@ -344,9 +352,9 @@
         resp = main.FALSE
         while resp != main.TRUE and ( tAllRemoved - tLastDeleteEnd < int( main.params[ 'CASE3100' ][ 'chkFlowTO' ] ) ):
             if main.params[ 'CASE3100' ][ 'RESTchkFlow' ] == 'main.TRUE':
-                resp = main.ONOSrest.checkFlowsState()
+                resp = main.Cluster.active( 0 ).REST.checkFlowsState()
             else:
-                handle = main.CLIs[ 0 ].flows( state=" |grep PEND|wc -l", jsonFormat=False )
+                handle = main.Cluster.active( 0 ).CLI.flows( state=" |grep PEND|wc -l", jsonFormat=False )
                 main.log.info( "handle returns PENDING flows: " + handle )
                 if handle == "0":
                     resp = main.TRUE
@@ -373,7 +381,7 @@
 
         main.case( "Check to ensure onos flows." )
 
-        resp = main.ONOSrest.checkFlowsState()
+        resp = main.Cluster.active( 0 ).REST.checkFlowsState()
         #pprint( resp )
 
     def CASE210( self, main ):
@@ -412,7 +420,7 @@
         Report errors/warnings/exceptions
         """
         main.log.info( "Error report: \n" )
-        main.ONOSbench.logReport( main.ONOSip[ 0 ],
+        main.ONOSbench.logReport( main.Cluster.active( 0 ).ipAddress,
                                   [ "INFO",
                                     "FOLLOWER",
                                     "WARN",
diff --git a/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.topo b/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.topo
index 3deb271..fdca38d 100755
--- a/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.topo
+++ b/TestON/tests/MISC/SCPFbatchFlowResp/SCPFbatchFlowResp.topo
@@ -1,52 +1,36 @@
 <TOPOLOGY>
     <COMPONENT>
 
-        <ONOSbench>
-            <host>localhost</host>
+        <ONOScell>
+            <host>localhost</host>  # ONOS "bench" machine
             <user>sdn</user>
             <password>rocks</password>
-            <type>OnosDriver</type>
+            <type>OnosClusterDriver</type>
             <connect_order>1</connect_order>
             <COMPONENTS>
-                <prompt></prompt>
-            </COMPONENTS>
-        </ONOSbench>
-
-        <ONOScli1>
-            <host>localhost</host>
-            <user>sdn</user>
-            <password>rocks</password>
-            <type>OnosCliDriver</type>
-            <connect_order>2</connect_order>
-            <COMPONENTS>
+                <cluster_name></cluster_name>  # Used as a prefix for cluster components. Defaults to 'ONOS'
+                <diff_clihost></diff_clihost>  # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
                 <karaf_username></karaf_username>
                 <karaf_password></karaf_password>
-                <prompt></prompt>
+                <web_user></web_user>
+                <web_pass></web_pass>
+                <rest_port></rest_port>
+                <prompt></prompt>  # TODO: we technically need a few of these, one per component
+                <onos_home></onos_home>  # defines where onos home is
+                <nodes> 1 </nodes>  # number of nodes in the cluster
             </COMPONENTS>
-        </ONOScli1>
+        </ONOScell>
 
         <Mininet1>
             <host>OCN</host>
             <user>sdn</user>
             <password>rocks</password>
             <type>MininetCliDriver</type>
-            <connect_order>5</connect_order>
+            <connect_order>2</connect_order>
             <COMPONENTS>
                 <prompt></prompt>
             </COMPONENTS>
         </Mininet1>
 
-        <ONOSrest>
-            <host>OC1</host>
-            <port>8181</port>
-            <user>onos</user>
-            <password>rocks</password>
-            <type>OnosRestDriver</type>
-            <connect_order>6</connect_order>
-            <COMPONENTS>
-                <prompt></prompt>
-            </COMPONENTS>
-        </ONOSrest>
-
     </COMPONENT>
-</TOPOLOGY>
+</TOPOLOGY>
\ No newline at end of file
