diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index a1b7ba3b1bf3dabfa0f0ec176dbe3d8539879b40..65fe3181f871f91b5d06186af22d518418fd0e3b 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -6,17 +6,10 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="c58ca86a-4167-4474-accb-41439a535514" name="Default" comment="">
-      <change beforePath="" afterPath="$PROJECT_DIR$/libraries/database/trackservice.py" />
-      <change beforePath="" afterPath="$PROJECT_DIR$/modules/web/routes.py" />
-      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
-      <change beforePath="$PROJECT_DIR$/aura.py" afterPath="$PROJECT_DIR$/aura.py" />
-      <change beforePath="$PROJECT_DIR$/libraries/base/calendar.py" afterPath="$PROJECT_DIR$/libraries/base/calendar.py" />
       <change beforePath="$PROJECT_DIR$/libraries/database/broadcasts.py" afterPath="$PROJECT_DIR$/libraries/database/broadcasts.py" />
-      <change beforePath="$PROJECT_DIR$/libraries/database/database.py" afterPath="$PROJECT_DIR$/libraries/database/database.py" />
       <change beforePath="$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py" afterPath="$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py" />
-      <change beforePath="$PROJECT_DIR$/modules/communication/liquidsoap/initthread.py" afterPath="$PROJECT_DIR$/modules/communication/liquidsoap/initthread.py" />
+      <change beforePath="$PROJECT_DIR$/modules/controller/controller.py" afterPath="$PROJECT_DIR$/modules/controller/controller.py" />
       <change beforePath="$PROJECT_DIR$/modules/scheduling/scheduler.py" afterPath="$PROJECT_DIR$/modules/scheduling/scheduler.py" />
-      <change beforePath="$PROJECT_DIR$/modules/tools/padavan.py" afterPath="$PROJECT_DIR$/modules/tools/padavan.py" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="TRACKING_ENABLED" value="true" />
@@ -27,45 +20,25 @@
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="adapter.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/modules/communication/redis/adapter.py">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="221">
-              <caret line="132" column="82" lean-forward="false" selection-start-line="132" selection-start-column="82" selection-end-line="132" selection-end-column="82" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
       <file leaf-file-name="controller.py" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/modules/controller/controller.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="147">
-              <caret line="61" column="0" lean-forward="false" selection-start-line="61" selection-start-column="0" selection-end-line="61" selection-end-column="0" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="broadcasts.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/libraries/database/broadcasts.py">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="68">
-              <caret line="130" column="24" lean-forward="true" selection-start-line="130" selection-start-column="24" selection-end-line="130" selection-end-column="24" />
+            <state relative-caret-position="128">
+              <caret line="73" column="26" lean-forward="true" selection-start-line="73" selection-start-column="26" selection-end-line="73" selection-end-column="26" />
               <folding>
-                <element signature="e#43#75#0" expanded="true" />
+                <element signature="e#43#56#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="aura.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/aura.py">
+      <file leaf-file-name="broadcasts.py" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/libraries/database/broadcasts.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="306">
-              <caret line="27" column="33" lean-forward="true" selection-start-line="27" selection-start-column="33" selection-end-line="27" selection-end-column="33" />
+            <state relative-caret-position="403">
+              <caret line="257" column="114" lean-forward="true" selection-start-line="257" selection-start-column="114" selection-end-line="257" selection-end-column="114" />
               <folding>
-                <element signature="e#0#13#0" expanded="true" />
+                <element signature="e#43#75#0" expanded="true" />
               </folding>
             </state>
           </provider>
@@ -86,20 +59,28 @@
       <file leaf-file-name="scheduler.py" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/modules/scheduling/scheduler.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="488">
