diff --git a/rpi/ProotState.py b/rpi/ProotState.py
index 3e525fd..a3ee884 100644
--- a/rpi/ProotState.py
+++ b/rpi/ProotState.py
@@ -1,5 +1,3 @@
-import time
-import random
 from PIL import Image
 
 class ProotState:
@@ -82,28 +80,13 @@ class ProotState:
             matrix.SwapOnVSync(self.frame_canvas_prootScreen_3)
 
 
-def update_screen(blinkFrameCanvases, matrix):
+    def update_screen(blinkFrameCanvases, matrix):
 
-    proot_state = ProotState()
-
-    if proot_state.get_blinks_frames_ready():
-        # TODO move blinking animation writing logic to the ProotState class
-        matrix.SwapOnVSync(blinkFrameCanvases[proot_state.next_blink_frame_number()])
-    else:
-        proot_state.set_ProotScreen(matrix)
-        
-
-def interrupt_timer(blinkFrameCanvases, matrix):
-    while True:
-        update_screen(blinkFrameCanvases, matrix)
-        time.sleep(0.01)
-
-
-def random_blinks():
-    while True:
-        time.sleep(random.randint(3, 5))
-        
         proot_state = ProotState()
 
         if proot_state.get_blinks_frames_ready():
-            proot_state.blink()
\ No newline at end of file
+            # TODO move blinking animation writing logic to the ProotState class
+            matrix.SwapOnVSync(blinkFrameCanvases[proot_state.next_blink_frame_number()])
+        else:
+            proot_state.set_ProotScreen(matrix)
+        
diff --git a/rpi/antRender.py b/rpi/antRender.py
index 54b97f6..e92699e 100644
--- a/rpi/antRender.py
+++ b/rpi/antRender.py
@@ -2,6 +2,8 @@ from rgbmatrix import RGBMatrix, RGBMatrixOptions
 import Point2D
 import ProotState
 
+import time
+import random
 from PIL import Image
 import paho.mqtt.client as mqtt
 import time
@@ -28,8 +30,27 @@ print("configuring matrix took: " + str(endT - startT) + " ms")
 blinkFrameCanvases = []
 
 
+def interrupt_timer():
+    global blinkFrameCanvases, matrix
+    proot_state = ProotState()
+    
+    while True:
+        proot_state.update_screen(blinkFrameCanvases, matrix)
+        time.sleep(0.01)
+
+
+def random_blinks():
+    while True:
+        time.sleep(random.randint(3, 5))
+        
+        proot_state = ProotState()
+
+        if proot_state.get_blinks_frames_ready():
+            proot_state.blink()
+            
+
 # Create and start screen update interrupts
-screen_update_thread = threading.Thread(target=ProotState.interrupt_timer(blinkFrameCanvases, matrix))
+screen_update_thread = threading.Thread(target=ProotState.interrupt_timer)
 screen_update_thread.start()
 
 # Create and start random blinks interrupts
@@ -100,6 +121,7 @@ endT = curr_time = round(time.time()*1000)
 print("populating matrices for each blink frame took: " + str(endT - startT) + " ms")
 
 proot_state = ProotState.ProotState()
+proot_state.set_matrix(matrix)
 proot_state.set_blinks_frames_ready(True)
 proot_state.blink()