diff --git a/TestON/bin/demo-cli b/TestON/bin/demo-cli
new file mode 100755
index 0000000..9cbec9d
--- /dev/null
+++ b/TestON/bin/demo-cli
@@ -0,0 +1,39 @@
+#!/bin/bash
+#-------------------------------------------------------------------------------
+# Test utility to spawn an iTerm window for testing against current cell.
+#-------------------------------------------------------------------------------
+
+osascript -e "
+tell application \"iTerm\"
+
+  set nodeIP to \"$OCN\"
+
+  set theTerm to (make new terminal)
+
+  tell theTerm
+    launch session \"DemoLeft\"
+    tell the current session
+      set name to \"TestON Log\"
+      write text \"export TERM=vt100\"
+      write text \"ssh admin@\" & nodeIP
+      set name to \"TestON Log\"
+      write text \"cd ~/OnosSystemTest/TestON/bin\"
+      write text \"tail -F /home/admin/ONS16/Demo.log\"
+
+      tell application \"System Events\" to keystroke \"d\" using command down
+      set name to \"TestON Testcase Code \"
+      write text \"export TERM=vt100\"
+      write text \"ssh admin@\" & nodeIP
+      write text \"cd ~/OnosSystemTest/TestON/bin\"
+      write text \"tail -F /home/admin/ONS16/DemoCode.txt\"
+      set foreground color to \"white\"
+      set background color to \"black\"
+    end tell
+
+  end tell
+end tell
+"
+    #set number of columns to 292
+    #set number of rows to 24
+    # set newSession to (split horizontally with profile \"DemoRight\" )
+    # set background color to \"gray\"
diff --git a/TestON/bin/demo-summary b/TestON/bin/demo-summary
index 2f90a55..4ba8c05 100755
--- a/TestON/bin/demo-summary
+++ b/TestON/bin/demo-summary
@@ -13,5 +13,5 @@
     printf "\t-f     : Tails the summary file and updates as the file is written to.\n\n"
     exit 1
 fi