-              <caret line="751" column="0" lean-forward="false" selection-start-line="751" selection-start-column="0" selection-end-line="751" selection-end-column="0" />
-              <folding>
-                <element signature="e#1093#1106#0" expanded="true" />
-              </folding>
+            <state relative-caret-position="179">
+              <caret line="54" column="84" lean-forward="false" selection-start-line="54" selection-start-column="84" selection-end-line="54" selection-end-column="84" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="guru.py" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/guru.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="557">
+              <caret line="56" column="163" lean-forward="false" selection-start-line="56" selection-start-column="163" selection-end-line="56" selection-end-column="163" />
+              <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="calendar.py" pinned="false" current-in-tab="true">
+      <file leaf-file-name="calendar.py" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/libraries/base/calendar.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="6458">
-              <caret line="410" column="32" lean-forward="true" selection-start-line="410" selection-start-column="32" selection-end-line="410" selection-end-column="32" />
+            <state relative-caret-position="111">
+              <caret line="194" column="8" lean-forward="false" selection-start-line="194" selection-start-column="8" selection-end-line="199" selection-end-column="44" />
               <folding />
             </state>
           </provider>
@@ -115,12 +96,24 @@
           </provider>
         </entry>
       </file>
+      <file leaf-file-name="messenger.py" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/modules/communication/redis/messenger.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="414">
+              <caret line="272" column="75" lean-forward="true" selection-start-line="272" selection-start-column="75" selection-end-line="272" selection-end-column="75" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
       <file leaf-file-name="communicator.py" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="105">
-              <caret line="104" column="33" lean-forward="true" selection-start-line="104" selection-start-column="33" selection-end-line="104" selection-end-column="33" />
-              <folding />
+            <state relative-caret-position="230">
+              <caret line="135" column="0" lean-forward="true" selection-start-line="135" selection-start-column="0" selection-end-line="135" selection-end-column="0" />
+              <folding>
+                <element signature="e#0#9#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
@@ -128,8 +121,8 @@
       <file leaf-file-name="padavan.py" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/modules/tools/padavan.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="255">
-              <caret line="119" column="54" lean-forward="false" selection-start-line="119" selection-start-column="54" selection-end-line="119" selection-end-column="54" />
+            <state relative-caret-position="431">
+              <caret line="194" column="32" lean-forward="true" selection-start-line="194" selection-start-column="32" selection-end-line="194" selection-end-column="32" />
               <folding>
                 <element signature="e#0#17#0" expanded="true" />
               </folding>
@@ -148,14 +141,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>entrynumber</find>
-      <find>Model.</find>
-      <find>self.programme</find>
-      <find>recreate_</find>
-      <find>entryn</find>
-      <find>alchem</find>
-      <find>liqu</find>
-      <find>scheduler</find>
       <find>get_jobs</find>
       <find>__load_</find>
       <find>lookup_prearranged</find>
@@ -174,10 +159,18 @@
       <find>stop_playlist</find>
       <find>say_alive</find>
       <find>get_info</find>
-      <find>MessageT</find>
       <find>__set_url__</find>
       <find>get_data</find>
+      <find>MessageT</find>
+      <find>fetch</find>
+      <find>/1</find>
+      <find>recreate_</find>
+      <find>create_from_</find>
+      <find>track</find>
+      <find>creating</find>
       <find>stop</find>
