diff --git a/src/test/setup/cord-test.py b/src/test/setup/cord-test.py
index 6cb542c..485295c 100755
--- a/src/test/setup/cord-test.py
+++ b/src/test/setup/cord-test.py
@@ -409,6 +409,7 @@
             radius_ip = None
 
     Container.IMAGE_PREFIX = args.prefix
+    Onos.MAX_INSTANCES = args.onos_instances
     cluster_mode = True if args.onos_instances > 1 else False
     async_mode = cluster_mode and args.async_mode
     existing_list = [ c['Names'][0][1:] for c in Container.dckr.containers() if c['Image'] == args.onos ]
@@ -430,7 +431,7 @@
         data_volume = '{}-data'.format(Onos.NAME) if args.shared_volume else None
         onos = Onos(image = Onos.IMAGE,
                     tag = Onos.TAG, boot_delay = 60, cluster = cluster_mode,
-                    data_volume = data_volume, async = async_mode, max_instances = args.onos_instances)
+                    data_volume = data_volume, async = async_mode)
         if onos.running:
             onos_ip = onos.ipaddr
             onos_ips.append(onos_ip)
@@ -447,7 +448,7 @@
             quagga_config = Onos.get_quagga_config(i)
             onos = Onos(name = name, image = Onos.IMAGE, tag = Onos.TAG, boot_delay = 60, cluster = cluster_mode,
                         data_volume = data_volume, async = async_mode,
-                        quagga_config = quagga_config, max_instances = args.onos_instances)
+                        quagga_config = quagga_config)
             onos_instances.append(onos)
             if onos.running:
                 onos_ips.append(onos.ipaddr)
@@ -664,6 +665,7 @@
     Onos.IMAGE = onos_cnt['image']
     Onos.PREFIX = args.prefix
     Onos.TAG = onos_cnt['tag']
+    Onos.MAX_INSTANCES = args.onos_instances
     cluster_mode = True if args.onos_instances > 1 else False
     async_mode = cluster_mode and args.async_mode
     existing_list = [ c['Names'][0][1:] for c in Container.dckr.containers() if c['Image'] == args.onos ]
@@ -681,7 +683,7 @@
     if onos_ip is None:
         data_volume = '{}-data'.format(Onos.NAME) if args.shared_volume else None
         onos = Onos(image = Onos.IMAGE, tag = Onos.TAG, boot_delay = 60, cluster = cluster_mode,
-                    data_volume = data_volume, async = async_mode, max_instances = args.onos_instances)
+                    data_volume = data_volume, async = async_mode)
         if onos.running:
             onos_ip = onos.ipaddr
             onos_ips.append(onos_ip)
@@ -698,7 +700,7 @@
             quagga_config = Onos.get_quagga_config(i)
             onos = Onos(name = name, image = Onos.IMAGE, tag = Onos.TAG, boot_delay = 60, cluster = cluster_mode,
                         data_volume = data_volume, async = async_mode,
-                        quagga_config = quagga_config, max_instances = args.onos_instances)
+                        quagga_config = quagga_config)
             onos_instances.append(onos)
             if onos.running:
                 onos_ips.append(onos.ipaddr)
diff --git a/src/test/utils/CordContainer.py b/src/test/utils/CordContainer.py
index a3f2356..80d8f75 100644
--- a/src/test/utils/CordContainer.py
+++ b/src/test/utils/CordContainer.py
@@ -331,10 +331,10 @@
                 self.kill()
 
 class Onos(Container):
-
     QUAGGA_CONFIG = [ { 'bridge' : 'quagga-br', 'ip': '10.10.0.4', 'mask' : 16 }, ]
+    MAX_INSTANCES = 3
     SYSTEM_MEMORY = (get_mem(),) * 2
-    INSTANCE_MEMORY = (get_mem(instances=3),) * 2
+    INSTANCE_MEMORY = (get_mem(instances=MAX_INSTANCES),) * 2
     JAVA_OPTS = '-Xms{} -Xmx{} -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode'.format(*SYSTEM_MEMORY)#-XX:+PrintGCDetails -XX:+PrintGCTimeStamps'
     JAVA_OPTS_CLUSTER = '-Xms{} -Xmx{} -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode'.format(*INSTANCE_MEMORY)
     env = { 'ONOS_APPS' : 'drivers,openflow,proxyarp,vrouter', 'JAVA_OPTS' : JAVA_OPTS }
@@ -410,7 +410,7 @@
 
     def __init__(self, name = NAME, image = IMAGE, prefix = PREFIX, tag = TAG,
                  boot_delay = 20, restart = False, network_cfg = None,
-                 cluster = False, data_volume = None, async = False, quagga_config = None, max_instances=1):
+                 cluster = False, data_volume = None, async = False, quagga_config = None):
         if restart is True:
             ##Find the right image to restart
             running_image = filter(lambda c: c['Names'][0] == '/{}'.format(name), self.dckr.containers())
@@ -424,15 +424,14 @@
         if quagga_config is None:
             quagga_config = Onos.QUAGGA_CONFIG
         super(Onos, self).__init__(name, image, prefix = prefix, tag = tag, quagga_config = quagga_config)
-        self.max_instances = max_instances
         self.boot_delay = boot_delay
         self.data_map = None
         if cluster is True:
             self.ports = []
-            if self.max_instances <= 3:
+            if Onos.MAX_INSTANCES <= 3:
                 java_opts = self.JAVA_OPTS_CLUSTER
             else:
-                instance_memory = (get_mem(instances=self.max_instances),) * 2
+                instance_memory = (get_mem(instances=Onos.MAX_INSTANCES),) * 2
                 java_opts = '-Xms{} -Xmx{} -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode'.format(*instance_memory)
 
             self.env['JAVA_OPTS'] = java_opts
