diff --git a/README.md b/README.md
index b29c092..5986719 100644
--- a/README.md
+++ b/README.md
@@ -26,13 +26,47 @@
 ------------
 1. ONOS
 
-2. Mininet
+2. Mininet - Some driver functions rely on a modified version of Mininet. These functions are noted in the mininet driver file. To checkout this branch from your Mininet folder:
 
-3. Install python packages configObj and pexpect. they can be installed as :
+    $ git remote add jhall11 https://github.com/jhall11/mininet.git
 
-     $ sudo pip install configObj
+    $ git fetch jhall11
 
-     $ sudo easy_install pexpect 
+    $ git checkout -b dynamic_topo remotes/jhall11/dynamic_topo
+
+    $ git pull
+
+    Note that you may need to run 'sudo make develop' if your mnexec.c file changed when switching branches.
+
+3. Install python packages configObj and pexpect (Note: pexpect 3.3 has a known bug. We recommend using version 3.2 for now). They can be installed as :
+
+    $ sudo pip install configObj
+
+    $ sudo pip install pexpect==3.2
+
+    $ sudo pip install numpy
+
+4. STS  - This can be installed by:
+
+    $ git clone https://github.com/jhall11/sts.git
+
+5. Linc-OE - Some testcases use this to emulate optical devices
+
+    Requirements:
+
+    1. Erlang R15B, R16B, R17 - if possible please use R17
+
+    2. libpcap-dev package if eth interfaces will be used
+
+    Building and Running:
+
+    $ git clone https://github.com/shivarammysore/LINC-Switch.git linc-oe
+
+    $ cd linc-oe
+
+    $ git checkout tags/oe-0.3
+
+    $ make rel
 
 Configuration
 ------------
@@ -58,7 +92,7 @@
 
 3. Run the test 
 
-    teston> run MininetTest 
+    teston> run PingallExample
 
 The Tests
 -----------------------------------------------
@@ -68,7 +102,7 @@
 
 1. .ospk file
 
-    - This is written in Openspeak, an word based language developed by Paxterra.
+    - This is written in Openspeak, a word based language developed by Paxterra.
 
     - It defines the cases and sequence of events for the test 
 
diff --git a/TestON/bin/unpep8 b/TestON/bin/unpep8
index 090865a..ff911e8 100755
--- a/TestON/bin/unpep8
+++ b/TestON/bin/unpep8
@@ -179,7 +179,7 @@
 def convertFromPep8( program ):
    oldProgram = program
    # Program text transforms
-   # program = reinstateCapWords( program )  # Turning off for now
+   program = reinstateCapWords( program )
    program = fixKeywords( program )
    program = insertExtraSpaces( program )
    # Undo string damage
diff --git a/TestON/drivers/common/cli/emulator/mininetclidriver.py b/TestON/drivers/common/cli/emulator/mininetclidriver.py
index c125fca..10e46a7 100644
--- a/TestON/drivers/common/cli/emulator/mininetclidriver.py
+++ b/TestON/drivers/common/cli/emulator/mininetclidriver.py
@@ -2,7 +2,7 @@
 """
 Created on 26-Oct-2012
 
-author:: Anil Kumar ( anilkumar.s@paxterrasolutions.com )
+author: Anil Kumar ( anilkumar.s@paxterrasolutions.com )
 
 
 TestON is free software: you can redistribute it and/or modify
@@ -19,7 +19,22 @@
 along with TestON.  If not, see <http://www.gnu.org/licenses/>.
 
 
-MininetCliDriver is the basic driver which will handle the Mininet functions"""
+MininetCliDriver is the basic driver which will handle the Mininet functions
+
+Some functions rely on STS module. To install this,
+    git clone https://github.com/jhall11/sts.git
+
+Some functions rely on a modified version of Mininet. These functions
+should all be noted in the comments. To get this MN version run these commands
+from within your Mininet folder:
+    git remote add jhall11 https://github.com/jhall11/mininet.git
+    git fetch jhall11
+    git checkout -b dynamic_topo remotes/jhall11/dynamic_topo
+    git pull
+
+
+    Note that you may need to run 'sudo make develop' if your mnexec.c file
+changed when switching branches."""
 import traceback
 import pexpect
 import re
@@ -892,7 +907,8 @@
     def add_switch( self, sw, **kwargs ):
         """
         adds a switch to the mininet topology
-        NOTE: this uses a custom mn function
+        NOTE: This uses a custom mn function. MN repo should be on
+            dynamic_topo branch
         NOTE: cannot currently specify what type of switch
         required params:
             switchname = name of the new switch as a string