+      <find>debug</find>
+      <find>string(</find>
     </findStrings>
     <replaceStrings>
       <replace>&quot;</replace>
@@ -228,7 +221,6 @@
         <option value="$PROJECT_DIR$/modules/liquidsoap/simplestmixer.liq" />
         <option value="$PROJECT_DIR$/README.md" />
         <option value="$PROJECT_DIR$/modules/communication/liquidsoap/client.py" />
-        <option value="$PROJECT_DIR$/modules/controller/controller.py" />
         <option value="$PROJECT_DIR$/libraries/enum/redischannels.py" />
         <option value="$PROJECT_DIR$/modules/communication/redis/messenger.py" />
         <option value="$PROJECT_DIR$/guru.py" />
@@ -238,11 +230,12 @@
         <option value="$PROJECT_DIR$/aura.py" />
         <option value="$PROJECT_DIR$/libraries/database/trackservice.py" />
         <option value="$PROJECT_DIR$/modules/communication/liquidsoap/initthread.py" />
-        <option value="$PROJECT_DIR$/libraries/database/broadcasts.py" />
-        <option value="$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py" />
         <option value="$PROJECT_DIR$/modules/tools/padavan.py" />
-        <option value="$PROJECT_DIR$/modules/scheduling/scheduler.py" />
         <option value="$PROJECT_DIR$/libraries/base/calendar.py" />
+        <option value="$PROJECT_DIR$/modules/controller/controller.py" />
+        <option value="$PROJECT_DIR$/modules/scheduling/scheduler.py" />
+        <option value="$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py" />
+        <option value="$PROJECT_DIR$/libraries/database/broadcasts.py" />
       </list>
     </option>
   </component>
@@ -452,7 +445,6 @@
   </component>
   <component name="ToolWindowManager">
     <frame x="645" y="31" width="1926" height="1052" extended-state="6" />
-    <editor active="true" />
     <layout>
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.16640337" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
@@ -460,7 +452,7 @@
       <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.43275487" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32936078" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3275488" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3275488" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
       <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
@@ -513,7 +505,7 @@
       <breakpoints>
         <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
           <url>file://$PROJECT_DIR$/modules/scheduling/scheduler.py</url>
-          <line>411</line>
+          <line>413</line>
           <option name="timeStamp" value="35" />
         </line-breakpoint>
       </breakpoints>
@@ -678,22 +670,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/communication/redis/messenger.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="255">
-          <caret line="22" column="40" lean-forward="false" selection-start-line="22" selection-start-column="40" selection-end-line="22" selection-end-column="40" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/guru.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="799">
-          <caret line="56" column="163" lean-forward="false" selection-start-line="56" selection-start-column="163" selection-end-line="56" selection-end-column="163" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/libraries/database/combadb.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
@@ -723,7 +699,7 @@
         <state relative-caret-position="119">
           <caret line="7" column="0" lean-forward="false" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
           <folding>
-            <element signature="e#43#145#0" expanded="true" />
+            <element signature="e#43#145#0" expanded="false" />
           </folding>
         </state>
       </provider>
@@ -741,7 +717,7 @@
         <state relative-caret-position="306">
           <caret line="27" column="33" lean-forward="true" selection-start-line="27" selection-start-column="33" selection-end-line="27" selection-end-column="33" />
           <folding>
-            <element signature="e#0#13#0" expanded="true" />
+            <element signature="e#0#13#0" expanded="false" />
           </folding>
         </state>
       </provider>
@@ -754,77 +730,95 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/libraries/database/database.py">
+    <entry file="file://$PROJECT_DIR$/modules/controller/controller.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="465">
-          <caret line="30" column="0" lean-forward="false" selection-start-line="30" selection-start-column="0" selection-end-line="30" selection-end-column="0" />
+        <state relative-caret-position="128">
+          <caret line="73" column="26" lean-forward="true" selection-start-line="73" selection-start-column="26" selection-end-line="73" selection-end-column="26" />
           <folding>
-            <element signature="e#0#55#0" expanded="true" />
+            <element signature="e#43#56#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/libraries/database/broadcasts.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="68">
-          <caret line="130" column="24" lean-forward="true" selection-start-line="130" selection-start-column="24" selection-end-line="130" selection-end-column="24" />
-          <folding>
-            <element signature="e#43#75#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py">
+    <entry file="file://$PROJECT_DIR$/libraries/base/schedulerconfig.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="105">
-          <caret line="104" column="33" lean-forward="true" selection-start-line="104" selection-start-column="33" selection-end-line="104" selection-end-column="33" />
+        <state relative-caret-position="-313">
+          <caret line="32" column="8" lean-forward="false" selection-start-line="32" selection-start-column="8" selection-end-line="32" selection-end-column="8" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/controller/controller.py">
+    <entry file="file://$PROJECT_DIR$/guru.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="147">
-          <caret line="61" column="0" lean-forward="false" selection-start-line="61" selection-start-column="0" selection-end-line="61" selection-end-column="0" />
+        <state relative-caret-position="557">
+          <caret line="56" column="163" lean-forward="false" selection-start-line="56" selection-start-column="163" selection-end-line="56" selection-end-column="163" />
           <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/modules/tools/padavan.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="255">
-          <caret line="119" column="54" lean-forward="false" selection-start-line="119" selection-start-column="54" selection-end-line="119" selection-end-column="54" />
+        <state relative-caret-position="431">
+          <caret line="194" column="32" lean-forward="true" selection-start-line="194" selection-start-column="32" selection-end-line="194" selection-end-column="32" />
           <folding>
             <element signature="e#0#17#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/libraries/base/schedulerconfig.py">
+    <entry file="file://$PROJECT_DIR$/modules/communication/redis/messenger.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-313">
-          <caret line="32" column="8" lean-forward="false" selection-start-line="32" selection-start-column="8" selection-end-line="32" selection-end-column="8" />
+        <state relative-caret-position="414">
+          <caret line="272" column="75" lean-forward="true" selection-start-line="272" selection-start-column="75" selection-end-line="272" selection-end-column="75" />
           <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/modules/scheduling/scheduler.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="488">
-          <caret line="751" column="0" lean-forward="false" selection-start-line="751" selection-start-column="0" selection-end-line="751" selection-end-column="0" />
-          <folding>
-            <element signature="e#1093#1106#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="179">
+          <caret line="54" column="84" lean-forward="false" selection-start-line="54" selection-start-column="84" selection-end-line="54" selection-end-column="84" />
+          <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/libraries/base/calendar.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="6458">
-          <caret line="410" column="32" lean-forward="true" selection-start-line="410" selection-start-column="32" selection-end-line="410" selection-end-column="32" />
+        <state relative-caret-position="111">
+          <caret line="194" column="8" lean-forward="false" selection-start-line="194" selection-start-column="8" selection-end-line="199" selection-end-column="44" />
           <folding />
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="230">
+          <caret line="135" column="0" lean-forward="true" selection-start-line="135" selection-start-column="0" selection-end-line="135" selection-end-column="0" />
+          <folding>
+            <element signature="e#0#9#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/libraries/database/database.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="465">
+          <caret line="30" column="0" lean-forward="false" selection-start-line="30" selection-start-column="0" selection-end-line="30" selection-end-column="0" />
+          <folding>
+            <element signature="e#0#55#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/libraries/database/broadcasts.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="403">
+          <caret line="257" column="114" lean-forward="true" selection-start-line="257" selection-start-column="114" selection-end-line="257" selection-end-column="114" />
+          <folding>
+            <element signature="e#43#75#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>
\ No newline at end of file
diff --git a/libraries/database/broadcasts.py b/libraries/database/broadcasts.py
index 6300df1a6c33ceb65a4788d3481d5521d94efe29..579c874eee93b846fc3e22115c1d21dd89656395 100644
--- a/libraries/database/broadcasts.py
+++ b/libraries/database/broadcasts.py
@@ -5,12 +5,12 @@ import datetime, os, urllib, sys
 import time
 import decimal
 
-from sqlalchemy import Boolean, Column, Date, DateTime, Float, Integer, String, Text, Time, ForeignKey
+from sqlalchemy import Boolean, Column, Date, DateTime, Float, Integer, String, Text, Time, ForeignKey, ForeignKeyConstraint
 from sqlalchemy.orm import relationship
 from libraries.database.database import db
 
 
-class Model:
+class AuraDatabaseModel:
     def store(self, commit=False):
         obj_session = db.session.object_session(self)
         if obj_session is not None:
@@ -42,12 +42,16 @@ class Model:
         manualschedule = Schedule()
         manualschedule.schedule_id = 0
 
+        fallback_trackservice_schedule = TrackServiceSchedule()
+        fallback_trackservice_schedule.ts_schedule_id = 0
+
         print("Recreating Database...")
         db.drop_all()
         print("all dropped. creating...")
         db.create_all()
-        print("inserting manual scheduling possibility")
+        print("inserting manual scheduling possibility and fallback trackservice schedule")
         db.session.add(manualschedule)
+        db.session.add(fallback_trackservice_schedule)
         print("all created. commiting...")
         db.session.commit()
         print("Database recreated!")
@@ -57,13 +61,15 @@ class Model:
 
 
 # ------------------------------------------------------------------------------------------ #
-class Schedule(db.Model, Model):
+class Schedule(db.Model, AuraDatabaseModel):
     """
     One specific Schedule for a show on a timeslot
     """
     __tablename__ = 'schedule'
+
+    # primary and foreign keys
     schedule_id = Column(Integer, primary_key=True, autoincrement=False)
-    show_id = Column(Integer)
+    show_id = Column(Integer) # well, not needed..
 
     schedule_start = Column(DateTime) # can be null due to manual entries
     schedule_end = Column(DateTime) # can be null due to manual entries
@@ -108,15 +114,17 @@ class Schedule(db.Model, Model):
 
 
 # ------------------------------------------------------------------------------------------ #
-class ScheduleEntry(db.Model, Model):
+class ScheduleEntry(db.Model, AuraDatabaseModel):
     """
     One schedule can have multiple entries
     """
     __tablename__ = 'schedule_entry'
 
+    # primary and foreign keys
     playlist_id = Column(Integer, primary_key=True, nullable=False, autoincrement=False)
     entry_num = Column(Integer, primary_key=True, nullable=False, autoincrement=False)
     schedule_id = Column(Integer, ForeignKey("schedule.schedule_id"))
+
     entry_start = Column(DateTime, nullable=False)
     entry_end = Column(DateTime)
     source = Column(String(256))
@@ -132,6 +140,7 @@ class ScheduleEntry(db.Model, Model):
     entry_end_unix = 0
     programme_index = -1
 
+    ForeignKeyConstraint(['schedule_id'], ['schedule.schedule_id'])
     schedule = relationship("Schedule", foreign_keys=[schedule_id])
 
     # ------------------------------------------------------------------------------------------ #
@@ -208,67 +217,45 @@ class ScheduleEntry(db.Model, Model):
         return "ScheduleEntry starts @ " + ScheduleEntry.entry_start + " and ends @ " + ScheduleEntry.entry_end + " and plays " + ScheduleEntry.source
 
 
-#    def __init__(self, playlist_id, entry_num, schedule_id, entry_start, entry_end, source, artist, track, albumname, genre, tracknum, cdnum, year):
-#        self.playlist_id = playlist_id
-#        self.entry_num = entry_num
-#        self.schedule_id = schedule_id
-#        self.entry_start = entry_start
-#        self.entry_end = entry_end
-#        self.source = source
-#        self.artist = artist
-#        self.track = track
-#        self.albumname = albumname
-#        self.genre = genre
-#        self.tracknum = tracknum
-#        self.cdnum = cdnum
-#        self.year = year
-
-    @staticmethod
-    def create_from_json(playlist_id, entry_num, schedule_id, entry_start, entry_end, source, artist, track, albumname, genre, tracknum, cdnum, year):
-        e = ScheduleEntry()
-        e.playlist_id = playlist_id
-        e.entry_num = entry_num
-        e.schedule_id = schedule_id
-        e.entry_start = entry_start
-        e.entry_end = entry_end
-        e.source = source
-        e.artist = artist
-        e.track = track
-        e.albumname = albumname
-        e.genre = genre
-        e.tracknum = tracknum
-        e.cdnum = cdnum
-        e.year = year
-        return e
-
-#    @property
-#    def serialize(self):
-#        """Return object data in easily serializeable format"""
-#        return {
-#            'schedule_id': self.schedule_id,
-#            'entry_start': self.dump_datetime(self.entry_start),
-#            'entry_end': self.dump_datetime(self.entry_end),
-#            'source': self.source
-#        }
-
-
 # ------------------------------------------------------------------------------------------ #
-class TrackServiceSchedule(db.Model):
+class TrackServiceSchedule(db.Model, AuraDatabaseModel):
     """
     Trackservice is tracking every schedule.
     """
     __tablename__ = 'trackservice_schedule'
+
+    # primary and foreign keys
     ts_schedule_id = Column(Integer, primary_key=True, autoincrement=True)
-    schedule_id = Column(Integer, ForeignKey('schedule.schedule_id'))
+    schedule_id = Column(Integer, ForeignKey("schedule.schedule_id"))
+
+    # ------------------------------------------------------------------------------------------ #
+    @staticmethod
+    def select_one(schedule_id):
+        # damn BAND-AID
+        db.session.commit()
+
+        return db.session.query(ScheduleEntry).filter(TrackServiceSchedule.schedule_id == schedule_id).first()
 
 
 # ------------------------------------------------------------------------------------------ #
-class TrackServiceScheduleEntry(db.Model):
+class TrackServiceScheduleEntry(db.Model, AuraDatabaseModel):
     """
     And a schedule can have multiple entries
     """
     __tablename__ = 'trackservice_entry'
+
+    # primary and foreign keys. the foreign keys here can be null, because of fallback stuff
     ts_entry_id = Column(Integer, primary_key=True, autoincrement=True)
-    ts_schedule_id = Column(Integer, ForeignKey('trackservice_schedule.ts_schedule_id'))
+    ts_schedule_id = Column(Integer, ForeignKey("trackservice_schedule.ts_schedule_id"), nullable=True)
+    playlist_id = Column(Integer, nullable=True)
+    entry_num = Column(Integer, nullable=True)
+
+    fallback = Column(Boolean, default=False)
+    fallback_start = Column(DateTime, nullable=True, default=None)
+    source = Column(String(256), nullable=True, default=None)
+
+    # foreign key definitions
+    ForeignKeyConstraint(['playlist_id', 'entry_num'], ['schedule_entry.playlist_id', 'schedule_entry.entry_num'])
+
 
-#Model.recreate_db(True)
+#AuraDatabaseModel.recreate_db(True)
diff --git a/modules/communication/liquidsoap/communicator.py b/modules/communication/liquidsoap/communicator.py
index 0020c11f4ef14d5ffc3d12f459d3e316d8bd0101..cc7810cf0c4ad8ee4337d185dbc597d73d5f04a2 100644
--- a/modules/communication/liquidsoap/communicator.py
+++ b/modules/communication/liquidsoap/communicator.py
@@ -12,6 +12,7 @@ from modules.communication.liquidsoap.recorderclient import LiquidSoapRecorderCl
 from modules.communication.liquidsoap.initthread import LiquidSoapInitThread
 from libraries.enum.consolecolor import TerminalColors
 from libraries.exceptions.auraexceptions import LQConnectionError
+from libraries.database.broadcasts import TrackServiceSchedule, TrackServiceScheduleEntry
 
 
 class LiquidSoapCommunicator:
@@ -109,7 +110,7 @@ class LiquidSoapCommunicator:
     # ------------------------------------------------------------------------------------------ #
     def activate(self, entry, input_type):
         if self.scheduler.get_active_source() == input_type:
-            self.scheduler.insert_track_service_entry(entry)
+            self.insert_track_service_entry(entry)
             print(TerminalColors.OK_PINK.value + "LiquidSoapCommunicator " + input_type + " already active! Time: " + str(datetime.datetime.now()) + TerminalColors.ENDC.value)
         else:
             print(TerminalColors.OK_PINK.value + "LiquidSoapCommunicator is activating " + input_type + "! Time: " + str(datetime.datetime.now()) + TerminalColors.ENDC.value)
@@ -120,7 +121,24 @@ class LiquidSoapCommunicator:
                 self.channel_volume(o, 0)
             self.channel_volume(input_type, entry.volume)
             self.disable_transaction(True)
-            self.scheduler.insert_track_service_entry(entry)
+            self.insert_track_service_entry(entry)
+
+    # ------------------------------------------------------------------------------------------ #
+    def insert_track_service_entry(self, schedule_entry):
+        ts_schedule = TrackServiceSchedule.select_one(schedule_entry.schedule.schedule_id)
+
+        if not ts_schedule:
+            if self.debug:
+                print("no TrackServiceSchedule with id " + str(schedule_entry.schedule.schedule_id) + " in database => creating a new one")
+            ts_schedule = TrackServiceSchedule()
+            ts_schedule.schedule_id = schedule_entry.schedule.schedule_id
+            ts_schedule.store(True)
+
+        ts_schedule_entry = TrackServiceScheduleEntry()
+        ts_schedule_entry.ts_schedule_id = schedule_entry.schedule.schedule_id
+        ts_schedule_entry.playlist_id = schedule_entry.playlist_id
+        ts_schedule_entry.entry_num = schedule_entry.entry_num
+        ts_schedule_entry.store(True)
 
     # ------------------------------------------------------------------------------------------ #
     def all_inputs_but(self, input_type):
diff --git a/modules/controller/controller.py b/modules/controller/controller.py
index 1485e1d496fb6961b197e4f521a50f5d24526cdb..df5af31bce2ad88442925cd3aa716c23ce7908d5 100644
--- a/modules/controller/controller.py
+++ b/modules/controller/controller.py
@@ -340,8 +340,6 @@ class AuraController:
         if not self.is_intern:
             self.message(simplejson.dumps(self.job_result))
 
-
-
     # ------------------------------------------------------------------------------------------ #
     def __check_result__(self, result):
         """
diff --git a/modules/scheduling/scheduler.py b/modules/scheduling/scheduler.py
index 6ae18213a3ea16e64d2130489ab08aecaf187451..dcefd70bea23cae26e792495f20b0becc90d455c 100644
--- a/modules/scheduling/scheduler.py
+++ b/modules/scheduling/scheduler.py
@@ -52,7 +52,7 @@ import threading
 from libraries.base.schedulerconfig import AuraSchedulerConfig
 from modules.communication.redis.messenger import RedisMessenger
 from libraries.base.calendar import AuraCalendarService
-from libraries.database.broadcasts import Schedule, ScheduleEntry, Model, TrackServiceSchedule, TrackServiceScheduleEntry
+from libraries.database.broadcasts import Schedule, ScheduleEntry, AuraDatabaseModel
 from libraries.exceptions.auraexceptions import NoProgrammeLoadedException
 
 
@@ -142,7 +142,7 @@ class AuraScheduler():
             ScheduleEntry.select_all()
         except sqlalchemy.exc.ProgrammingError as e:
             if e.__dict__["code"] == "f405":
-                Model.recreate_db()
+                AuraDatabaseModel.recreate_db()
             else:
                 raise
 
@@ -238,7 +238,7 @@ class AuraScheduler():
                 # when do we have to start?
                 diff = entry.entry_start_unix - now_unix
 
-#                diff = diff/100 # testing purpose
+                diff = diff/100 # testing purpose
 
                 # create the activation threads and run them after <diff> seconds
                 if entry.source.startswith("linein"):
@@ -334,6 +334,8 @@ class AuraScheduler():
 
         return message_queue
 
+    # ------------------------------------------------------------------------------------------ #
+
     # ------------------------------------------------------------------------------------------ #
     def swap_playlist_entries(self, indexes):
         from_entry = None