-ls -t ~/OnosSystemTest/TestON/logs/*/*${file}.txt | head -1 | xargs tail -n+1 -f
+tail -F /home/admin/ONS16/DemoCode.txt
 exit 0
diff --git a/TestON/core/logger.py b/TestON/core/logger.py
index 437583e..7734ca1 100644
--- a/TestON/core/logger.py
+++ b/TestON/core/logger.py
@@ -115,14 +115,19 @@
 
         os.mkdir(main.logdir)
 
-        main.LogFileName = main.logdir + "/" + main.TEST + "_" +str(currentTime) + ".log"
+        main.LogFileName = "/home/admin/ONS16/Demo.log"
         main.ReportFileName = main.logdir + "/" + main.TEST + "_" + str(currentTime) + ".rpt"
         main.WikiFileName = main.logdir + "/" + main.TEST + "Wiki.txt"
-        main.DemoCodeFileName = main.logdir + "/" + main.TEST + "-DemoCode.txt"
+        #main.DemoCodeFileName = main.logdir + "/" + main.TEST + "-DemoCode.txt"
+        main.DemoCodeFileName = "/home/admin/ONS16/DemoCode.txt"
         main.DemoSummaryFileName = "/usr/local/apr/htdocs/ONS2016/testLog"
         main.SummaryFileName = main.logdir + "/" + main.TEST + "Summary.txt"
         main.JenkinsCSV = main.logdir + "/" + main.TEST + ".csv"
         main.TOTAL_TC_SUCCESS = 0
+        demoFile = open(main.DemoCodeFileName,"w+")
+        demoFile.close()
+        logfile = open(main.LogFileName,"w+")
+        logfile.close()
 
         #### Add log-level - Report
         logging.addLevelName(9, "REPORT")
@@ -190,7 +195,7 @@
                 elif "main.step" in line:
                     parsedMsg += colors['cyan'] + line + colors['end']
                 elif "utilities.assert_" in line and  "(" in line:
-                    parsedMsg += colors['purple'] + line
+                    parsedMsg += colors['green'] + line
                     if ')' not in line:
                         wrapped = True
                     else:
diff --git a/TestON/core/teston.py b/TestON/core/teston.py
index ae4ae3a..cb683dd 100644
--- a/TestON/core/teston.py
+++ b/TestON/core/teston.py
@@ -748,6 +748,12 @@
                     # threads as well
                     print str( thread.getName() ) +\
                           ' could not be terminated'
+        demoFile = open(main.DemoCodeFileName,"w+")
+        demoFile.write( "\n" * 60 )
+        demoFile.close()
+        logfile = open(main.LogFileName,"w+")
+        logfile.write( "\n" * 60 )
+        logfile.close()
         sys.exit()
 
     def stop( self, email=False ):
diff --git a/TestON/tests/DEMO_SDNIP/DEMO_SDNIP.params b/TestON/tests/DEMO_SDNIP/DEMO_SDNIP.params
index 00545a7..0007680 100644
--- a/TestON/tests/DEMO_SDNIP/DEMO_SDNIP.params
+++ b/TestON/tests/DEMO_SDNIP/DEMO_SDNIP.params
@@ -36,7 +36,7 @@
         <TopoDiscovery>10</TopoDiscovery>
         <PingTestWithRoutes>20</PingTestWithRoutes>
         <PingTestWithoutRoutes>100</PingTestWithoutRoutes>
-        <RouteDelivery>10</RouteDelivery>
+        <RouteDelivery>15</RouteDelivery>
         <PathAvailable>10</PathAvailable>
         <Readability>5</Readability>
     </timers>
diff --git a/TestON/tests/DEMO_SDNIP/DEMO_SDNIP.py b/TestON/tests/DEMO_SDNIP/DEMO_SDNIP.py
index c46ba6c..526d33c 100644
--- a/TestON/tests/DEMO_SDNIP/DEMO_SDNIP.py
+++ b/TestON/tests/DEMO_SDNIP/DEMO_SDNIP.py
@@ -61,6 +61,7 @@
         from operator import eq
 
         main.case( "Setting up ONOS environment" )
+        main.log.demoSummary( "DEMO: TestStation: Setting up ONOS environment" )
 
         cellName = main.params[ 'ENV' ][ 'cellName' ]
         global ONOS1Ip
@@ -106,12 +107,15 @@
 
         main.step( "Checking if ONOS CLI is ready to start" )
         main.CLIs = []
+        main.log.demoSummary( "DEMO: ONOS1: Connecting to ONOS1" )
         cliResult1 = main.ONOScli1.startOnosCli( ONOS1Ip,
                 commandlineTimeout=100, onosStartTimeout=600 )
         main.CLIs.append( main.ONOScli1 )
+        main.log.demoSummary( "DEMO: ONOS2: Connecting to ONOS2" )
         cliResult2 = main.ONOScli2.startOnosCli( ONOS2Ip,
                 commandlineTimeout=100, onosStartTimeout=600 )
         main.CLIs.append( main.ONOScli2 )
+        main.log.demoSummary( "DEMO: ONOS3: Connecting to ONOS3" )
         cliResult3 = main.ONOScli3.startOnosCli( ONOS3Ip,
                 commandlineTimeout=100, onosStartTimeout=600 )
         main.CLIs.append( main.ONOScli3 )
@@ -147,7 +151,7 @@
         main.log.info( "Waiting for link discovery......" )
         time.sleep( int( main.params['timers']['TopoDiscovery'] ) )
 
-        main.log.info( "Get links in the network" )
+        main.step( "Get links in the network" )
         summaryResult = main.ONOScli1.summary()
         linkNum = json.loads( summaryResult )[ "links" ]
         main.log.info( "Expected 100 links, actual number is: {}".format( linkNum ) )
@@ -240,6 +244,7 @@
         bgpIntentsExpectedNum = int( main.params[ 'config' ][ 'peerNum' ] ) * 6 * 2
         if bgpIntentsActualNum != bgpIntentsExpectedNum:
             time.sleep( int( main.params['timers']['RouteDelivery'] ) )
+            getIntentsResult = main.ONOScli1.intents( jsonFormat=True )
             bgpIntentsActualNum = \
                 main.QuaggaCliSpeaker1.extractActualBgpIntentNum( getIntentsResult )
         main.log.info( "bgpIntentsExpected num is:" )
@@ -253,20 +258,20 @@
             onfail="PointToPointIntent Intent Num is wrong!" )
         time.sleep( int( main.params['timers']['Readability'] ) )
 
-
     def CASE3( self, main ):
         '''
         routes and intents check to all BGP peers
         '''
         import time
         main.case( "Check routes and M2S intents to all BGP peers" )
-        main.log.demoSummary( "DEMO:ONOS1: Check BGP routes and Multi-point intents" )
 
+        main.step( "Check routes installed" )
         allRoutesExpected = []
         allRoutesExpected.append( "4.0.0.0/24" + "/" + "10.0.4.1" )
         allRoutesExpected.append( "5.0.0.0/24" + "/" + "10.0.5.1" )
         allRoutesExpected.append( "6.0.0.0/24" + "/" + "10.0.6.1" )
 
+        main.log.demoSummary( "DEMO:Quagga: Check BGP routes" )
         getRoutesResult = main.ONOScli1.routes( jsonFormat=True )
         allRoutesActual = \
             main.QuaggaCliSpeaker1.extractActualRoutesMaster( getRoutesResult )
@@ -278,7 +283,6 @@
                 main.QuaggaCliSpeaker1.extractActualRoutesMaster( getRoutesResult )
             allRoutesStrActual = str( allRoutesActual ).replace( 'u', "" )
 
-        main.step( "Check routes installed" )
         main.log.info( "Routes expected:" )
         main.log.info( allRoutesStrExpected )
         main.log.info( "Routes get from ONOS CLI:" )
@@ -290,12 +294,14 @@
         time.sleep( int( main.params['timers']['Readability'] ) )
 
         main.step( "Check M2S intents installed" )
+        main.log.demoSummary( "DEMO:ONOS1: Check Multi-point intents" )
         getIntentsResult = main.ONOScli1.intents( jsonFormat=True )
         routeIntentsActualNum = \
             main.QuaggaCliSpeaker1.extractActualRouteIntentNum( getIntentsResult )
         routeIntentsExpectedNum = 3
         if routeIntentsActualNum != routeIntentsExpectedNum:
             time.sleep( int( main.params['timers']['RouteDelivery'] ) )
+            getIntentsResult = main.ONOScli1.intents( jsonFormat=True )
             routeIntentsActualNum = \
                 main.QuaggaCliSpeaker1.extractActualRouteIntentNum( getIntentsResult )
 
@@ -310,6 +316,7 @@
             onfail="MultiPointToSinglePoint Intent Num is wrong!" )
         time.sleep( int( main.params['timers']['Readability'] ) )
 
+        main.log.demoSummary( "DEMO:ONOS1: Check flows" )
         main.step( "Check whether all flow status are ADDED" )
         flowCheck = utilities.retry( main.ONOScli1.checkFlowsState,
                                      main.FALSE,
