diff --git a/sparrow.cabal b/sparrow.cabal
--- a/sparrow.cabal
+++ b/sparrow.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: bea32df81697724f58b7207f35f014d440a6c6add4f2801cd29fc9eb3a852eea
+-- hash: 3f9c3813672238ca87ee5934111feb5998231571a89777abeb7b399b653dce3c
 
 name:           sparrow
-version:        0.0.1.4
+version:        0.0.1.5
 synopsis:       Unified streaming dependency management for web apps
 description:    Please see the README on Github at <https://git.localcooking.com/tooling/sparrow#readme>
 category:       Web
@@ -59,7 +59,7 @@
     , mtl
     , nested-routes >=9.0.0.1
     , path
-    , path-extra >=0.0.6
+    , path-extra >=0.2.0
     , pred-trie >=0.6.0.1
     , stm
     , strict
diff --git a/src/Web/Dependencies/Sparrow/Server.hs b/src/Web/Dependencies/Sparrow/Server.hs
--- a/src/Web/Dependencies/Sparrow/Server.hs
+++ b/src/Web/Dependencies/Sparrow/Server.hs
@@ -60,7 +60,7 @@
 import qualified Data.UUID as UUID
 import Data.Singleton.Class (Extractable (runSingleton))
 import Data.Proxy (Proxy (..))
-import Control.Monad (join, forever)
+import Control.Monad (join, forever, forM_)
 import Control.Monad.Trans (lift)
 import Control.Monad.State (modify')
 import Control.Monad.IO.Class (MonadIO (..))
@@ -159,13 +159,11 @@
                   )
                 addSubscriber env topic withSessionIDSessionID
 
-              mThread <- serverOnOpen serverArgs
+              threads <- serverOnOpen serverArgs
 
-              case mThread of
-                Nothing -> pure ()
-                Just thread -> liftIO $ atomically $
-                  -- register onOpen thread
-                  registerOnOpenThread env withSessionIDSessionID topic thread
+              forM_ threads $ \thread -> liftIO $ atomically $
+                -- register onOpen thread
+                registerOnOpenThread env withSessionIDSessionID topic thread
 
               (NR.action $ NR.post $ \_ -> NR.json serverInitOut) app req resp
 
diff --git a/src/Web/Dependencies/Sparrow/Types.hs b/src/Web/Dependencies/Sparrow/Types.hs
--- a/src/Web/Dependencies/Sparrow/Types.hs
+++ b/src/Web/Dependencies/Sparrow/Types.hs
@@ -36,7 +36,7 @@
 data ServerReturn m initOut deltaIn deltaOut = ServerReturn
   { serverInitOut   :: initOut
   , serverOnOpen    :: ServerArgs m deltaOut
-                    -> m (Maybe (Async ()))
+                    -> m [Async ()]
     -- ^ invoked once, and should return a 'Control.Concurrent.Async.link'ed long-lived thread
     -- to kill when the subscription dies
   , serverOnReceive :: ServerArgs m deltaOut
@@ -65,7 +65,7 @@
         { serverInitOut = initOut
         , serverOnOpen = \ServerArgs{serverDeltaReject} -> do
             serverDeltaReject
-            pure Nothing
+            pure []
         , serverOnReceive = \_ _ -> pure ()
         }
       }
