diff --git a/src/aura_engine/events.py b/src/aura_engine/events.py
index f3c9f9c294d6bd6b382f8b76fcceac487d09d357..a7d840df04f22733d1dcfcae42aa0a1dcdf6837d 100644
--- a/src/aura_engine/events.py
+++ b/src/aura_engine/events.py
@@ -243,11 +243,11 @@ class EngineEventDispatcher:
         Call when a fallback is activated.
 
         Fallback means the station fallback audio source is played when:
-            1. no timeslot is available.
-            2. the current timefrome of the active timeslot provides no audio source/playlists.
-
-        TODO In the future case (1) should technically not happen, as "Virtual Timeslots" ensure
-        there is always some timeslot available, even without any playlists/media sources assigned.
+            1. No timeslot is available. Due to "virtual timeslots" this case can actually never
+               happen.
+            2. The current timeframe of the active timeslot provides no audio source/playlists.
+               This is always the case with virtual timeslots, but can also happen with ordinary
+               timeslots.
 
         Args:
             timeslot (Timeslot): The active timeslot, if available. Can be `None`.
diff --git a/src/aura_engine/scheduling/api.py b/src/aura_engine/scheduling/api.py
index 3aec77a215207b430e400cb23d639e8c4a1f00ce..80e878266e0d00b1a4678edfe6036d9854f9587f 100644
--- a/src/aura_engine/scheduling/api.py
+++ b/src/aura_engine/scheduling/api.py
@@ -255,9 +255,9 @@ class ApiFetcher(threading.Thread):
 
                 item = PlaylistItem(entry.uri, entry.duration, 100, metadata)
 
-                # "Hidden Functionality" to feed engine with M3U playlists
-                # via Tank's "Stream" playlist item type
-                # See https://gitlab.servus.at/aura/engine/-/issues/53
+                # Medida sources with the scheme `m3u://...` point to M3U playlists provided by the
+                # Audio Store. We need to extract the actual playlist items and feed them like any
+                # other audio file playlist to Engine Core.
                 #
                 # TODO In the future this is to be replaced by a generic music pool feature.
                 items = self.m3u_processor.spread(item)
diff --git a/src/aura_engine/scheduling/domain.py b/src/aura_engine/scheduling/domain.py
index f3e61bd46953930b351242bed22850e04abb8803..99f352b7241d742da81d2f72bfcc18009bb29e17 100644
--- a/src/aura_engine/scheduling/domain.py
+++ b/src/aura_engine/scheduling/domain.py
@@ -465,11 +465,11 @@ class Timeslot:
 
         """
 
-        # TODO In case of virtual timeslot, do nothing. There is some timeout until the silence
-        # detector kicks in. We need to assess leads to issues. To improve the fallback program
-        # can be actively scheduled in the future.
+        # In case of virtual timeslot, do nothing. There is some timeout until the silence
+        # detector kicks in.
         #
-        # @see aura#392
+        # TODO We need to assess leads to issues. To improve the fallback program
+        # can be actively scheduled in the future. @see aura#392
         if self.is_virtual():
             return None
 
diff --git a/src/aura_engine/scheduling/scheduler.py b/src/aura_engine/scheduling/scheduler.py
index a000ed661ed965305f6bf57a5723fc94f007508c..4a46b220b560cd690b78752dce9194951716da80 100644
--- a/src/aura_engine/scheduling/scheduler.py
+++ b/src/aura_engine/scheduling/scheduler.py
@@ -378,7 +378,8 @@ class AuraScheduler(threading.Thread):
                 AuraScheduler.PlayCommandClass(self.engine, [active_item])
 
                 # Fast-forward to the scheduled position
-                # TODO The roll should happen before the channel is active
+                # TODO The roll should happen before the channel is active, avoiding the roll being
+                # audible.
                 if seconds_to_roll > 0:
                     # Without plenty of timeout (10s) the roll doesn't work
                     # TODO Check if this is still the case with Liquidsoap 2