@@ -926,11 +942,12 @@
 
     def del_switch( self, sw ):
         """
-           delete a switch from the mininet topology
-           NOTE: this uses a custom mn function
-           required params:
+        delete a switch from the mininet topology
+        NOTE: This uses a custom mn function. MN repo should be on
+            dynamic_topo branch
+        required params:
             switchname = name of the switch as a string
-           returns: main.FASLE on an error, else main.TRUE"""
+        returns: main.FASLE on an error, else main.TRUE"""
         command = "delswitch " + str( sw )
         try:
             response = self.execute(
@@ -957,7 +974,8 @@
     def add_link( self, node1, node2 ):
         """
            add a link to the mininet topology
-           NOTE: this uses a custom mn function
+           NOTE: This uses a custom mn function. MN repo should be on
+                dynamic_topo branch
            NOTE: cannot currently specify what type of link
            required params:
            node1 = the string node name of the first endpoint of the link
@@ -989,7 +1007,8 @@
     def del_link( self, node1, node2 ):
         """
            delete a link from the mininet topology
-           NOTE: this uses a custom mn function
+           NOTE: This uses a custom mn function. MN repo should be on
+                dynamic_topo branch
            required params:
            node1 = the string node name of the first endpoint of the link
            node2 = the string node name of the second endpoint of the link
@@ -1020,7 +1039,8 @@
     def add_host( self, hostname, **kwargs ):
         """
         Add a host to the mininet topology
-        NOTE: this uses a custom mn function
+        NOTE: This uses a custom mn function. MN repo should be on
+            dynamic_topo branch
         NOTE: cannot currently specify what type of host
         required params:
             hostname = the string hostname
@@ -1058,6 +1078,8 @@
     def del_host( self, hostname ):
         """
            delete a host from the mininet topology
+           NOTE: This uses a custom mn function. MN repo should be on
+               dynamic_topo branch
            NOTE: this uses a custom mn function
            required params:
            hostname = the string hostname
diff --git a/TestON/scripts/Cass_clr.sh b/TestON/scripts/Cass_clr.sh
deleted file mode 100755
index a74ea5d..0000000
--- a/TestON/scripts/Cass_clr.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-#1 = testname
-#2 = buildnumber
-
-basename="autoONOS"
-machine1="admin@10.128.100.1"
-machine2="admin@10.128.100.4"
-machine3="admin@10.128.100.5"
-machine4="admin@10.128.100.6"
-logmachine="onos@10.254.1.111"
-
-ssh $machine1 "~/ONOS/start-cassandra.sh stop"
-ssh $machine2 "~/ONOS/start-cassandra.sh stop"
-ssh $machine3 "~/ONOS/start-cassandra.sh stop"
-ssh $machine4 "~/ONOS/start-cassandra.sh stop"
-ssh $machine1 "~/clrCass.sh"
-ssh $machine2 "~/clrCass.sh"
-ssh $machine3 "~/clrCass.sh"
-ssh $machine4 "~/clrCass.sh"
-
-
-
-
-
diff --git a/TestON/scripts/get_reroute_times.py b/TestON/scripts/get_reroute_times.py
deleted file mode 100755
index 4e1f6b8..0000000
--- a/TestON/scripts/get_reroute_times.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#! /usr/bin/env python
-import sys
-import time
-import os
-import re
-import json
-
-
-CONFIG_FILE="/home/admin/ping.h10"
-
- 
-  
-def get_times(pingfile):
-  icmp_reqs = [] 
-  times = []
-  f = open(pingfile)
-  for line in f.readlines():
-    if re.search('64\sbytes', line): 
-      icmp_reqs.append( (line.split()[4]).split('=')[1] )
-  f.close()
-  #print icmp_reqs
-  lastnum = int(icmp_reqs[0]) - 1 
-  for num in icmp_reqs: 
-    if int(num) != (lastnum + 1):
-      times.append(int(num) - lastnum) 
-    lastnum = int(num)
-
-  return times
-
-if __name__ == "__main__":
-  total = 0 
-  count = 0 
-  flow = 1
-  for i in os.popen("ls /tmp/ping.*"):
-    print "Flow %d  " % flow
-    for time in get_times(i.strip("\n")):
-      total = total + time
-      count = count + 1
-      print "  %d" % time     
-    flow = flow + 1
-  print "Average: %d" % (total / count ) 
- 
