diff --git a/run-solleroot.py b/run-solleroot.py
index f2caeffb53f868590df3837d7571403f25dfabe3..0d8658fbe249c008bcda58f73a02de36a69f5dde 100644
--- a/run-solleroot.py
+++ b/run-solleroot.py
@@ -30,8 +30,8 @@ class BluetoothDeviceManager(gatt.DeviceManager):
         self.robot.connect()
 
 class RootDevice(gatt.Device):
-    message = "no message"
     edge_following_enabled = False
+    patterning_lines_enabled = False
     
     def print_message(self):
         print(self.message)
@@ -82,12 +82,13 @@ class RootDevice(gatt.Device):
 
         # Do the thing!
         if new_data[0] == DATA_TYPE_COLOR_SENSOR:
-            did_adjust = adjust_for_perimeter_if_needed(new_data)
+            did_adjust = self.adjust_for_perimeter_if_needed(new_data)
             if did_adjust:
                 return
         if type == "Color Sensor" and self.edge_following_enabled:
             self.follow_edge(new_data)
-            
+        if type == "Color Sensor" and self.patterning_lines_enabled:
+            self.pattern_dashes(new_data)
             
     def adjust_for_perimeter_if_needed(self, data):
         adjusted = False
@@ -96,34 +97,60 @@ class RootDevice(gatt.Device):
         # adjusted = True
         
         return adjusted
+    
+    def pattern_dashes(self, message):
+        #pen down, pen up, so many times...
+        count = 0
+        while count < 3: # number of lines robot will draw
+            print(count)
+            t0 = time.time() #FIX TIME
+            t1 = time.time()
+            delta_t = t1 - t0
+            print(delta_t)
+            
+            self.pen_down()
+            self.drive_forward()
+            while delta_t < 5000: # ms pen down
+                self.drive_forward()
+                t1 = time.time()
+                delta_t = t1 - t0
+            t0 = time.time()
+            print(count)
+            self.pen_up()
+            while delta_t < 3000: # ms pen up
+                t1 = time.time()
+                delta_t = t1 - t0
+            count += 1
+            self.pen_up()
+        self.patterning_lines_enabled = False
         
 
     def follow_edge(self, message):
         if message[3] != 0 or message[4] != 0:
             #drive_root("l")
-            manager.robot.turn_rate(-45)
+            self.turn_rate(-45)
             #manager.robot.drive_left_slow()
             #drive_root("z")
             turn_state = 1  
         elif message[5] != 0 or message[6] != 0:
             #drive_root("l")
-            manager.robot.turn_rate(-30)
+            self.turn_rate(-30)
             #manager.robot.drive_left_slow_slow()
             #drive_root("x")
             turn_state = 1                
             #drive_root("f")
             #print("test1")
         elif message[7] != 0 or message[8] != 0:
-            drive_root("f")
-            
+            #drive_root("f") # calling the member function versus out into global space
+            self.drive_forward()
         elif message[9] != 0 or message[10] != 0:
-            manager.robot.turn_rate(30)
+            self.turn_rate(30)
             
         elif message[12] != 0 or message[11] != 0:
-            manager.robot.turn_rate(45)
+            self.turn_rate(45)
         elif message[14] != 0 or message[13] != 0:
             #drive_root("r")
-            manager.robot.turn_rate(60)
+            self.turn_rate(60)
             #manager.robot.drive_right_slow_slow()
             #drive_root("c")
             turn_state = 2                
@@ -131,7 +158,7 @@ class RootDevice(gatt.Device):
             #print("test2")
         elif message[16] != 0 or message[15] != 0:
             #drive_root("r")
-            manager.robot.turn_rate(60)
+            self.turn_rate(60)
             #manager.robot.drive_right_slow()
             #drive_root("v")
             turn_state = 2
@@ -160,12 +187,6 @@ class RootDevice(gatt.Device):
 
     def pen_down(self):
         self.tx_characteristic.write_value([0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
-
-#   def pattern_fill_straight(self):
-       # pen_down(self)
-       # Timer(30, drive_forward(self))
-        
-    
         
         
     def turn_rate(self, rate):
@@ -221,10 +242,16 @@ def drive_root(command):
         manager.robot.steer(30,40)
     if command == "clear":
         print ("clear all")
+        manager.robot.stop()
         manager.robot.edge_following_enabled = False
+        manager.robot.patterning_lines_enabled = False
     if command == "edge":
         print ("edge")
         manager.robot.edge_following_enabled = True
+    if command == "pattern lines":
+        print ("pattern lines")
+        manager.robot.patterning_lines_enabled = True
+
         
 # start here if run as program / not imported as module
 if __name__ == "__main__":