diff --git a/hswaw/signage/core/thread-node.lua b/hswaw/signage/core/thread-node.lua
new file mode 100644
index 0000000..e8498dd
--- /dev/null
+++ b/hswaw/signage/core/thread-node.lua
@@ -0,0 +1,40 @@
+local ThreadNode = Node:extend('ThreadNode', {
+  threadFile = nil,
+  threadChannel = nil,
+  updateInterval = 5,
+  lastUpdate = 0,
+  state = nil,
+})
+
+function ThreadNode:update(dt)
+  if not self.state then self:checkUpdate() end
+end
+
+function ThreadNode:checkUpdate()
+  if self.threadFile and self.threadChannel then
+    if self.lastUpdate < love.timer.getTime() - self.updateInterval or
+        (not self.state and self.lastUpdate < love.timer.getTime() - 5) then
+      self.lastUpdate = love.timer.getTime()
+      print(self.threadChannel, "Updating...")
+
+      local updateThread = love.thread.newThread(self.threadFile)
+      updateThread:start()
+    end
+
+    local v = love.thread.getChannel(self.threadChannel):pop()
+    if v then
+      self:onUpdate(v)
+    end
+  end
+end
+
+function ThreadNode:afterExit()
+  print('exit')
+  self:checkUpdate()
+end
+
+function ThreadNode:onUpdate(v)
+  self.state = v
+end
+
+return ThreadNode
