diff --git a/.idea/markdown-navigator.xml b/.idea/markdown-navigator.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dbe0e4618b151d3e109f0569a3937a16b2f84c54
--- /dev/null
+++ b/.idea/markdown-navigator.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="MarkdownProjectSettings">
+    <PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true">
+      <PanelProvider>
+        <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" />
+      </PanelProvider>
+    </PreviewSettings>
+    <ParserSettings gitHubSyntaxChange="false">
+      <PegdownExtensions>
+        <option name="ABBREVIATIONS" value="false" />
+        <option name="ANCHORLINKS" value="true" />
+        <option name="ASIDE" value="false" />
+        <option name="ATXHEADERSPACE" value="true" />
+        <option name="AUTOLINKS" value="true" />
+        <option name="DEFINITIONS" value="false" />
+        <option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" />
+        <option name="FENCED_CODE_BLOCKS" value="true" />
+        <option name="FOOTNOTES" value="false" />
+        <option name="HARDWRAPS" value="false" />
+        <option name="HTML_DEEP_PARSER" value="false" />
+        <option name="INSERTED" value="false" />
+        <option name="QUOTES" value="false" />
+        <option name="RELAXEDHRULES" value="true" />
+        <option name="SMARTS" value="false" />
+        <option name="STRIKETHROUGH" value="true" />
+        <option name="SUBSCRIPT" value="false" />
+        <option name="SUPERSCRIPT" value="false" />
+        <option name="SUPPRESS_HTML_BLOCKS" value="false" />
+        <option name="SUPPRESS_INLINE_HTML" value="false" />
+        <option name="TABLES" value="true" />
+        <option name="TASKLISTITEMS" value="true" />
+        <option name="TOC" value="false" />
+        <option name="WIKILINKS" value="true" />
+      </PegdownExtensions>
+      <ParserOptions>
+        <option name="COMMONMARK_LISTS" value="true" />
+        <option name="DUMMY" value="false" />
+        <option name="EMOJI_SHORTCUTS" value="true" />
+        <option name="FLEXMARK_FRONT_MATTER" value="false" />
+        <option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" />
+        <option name="GFM_TABLE_RENDERING" value="true" />
+        <option name="GITBOOK_URL_ENCODING" value="false" />
+        <option name="GITHUB_EMOJI_URL" value="false" />
+        <option name="GITHUB_LISTS" value="false" />
+        <option name="GITHUB_WIKI_LINKS" value="true" />
+        <option name="JEKYLL_FRONT_MATTER" value="false" />
+        <option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />
+      </ParserOptions>
+    </ParserSettings>
+    <HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false">
+      <GeneratorProvider>
+        <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" />
+      </GeneratorProvider>
+      <headerTop />
+      <headerBottom />
+      <bodyTop />
+      <bodyBottom />
+    </HtmlSettings>
+    <CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssTextEnabled="false" isDynamicPageWidth="true">
+      <StylesheetProvider>
+        <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" />
+      </StylesheetProvider>
+      <ScriptProviders />
+      <cssText />
+    </CssSettings>
+    <HtmlExportSettings updateOnSave="false" parentDir="$ProjectFileDir$" targetDir="$ProjectFileDir$" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetExt="" useTargetExt="false" noCssNoScripts="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />
+    <LinkMapSettings>
+      <textMaps />
+    </LinkMapSettings>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/markdown-navigator/profiles_settings.xml b/.idea/markdown-navigator/profiles_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..57927c5a72b6696671ef9629d3734dda9d5f96b0
--- /dev/null
+++ b/.idea/markdown-navigator/profiles_settings.xml
@@ -0,0 +1,3 @@
+<component name="MarkdownNavigator.ProfileManager">
+  <settings default="" pdf-export="" />
+</component>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index b8fbae4eb2b90f275ea6675c688829912a6991c5..004377410eb3671ca629438a070e31c4be622361 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,20 +1,29 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="BookmarkManager">
-    <bookmark url="file://$PROJECT_DIR$/guru.py" line="134" mnemonic="8" />
-    <bookmark url="file://$PROJECT_DIR$/modules/scheduling/scheduler.py" line="241" mnemonic="1" />
+    <bookmark url="file://$PROJECT_DIR$/guru.py" line="135" mnemonic="8" />
+    <bookmark url="file://$PROJECT_DIR$/modules/scheduling/scheduler.py" line="259" mnemonic="1" />
   </component>
   <component name="ChangeListManager">
     <list default="true" id="c58ca86a-4167-4474-accb-41439a535514" name="Default" comment="">
-      <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$/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/liquidsoap/simplestmixer.liq" afterPath="$PROJECT_DIR$/modules/liquidsoap/simplestmixer.liq" />
-      <change beforePath="$PROJECT_DIR$/modules/liquidsoap/simplestmixer.log" afterPath="$PROJECT_DIR$/modules/liquidsoap/simplestmixer.log" />
-      <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" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/modules/liquidsoap/dynamicsources.log" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/modules/liquidsoap/problem.log" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/modules/liquidsoap/simpleplayer.log" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/modules/liquidsoap/test.log" afterPath="" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/aura.py" afterPath="$PROJECT_DIR$/aura.py" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/guru.py" afterPath="$PROJECT_DIR$/guru.py" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/libraries/base/calendar.py" afterPath="$PROJECT_DIR$/libraries/base/calendar.py" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/libraries/database/broadcasts.py" afterPath="$PROJECT_DIR$/libraries/database/broadcasts.py" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/libraries/enum/redischannels.py" afterPath="$PROJECT_DIR$/libraries/enum/redischannels.py" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/communication/liquidsoap/client.py" afterPath="$PROJECT_DIR$/modules/communication/liquidsoap/client.py" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py" afterPath="$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/communication/redis/adapter.py" afterPath="$PROJECT_DIR$/modules/communication/redis/adapter.py" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/controller/controller.py" afterPath="$PROJECT_DIR$/modules/controller/controller.py" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/liquidsoap/simplestmixer.log" afterPath="$PROJECT_DIR$/modules/liquidsoap/simplestmixer.log" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/scheduling/scheduler.py" afterPath="$PROJECT_DIR$/modules/scheduling/scheduler.py" />
+      <change type="MODIFICATION" 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" />
@@ -25,112 +34,106 @@
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="guru.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/guru.py">
+      <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="1785">
-              <caret line="114" column="16" lean-forward="false" selection-start-line="114" selection-start-column="16" selection-end-line="114" selection-end-column="16" />
-              <folding />
+            <state relative-caret-position="212">
+              <caret line="84" column="51" lean-forward="true" selection-start-line="84" selection-start-column="51" selection-end-line="84" selection-end-column="51" />
+              <folding>
+                <element signature="e#43#56#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="simplestmixer.liq" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/modules/liquidsoap/simplestmixer.liq">
+      <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="119">
-              <caret line="7" column="20" lean-forward="false" selection-start-line="7" selection-start-column="20" selection-end-line="7" selection-end-column="20" />
+            <state relative-caret-position="108">
+              <caret line="179" column="22" lean-forward="true" selection-start-line="179" selection-start-column="22" selection-end-line="179" selection-end-column="22" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="padavan.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/modules/tools/padavan.py">
+      <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="182">
-              <caret line="148" column="53" lean-forward="false" selection-start-line="148" selection-start-column="53" selection-end-line="148" selection-end-column="53" />
+            <state relative-caret-position="235">
+              <caret line="15" column="9" lean-forward="false" selection-start-line="15" selection-start-column="9" selection-end-line="15" selection-end-column="9" />
               <folding>
-                <element signature="e#0#17#0" expanded="true" />
+                <element signature="e#47#79#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="controller.py" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/modules/controller/controller.py">
+      <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="261">
-              <caret line="102" column="33" lean-forward="false" selection-start-line="102" selection-start-column="33" selection-end-line="102" selection-end-column="33" />
-              <folding>
-                <element signature="e#43#56#0" expanded="true" />
-              </folding>
+            <state relative-caret-position="306">
+              <caret line="143" column="28" lean-forward="true" selection-start-line="143" selection-start-column="28" selection-end-line="143" selection-end-column="28" />
+              <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="scheduler.py" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/modules/scheduling/scheduler.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="159">
-              <caret line="24" column="34" lean-forward="false" selection-start-line="24" selection-start-column="34" selection-end-line="24" selection-end-column="34" />
-              <folding />
+            <state relative-caret-position="17">
+              <caret line="343" column="32" lean-forward="false" selection-start-line="343" selection-start-column="32" selection-end-line="343" selection-end-column="32" />
+              <folding>
+                <element signature="e#1046#1059#0" expanded="true" />
+              </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">
+      <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="387">
-              <caret line="1002" column="12" lean-forward="false" selection-start-line="1002" selection-start-column="12" selection-end-line="1002" selection-end-column="12" />
+            <state relative-caret-position="144">
+              <caret line="54" column="110" lean-forward="false" selection-start-line="54" selection-start-column="89" selection-end-line="54" selection-end-column="110" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="playerclient.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/playerclient.py">
+      <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="343">
-              <caret line="294" column="40" lean-forward="false" selection-start-line="294" selection-start-column="40" selection-end-line="294" selection-end-column="40" />
-              <folding />
+            <state relative-caret-position="482">
+              <caret line="138" column="41" lean-forward="false" selection-start-line="138" selection-start-column="41" selection-end-line="138" selection-end-column="41" />
+              <folding>
+                <element signature="e#0#17#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="initthread.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/initthread.py">
+      <file leaf-file-name="redischannels.py" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/libraries/enum/redischannels.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="578">
-              <caret line="38" column="17" lean-forward="false" selection-start-line="38" selection-start-column="17" selection-end-line="38" selection-end-column="17" />
+            <state relative-caret-position="170">
+              <caret line="10" column="42" lean-forward="false" selection-start-line="10" selection-start-column="42" selection-end-line="10" selection-end-column="42" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="scheduler.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/modules/scheduling/scheduler.py">
+      <file leaf-file-name="__init__.py" pinned="false" current-in-tab="false">
+        <entry file="file:///usr/local/lib/python3.5/dist-packages/sqlalchemy/__init__.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="343">
-              <caret line="241" column="70" lean-forward="false" selection-start-line="241" selection-start-column="70" selection-end-line="241" selection-end-column="70" />
+            <state relative-caret-position="-2091">
+              <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
               <folding>
-                <element signature="e#1046#1059#0" expanded="true" />
+                <element signature="e#244#892#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="message.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/modules/liquidsoap/helpers/message.py">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="648">
-              <caret line="54" column="40" lean-forward="false" selection-start-line="54" selection-start-column="40" selection-end-line="54" selection-end-column="40" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
     </leaf>
   </component>
   <component name="FileTemplateManagerImpl">
@@ -142,19 +145,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>time</find>
-      <find>found entry</find>
-      <find>print(ty</find>
-      <find>messageTimer</find>
-      <find>self.programme</find>
-      <find>append</find>
-      <find>fatal</find>
-      <find>annotate:</find>
-      <find>messaget</find>
-      <find>controller</find>
-      <find>get_active</find>
-      <find>get_active_source</find>
-      <find>activate_fs</find>
       <find>active</find>
       <find>activate_line</find>
       <find>is already act</find>
@@ -163,7 +153,6 @@
       <find>transaction</find>
       <find>diff/</find>
       <find>enable</find>
-      <find>/</find>
       <find>the cop</find>
       <find>timeout</find>
       <find>upcoming s</find>
@@ -172,6 +161,20 @@
       <find>switch_mixer_number</find>
       <find>switch_mixer_</find>
       <find>&quot;select&quot;</find>
+      <find>pyev</find>
+      <find>relative</find>
+      <find>mysql</find>
+      <find>Config is</find>
+      <find>/var/audio</find>
+      <find>/</find>
+      <find>schedule id</find>
+      <find>hulla</find>
+      <find>NoP</find>
+      <find>work</find>
+      <find>print</find>
+      <find>move</find>
+      <find>move_</find>
+      <find>run</find>
     </findStrings>
     <replaceStrings>
       <replace>&quot;</replace>
@@ -194,7 +197,6 @@
         <option value="$PROJECT_DIR$/errormessages/controller_error.js" />
         <option value="$PROJECT_DIR$/configuration/scheduler.xml" />
         <option value="$PROJECT_DIR$/libraries/exceptions/auraexceptions" />
-        <option value="$PROJECT_DIR$/libraries/database/database.py" />
         <option value="$PROJECT_DIR$/modules/communication/liquidsoap/InitThread.py" />
         <option value="$PROJECT_DIR$/modules/communication/liquidsoap/LiquidSoapPlayerClient.py" />
         <option value="$PROJECT_DIR$/modules/liquidsoap/serversettings.liq" />
@@ -204,10 +206,8 @@
         <option value="$PROJECT_DIR$/modules/liquidsoap/settings.liq" />
         <option value="$PROJECT_DIR$/modules/liquidsoap/serverfunctions.liq" />
         <option value="$PROJECT_DIR$/modules/communication/zmq/zmqadapter.py" />
-        <option value="$PROJECT_DIR$/libraries/base/calendar.py" />
         <option value="$PROJECT_DIR$/modules/liquidsoap/simpleplayer.liq" />
         <option value="$PROJECT_DIR$/modules/communication/liquidsoap/LiquidSoapInitThread.py" />
-        <option value="$PROJECT_DIR$/libraries/database/broadcasts.py" />
         <option value="$PROJECT_DIR$/configuration/aura.ini" />
         <option value="$PROJECT_DIR$/libraries/reporting/statestore.py" />
         <option value="$PROJECT_DIR$/libraries/exceptions/auraexceptions.py" />
@@ -220,23 +220,26 @@
         <option value="$PROJECT_DIR$/modules/communication/redis/redisadapter.py" />
         <option value="$PROJECT_DIR$/libraries/client/auraclient.py" />
         <option value="$PROJECT_DIR$/modules/liquidsoap/problem.liq" />
-        <option value="$PROJECT_DIR$/README.md" />
-        <option value="$PROJECT_DIR$/modules/communication/liquidsoap/client.py" />
         <option value="$PROJECT_DIR$/libraries/enum/consolecolor.py" />
         <option value="$PROJECT_DIR$/modules/communication/redis/messenger.py" />
         <option value="$PROJECT_DIR$/libraries/database/combadb.py" />
-        <option value="$PROJECT_DIR$/libraries/enum/redischannels.py" />
         <option value="$PROJECT_DIR$/libraries/database/statestore.py" />
-        <option value="$PROJECT_DIR$/modules/communication/redis/adapter.py" />
         <option value="$PROJECT_DIR$/modules/liquidsoap/fallback.liq" />
-        <option value="$PROJECT_DIR$/guru.py" />
-        <option value="$PROJECT_DIR$/aura.py" />
         <option value="$PROJECT_DIR$/modules/liquidsoap/simplestmixer.liq" />
-        <option value="$PROJECT_DIR$/modules/scheduling/scheduler.py" />
         <option value="$PROJECT_DIR$/modules/communication/liquidsoap/initthread.py" />
-        <option value="$PROJECT_DIR$/modules/tools/padavan.py" />
-        <option value="$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py" />
+        <option value="$PROJECT_DIR$/aura.py" />
         <option value="$PROJECT_DIR$/modules/controller/controller.py" />
+        <option value="$PROJECT_DIR$/libraries/database/database.py" />
+        <option value="$PROJECT_DIR$/libraries/base/calendar.py" />
+        <option value="$PROJECT_DIR$/README.md" />
+        <option value="$PROJECT_DIR$/modules/communication/liquidsoap/client.py" />
+        <option value="$PROJECT_DIR$/libraries/enum/redischannels.py" />
+        <option value="$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py" />
+        <option value="$PROJECT_DIR$/guru.py" />
+        <option value="$PROJECT_DIR$/modules/communication/redis/adapter.py" />
+        <option value="$PROJECT_DIR$/modules/tools/padavan.py" />
+        <option value="$PROJECT_DIR$/libraries/database/broadcasts.py" />
+        <option value="$PROJECT_DIR$/modules/scheduling/scheduler.py" />
       </list>
     </option>
   </component>
@@ -277,108 +280,66 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
-      <pane id="Scope" />
       <pane id="Scratches" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
             <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
-              <item name="configuration" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
-              <item name="libraries" type="462c0819:PsiDirectoryNode" />
+              <item name="engine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="engine" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
+              <item name="engine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="engine" type="462c0819:PsiDirectoryNode" />
               <item name="libraries" type="462c0819:PsiDirectoryNode" />
-              <item name="base" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
+              <item name="engine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="engine" type="462c0819:PsiDirectoryNode" />
               <item name="libraries" type="462c0819:PsiDirectoryNode" />
               <item name="database" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
-              <item name="libraries" type="462c0819:PsiDirectoryNode" />
-              <item name="enum" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
-              <item name="libraries" type="462c0819:PsiDirectoryNode" />
-              <item name="exceptions" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
-              <item name="libraries" type="462c0819:PsiDirectoryNode" />
-              <item name="reporting" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
-              <item name="libraries" type="462c0819:PsiDirectoryNode" />
-              <item name="security" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
-              <item name="modules" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
+              <item name="engine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="engine" type="462c0819:PsiDirectoryNode" />
               <item name="modules" type="462c0819:PsiDirectoryNode" />
-              <item name="communication" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
+              <item name="engine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="engine" type="462c0819:PsiDirectoryNode" />
               <item name="modules" type="462c0819:PsiDirectoryNode" />
               <item name="communication" type="462c0819:PsiDirectoryNode" />
-              <item name="liquidsoap" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
+              <item name="engine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="engine" type="462c0819:PsiDirectoryNode" />
               <item name="modules" type="462c0819:PsiDirectoryNode" />
               <item name="communication" type="462c0819:PsiDirectoryNode" />
               <item name="redis" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
+              <item name="engine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="engine" type="462c0819:PsiDirectoryNode" />
               <item name="modules" type="462c0819:PsiDirectoryNode" />
               <item name="controller" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
+              <item name="engine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="engine" type="462c0819:PsiDirectoryNode" />
               <item name="modules" type="462c0819:PsiDirectoryNode" />
-              <item name="scheduling" type="462c0819:PsiDirectoryNode" />
+              <item name="liquidsoap" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
-              <item name="aura" type="b2602c69:ProjectViewProjectNode" />
-              <item name="aura" type="462c0819:PsiDirectoryNode" />
+              <item name="engine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="engine" type="462c0819:PsiDirectoryNode" />
               <item name="modules" type="462c0819:PsiDirectoryNode" />
-              <item name="tools" type="462c0819:PsiDirectoryNode" />
+              <item name="scheduling" type="462c0819:PsiDirectoryNode" />
             </path>
           </expand>
           <select />
         </subPane>
       </pane>
+      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -431,7 +392,6 @@
       <option name="PARAMETERS" value="" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <option name="EMULATE_TERMINAL" value="false" />
-      <option name="MODULE_MODE" value="false" />
     </configuration>
     <configuration name="aura" type="PythonConfigurationType" factoryName="Python" temporary="true">
       <option name="INTERPRETER_OPTIONS" value="" />
@@ -449,7 +409,6 @@
       <option name="PARAMETERS" value="" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <option name="EMULATE_TERMINAL" value="false" />
-      <option name="MODULE_MODE" value="false" />
     </configuration>
     <configuration name="guru" type="PythonConfigurationType" factoryName="Python" temporary="true">
       <option name="INTERPRETER_OPTIONS" value="" />
@@ -467,7 +426,6 @@
       <option name="PARAMETERS" value="-pap" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <option name="EMULATE_TERMINAL" value="false" />
-      <option name="MODULE_MODE" value="false" />
     </configuration>
     <list size="2">
       <item index="0" class="java.lang.String" itemvalue="Python.guru" />
@@ -512,19 +470,20 @@
     <servers />
   </component>
   <component name="ToolWindowManager">
-    <frame x="645" y="31" width="1926" height="1052" extended-state="6" />
+    <frame x="645" y="31" width="1926" height="1083" extended-state="6" />
     <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.16692996" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.16666667" 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" />
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.46312365" sideWeight="0.5018431" order="13" side_tool="true" content_ui="tabs" />
       <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="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.42299348" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.37807378" sideWeight="0.5" order="2" 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="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="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.46312365" sideWeight="0.49815693" order="3" 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" />
+      <window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
       <window_info id="Message" 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="0" side_tool="false" content_ui="tabs" />
       <window_info id="Debug Logs" 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="9" side_tool="false" content_ui="tabs" />
@@ -533,7 +492,6 @@
       <window_info id="Execute Anonymous" 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="10" side_tool="false" content_ui="tabs" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
       <window_info id="Ant Build" active="false" anchor="right" 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="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Salesforce" 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="12" side_tool="false" content_ui="tabs" />
     </layout>
     <layout-to-restore>
@@ -585,56 +543,12 @@
     <watches-manager />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file:///usr/local/lib/python3.5/dist-packages/simplejson/decoder.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="167">
-          <caret line="362" column="8" lean-forward="false" selection-start-line="362" selection-start-column="8" selection-end-line="362" selection-end-column="8" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/errormessages/controller_error.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="397">
-          <caret line="209" column="0" lean-forward="true" selection-start-line="209" selection-start-column="0" selection-end-line="209" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/configuration/scheduler.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="323">
-          <caret line="19" column="24" lean-forward="false" selection-start-line="19" selection-start-column="24" selection-end-line="19" selection-end-column="24" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file:///usr/lib/python3/dist-packages/MySQLdb/connections.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="324">
-          <caret line="279" column="0" lean-forward="false" selection-start-line="279" selection-start-column="0" selection-end-line="279" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file:///usr/lib/python3/dist-packages/MySQLdb/cursors.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="163">
-          <caret line="216" column="0" lean-forward="false" selection-start-line="216" selection-start-column="0" selection-end-line="216" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file:///usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/default.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="171">
-          <caret line="469" column="0" lean-forward="false" selection-start-line="469" selection-start-column="0" selection-end-line="469" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file:///usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/base.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="885">
-          <caret line="989" column="0" lean-forward="true" selection-start-line="989" selection-start-column="0" selection-end-line="989" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
+    <entry file="file://$PROJECT_DIR$/errormessages/controller_error.js" />
+    <entry file="file://$PROJECT_DIR$/configuration/scheduler.xml" />
+    <entry file="file:///usr/lib/python3/dist-packages/MySQLdb/connections.py" />
+    <entry file="file:///usr/lib/python3/dist-packages/MySQLdb/cursors.py" />
+    <entry file="file:///usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/default.py" />
+    <entry file="file:///usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/base.py" />
     <entry file="file://$PROJECT_DIR$/modules/liquidsoap/helpers/D" />
     <entry file="file://$PROJECT_DIR$/modules/liquidsoap/__init__.py">
       <provider selected="true" editor-type-id="text-editor">
@@ -650,13 +564,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/scheduling/models.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="85">
-          <caret line="5" column="53" lean-forward="true" selection-start-line="5" selection-start-column="53" selection-end-line="5" selection-end-column="53" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/modules/liquidsoap/helpers/nextfromfallback.py" />
     <entry file="file://$PROJECT_DIR$/modules/liquidsoap/readini.liq">
       <provider selected="true" editor-type-id="text-editor">
@@ -707,29 +614,10 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/configuration/aura.ini">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1751">
-          <caret line="103" column="9" lean-forward="false" selection-start-line="103" selection-start-column="9" selection-end-line="103" selection-end-column="9" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/libraries/exceptions/auraexceptions.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="374">
-          <caret line="22" column="0" lean-forward="false" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
+    <entry file="file://$PROJECT_DIR$/configuration/aura.ini" />
+    <entry file="file://$PROJECT_DIR$/libraries/exceptions/auraexceptions.py" />
     <entry file="file://$PROJECT_DIR$/libraries/color/terminal.py" />
-    <entry file="file://$PROJECT_DIR$/libraries/base/config.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="238">
-          <caret line="81" column="25" lean-forward="false" selection-start-line="81" selection-start-column="25" selection-end-line="81" selection-end-column="25" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
+    <entry file="file://$PROJECT_DIR$/libraries/base/config.py" />
     <entry file="file://$PROJECT_DIR$/libraries/client/auraclient.py" />
     <entry file="file://$PROJECT_DIR$/modules/liquidsoap/test.liq">
       <provider selected="true" editor-type-id="text-editor">
@@ -745,211 +633,207 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/README.md">
-      <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
-        <state split_layout="SPLIT">
-          <first_editor relative-caret-position="935">
-            <caret line="55" column="4" lean-forward="false" selection-start-line="55" selection-start-column="4" selection-end-line="55" selection-end-column="4" />
-            <folding />
-          </first_editor>
-          <second_editor />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/libraries/enum/consolecolor.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="289">
-          <caret line="17" column="20" lean-forward="false" selection-start-line="17" selection-start-column="20" selection-end-line="17" selection-end-column="20" />
-        </state>
-      </provider>
-    </entry>
+    <entry file="file://$PROJECT_DIR$/libraries/enum/consolecolor.py" />
     <entry file="file://$PROJECT_DIR$/modules/communication/redis/messenger.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="170">
           <caret line="31" column="13" lean-forward="false" selection-start-line="31" selection-start-column="13" selection-end-line="31" selection-end-column="13" />
-          <folding>
-            <element signature="e#24#35#0" expanded="false" />
-          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file:///usr/local/lib/python3.5/dist-packages/redis/client.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="220">
-          <caret line="2214" column="8" lean-forward="false" selection-start-line="2214" selection-start-column="8" selection-end-line="2214" selection-end-column="8" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/client.py">
+    <entry file="file:///usr/local/lib/python3.5/dist-packages/redis/client.py" />
+    <entry file="file://$USER_HOME$/.PyCharmCE2017.3/system/python_stubs/-1247971764/sys.py" />
+    <entry file="file:///usr/lib/python3.5/threading.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="448">
-          <caret line="169" column="0" lean-forward="false" selection-start-line="169" selection-start-column="0" selection-end-line="169" selection-end-column="0" />
+        <state relative-caret-position="185">
+          <caret line="1164" column="8" lean-forward="false" selection-start-line="1164" selection-start-column="8" selection-end-line="1164" selection-end-column="8" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/libraries/database/combadb.py">
+    <entry file="file://$PROJECT_DIR$/libraries/database/statestore.py" />
+    <entry file="file://$PROJECT_DIR$/modules/liquidsoap/fallback.liq">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-884">
-          <caret line="32" column="7" lean-forward="false" selection-start-line="32" selection-start-column="7" selection-end-line="32" selection-end-column="7" />
-          <folding />
+        <state relative-caret-position="2040">
+          <caret line="120" column="119" lean-forward="false" selection-start-line="120" selection-start-column="119" selection-end-line="120" selection-end-column="119" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/libraries/database/database.py">
+    <entry file="file://$PROJECT_DIR$/modules/liquidsoap/helpers/message.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="340">
-          <caret line="25" column="1" lean-forward="false" selection-start-line="25" selection-start-column="1" selection-end-line="25" selection-end-column="1" />
-          <folding />
+        <state relative-caret-position="884">
+          <caret line="54" column="40" lean-forward="false" selection-start-line="54" selection-start-column="40" selection-end-line="54" selection-end-column="40" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$USER_HOME$/.PyCharmCE2017.3/system/python_stubs/-1247971764/sys.py">
+    <entry file="file://$PROJECT_DIR$/modules/liquidsoap/simplestmixer.liq">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="193">
-          <caret line="404" column="4" lean-forward="false" selection-start-line="404" selection-start-column="4" selection-end-line="404" selection-end-column="4" />
+        <state relative-caret-position="119">
+          <caret line="7" column="20" lean-forward="false" selection-start-line="7" selection-start-column="20" selection-end-line="7" selection-end-column="20" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/libraries/enum/redischannels.py">
+    <entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/playerclient.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="153">
-          <caret line="9" column="42" lean-forward="false" selection-start-line="9" selection-start-column="42" selection-end-line="9" selection-end-column="42" />
+        <state relative-caret-position="4998">
+          <caret line="294" column="40" lean-forward="false" selection-start-line="294" selection-start-column="40" selection-end-line="294" selection-end-column="40" />
         </state>
       </provider>
     </entry>
-    <entry file="file:///usr/lib/python3.5/threading.py">
+    <entry file="file://$PROJECT_DIR$/aura.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="185">
-          <caret line="1164" column="8" lean-forward="false" selection-start-line="1164" selection-start-column="8" selection-end-line="1164" selection-end-column="8" />
+        <state relative-caret-position="272">
+          <caret line="24" column="32" lean-forward="false" selection-start-line="24" selection-start-column="32" selection-end-line="24" selection-end-column="32" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/libraries/base/calendar.py">
+    <entry file="file://$PROJECT_DIR$/libraries/database/combadb.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-130">
-          <caret line="120" column="38" lean-forward="false" selection-start-line="120" selection-start-column="38" selection-end-line="120" selection-end-column="38" />
-          <folding />
+        <state relative-caret-position="-765">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/libraries/database/statestore.py">
+    <entry file="file://$PROJECT_DIR$/modules/scheduling/models.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="372">
-          <caret line="304" column="69" lean-forward="false" selection-start-line="304" selection-start-column="69" selection-end-line="304" selection-end-column="69" />
+        <state relative-caret-position="51">
+          <caret line="5" column="53" lean-forward="false" selection-start-line="5" selection-start-column="53" selection-end-line="5" selection-end-column="53" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/communication/redis/adapter.py">
+    <entry file="file://$PROJECT_DIR$/libraries/database/database.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2210">
-          <caret line="145" column="96" lean-forward="false" selection-start-line="145" selection-start-column="96" selection-end-line="145" selection-end-column="96" />
+        <state relative-caret-position="357">
+          <caret line="26" column="0" lean-forward="false" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" />
           <folding>
-            <element signature="e#0#16#0" expanded="false" />
+            <element signature="e#0#55#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/libraries/database/broadcasts.py">
+    <entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/initthread.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2040">
-          <caret line="125" column="88" lean-forward="false" selection-start-line="125" selection-start-column="88" selection-end-line="125" selection-end-column="88" />
+        <state relative-caret-position="510">
+          <caret line="34" column="33" lean-forward="false" selection-start-line="34" selection-start-column="33" selection-end-line="34" selection-end-column="33" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/liquidsoap/fallback.liq">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2040">
-          <caret line="120" column="119" lean-forward="false" selection-start-line="120" selection-start-column="119" selection-end-line="120" selection-end-column="119" />
+    <entry file="file://$PROJECT_DIR$/README.md">
+      <provider editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
           <folding />
         </state>
       </provider>
+      <provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
+        <state split_layout="SPLIT">
+          <first_editor relative-caret-position="697">
+            <caret line="41" column="17" lean-forward="true" selection-start-line="41" selection-start-column="17" selection-end-line="41" selection-end-column="17" />
+            <folding />
+          </first_editor>
+          <second_editor>
+            <js_state />
+          </second_editor>
+        </state>
+      </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/guru.py">
+    <entry file="file:///usr/local/lib/python3.5/dist-packages/sqlalchemy/__init__.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1785">
-          <caret line="114" column="16" lean-forward="false" selection-start-line="114" selection-start-column="16" selection-end-line="114" selection-end-column="16" />
-          <folding />
+        <state relative-caret-position="-2091">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="e#244#892#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/liquidsoap/helpers/message.py">
+    <entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/client.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="648">
-          <caret line="54" column="40" lean-forward="false" selection-start-line="54" selection-start-column="40" selection-end-line="54" selection-end-column="40" />
+        <state relative-caret-position="178">
+          <caret line="57" column="34" lean-forward="false" selection-start-line="57" selection-start-column="34" selection-end-line="57" selection-end-column="34" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/liquidsoap/simplestmixer.liq">
+    <entry file="file://$PROJECT_DIR$/modules/controller/controller.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="119">
-          <caret line="7" column="20" lean-forward="false" selection-start-line="7" selection-start-column="20" selection-end-line="7" selection-end-column="20" />
-          <folding />
+        <state relative-caret-position="212">
+          <caret line="84" column="51" lean-forward="true" selection-start-line="84" selection-start-column="51" selection-end-line="84" selection-end-column="51" />
+          <folding>
+            <element signature="e#43#56#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/playerclient.py">
+    <entry file="file://$PROJECT_DIR$/modules/communication/redis/adapter.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="343">
-          <caret line="294" column="40" lean-forward="false" selection-start-line="294" selection-start-column="40" selection-end-line="294" selection-end-column="40" />
+        <state relative-caret-position="142">
+          <caret line="158" column="122" lean-forward="true" selection-start-line="158" selection-start-column="122" selection-end-line="158" selection-end-column="122" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/scheduling/scheduler.py">
+    <entry file="file://$PROJECT_DIR$/modules/tools/padavan.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="343">
-          <caret line="241" column="70" lean-forward="false" selection-start-line="241" selection-start-column="70" selection-end-line="241" selection-end-column="70" />
+        <state relative-caret-position="482">
+          <caret line="138" column="41" lean-forward="false" selection-start-line="138" selection-start-column="41" selection-end-line="138" selection-end-column="41" />
           <folding>
-            <element signature="e#1046#1059#0" expanded="true" />
+            <element signature="e#0#17#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/aura.py">
+    <entry file="file://$PROJECT_DIR$/libraries/enum/redischannels.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="159">
-          <caret line="24" column="34" lean-forward="false" selection-start-line="24" selection-start-column="34" selection-end-line="24" selection-end-column="34" />
+        <state relative-caret-position="170">
+          <caret line="10" column="42" lean-forward="false" selection-start-line="10" selection-start-column="42" selection-end-line="10" selection-end-column="42" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/initthread.py">
+    <entry file="file://$PROJECT_DIR$/guru.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="578">
-          <caret line="38" column="17" lean-forward="false" selection-start-line="38" selection-start-column="17" selection-end-line="38" selection-end-column="17" />
+        <state relative-caret-position="144">
+          <caret line="54" column="110" lean-forward="false" selection-start-line="54" selection-start-column="89" selection-end-line="54" selection-end-column="110" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/tools/padavan.py">
+    <entry file="file://$PROJECT_DIR$/libraries/base/calendar.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="182">
-          <caret line="148" column="53" lean-forward="false" selection-start-line="148" selection-start-column="53" selection-end-line="148" selection-end-column="53" />
+        <state relative-caret-position="108">
+          <caret line="179" column="22" lean-forward="true" selection-start-line="179" selection-start-column="22" selection-end-line="179" selection-end-column="22" />
+          <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="235">
+          <caret line="15" column="9" lean-forward="false" selection-start-line="15" selection-start-column="9" selection-end-line="15" selection-end-column="9" />
           <folding>
-            <element signature="e#0#17#0" expanded="true" />
+            <element signature="e#47#79#0" expanded="true" />
           </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="387">
-          <caret line="1002" column="12" lean-forward="false" selection-start-line="1002" selection-start-column="12" selection-end-line="1002" selection-end-column="12" />
+        <state relative-caret-position="306">
+          <caret line="143" column="28" lean-forward="true" selection-start-line="143" selection-start-column="28" selection-end-line="143" selection-end-column="28" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/controller/controller.py">
+    <entry file="file://$PROJECT_DIR$/modules/scheduling/scheduler.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="261">
-          <caret line="102" column="33" lean-forward="false" selection-start-line="102" selection-start-column="33" selection-end-line="102" selection-end-column="33" />
+        <state relative-caret-position="17">
+          <caret line="343" column="32" lean-forward="false" selection-start-line="343" selection-start-column="32" selection-end-line="343" selection-end-column="32" />
           <folding>
-            <element signature="e#43#56#0" expanded="true" />
+            <element signature="e#1046#1059#0" expanded="true" />
           </folding>
         </state>
       </provider>
diff --git a/README.md b/README.md
index e5c5231d3d4aaca0ea64924f779f08d15ccb2365..6555429eff5124afb87f45a4eb7b2eb4719430d6 100644
--- a/README.md
+++ b/README.md
@@ -20,23 +20,46 @@ Any sound supporting linux system should work. It is tested and coded on a **deb
 On a debian machine:
 
 ```bash
-sudo apt install git \
-    python3 python3-pip \ 
-    liquidsoap liquidsoap-plugin-alsa liquidsoap-plugin-ao liquidsoap-plugin-faad \ 
-    liquidsoap-plugin-flac liquidsoap-plugin-icecast liquidsoap-plugin-lame \
-    liquidsoap-plugin-mad liquidsoap-plugin-ogg liquidsoap-plugin-pulseaudio \
-    liquidsoap-plugin-samplerate liquidsoap-plugin-taglib liquidsoap-plugin-voaacenc \
-    liquidsoap-plugin-vorbis
+sudo apt install \
+    git \
+    python3 python3-pip \
+    redis-server redis-tools \
+    liquidsoap liquidsoap-plugin-alsa liquidsoap-plugin-flac liquidsoap-plugin-icecast liquidsoap-plugin-pulseaudio \
+    libev4 libev-dev \
+    mariadb-server libmariadbclient-dev
 ```
 
+
 #### Python Packages
 
 ```
-sudo pip3 install Flask Flask-Babel flask-babel-utclocal-utils \
-    flask-mongoengine Flask-RESTful Flask-SQLAlchemy Flask-WTF \
+sudo pip3 install \
+    Flask Flask-Babel Flask-SQLAlchemy Flask-WTF \
     mysqlclient redis simplejson
+    pyev python-dateutil
 ```
 
+#### get the code
+
+git clone https://gitlab.servus.at/autoradio/engine
+
+#### Set Up a database
+
+mysql -u root -p
+
+CREATE DATABASE aura_engine CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+CREATE USER 'aura'@'localhost' IDENTIFIED BY 'secure-password';
+GRANT ALL PRIVILEGES ON aura_engine.* TO 'aura'@'localhost';
+
+#### Files
+
+Create the audio folder defined in your aura.ini
+mkdir /var/audio
+mkdir /etc/aura
+cp {where you cloned the repo}/configuration/aura.ini /etc/aura/aura.ini
+
+edit installation dir and database settings in aura.ini
+
 #### aura.py
 
 It is the server which is connected to the external programme source, to liquidsoap and is listening for redis pubsub messages.
diff --git a/aura.py b/aura.py
index 5aa3f4ba6638af1cca010292c7e364283c4678fe..cf5c1d9134848e0b8765c9bc7a6660f1f33d4310 100755
--- a/aura.py
+++ b/aura.py
@@ -38,16 +38,17 @@ class Aura():
         # start listener thread
         self.messenger.start()
 
+
 # # ## ## ## ## ## # #
 # # ENTRY FUNCTION # #
 # # ## ## ## ## ## # #
 def main():
     aura = Aura()
     aura.join_comm()
-
 # # ## ## ## ## ## ## # #
 # # End ENTRY FUNCTION # #
 # # ## ## ## ## ## ## # #
 
+
 if __name__ == "__main__":
     main()
\ No newline at end of file
diff --git a/guru.py b/guru.py
index ee55110b4fe16522d44ba9da769a92bb4e9523b2..e3073356275b67e9d16617146581302b4427ca66 100755
--- a/guru.py
+++ b/guru.py
@@ -52,9 +52,9 @@ class Guru:
             #                    help="Add new source to LiquidSoap mixer [Experimental]")
 
             # playlist manipulation
-            parser.add_argument("-mpe", "--move-playlist-entry", action="store", dest="move_playlist_entry", default=0, metavar=("FROM", "TO"), nargs=2,
-                                help="Move Playlistentry FROM index TO another index")
-            parser.add_argument("-dpe", "--delete-playlist-entry", action="store", dest="delete_playlist_entry", default=0, metavar=("INDEX"),
+            parser.add_argument("-mpe", "--swap-playlist-entries", action="store", dest="swap_playlist_entries", default=0, metavar=("FROM", "TO"), nargs=2,
+                                help="Swaps two Playlistentries")
+            parser.add_argument("-dpe", "--delete-playlist-entry", action="store", dest="delete_playlist_entry", default=0, metavar="INDEX",
                                 help="Delete Playlistentry at INDEX")
             parser.add_argument("-ape", "--add-playlist-entry", action="store", dest="add_playlist_entry", default=0, metavar=("INDEX", "FROMTIME", "SOURCE"), nargs=3,
                                 help="Add a new Playlistentry at a given index", type=valid_playlist_entry)
@@ -94,6 +94,7 @@ class Guru:
 
         if not args.quiet:
             print("Guru thinking...")
+
         try:
             p = Padavan(args, self.config)
             p.meditate()
diff --git a/libraries/base/calendar.py b/libraries/base/calendar.py
index f9499d5337bea68b0e5e1fa5b93352006981dc38..8a4a9943c0024e9ad665be21a8f6141a1f1d721a 100644
--- a/libraries/base/calendar.py
+++ b/libraries/base/calendar.py
@@ -207,6 +207,8 @@ class AuraCalendarService(threading.Thread):
         schedule_entry.tracknum = entry["tracknum"]
         schedule_entry.cdnum = entry["cdnum"]
         schedule_entry.year = entry["year"]
+        if schedule_entry.year == '':
+            schedule_entry.year = 0
 
         if self.debug:
             print("Storing entries... playlist_id: " + str(schedule["playlist_id"]) + " schedule_id: " + str(
diff --git a/libraries/database/broadcasts.py b/libraries/database/broadcasts.py
index a0820766c22d191b0a6db03877ff62e311750ed6..e0204bf457309f283179b26ab1f45c2130ef20f3 100644
--- a/libraries/database/broadcasts.py
+++ b/libraries/database/broadcasts.py
@@ -11,29 +11,30 @@ from libraries.database.database import db
 
 class Model:
     def store(self, commit=False):
-        db.session.add(self)
+        curr_db_sessions = db.session.object_session(self)
+        curr_db_sessions.add(self)
+        #db.session.add(self)
         if commit:
             self.commit()
 
-    def commit(self):
+    @staticmethod
+    def commit():
         db.session.commit()
 
-#    def dump_datetime(self, value):
-#        """Deserialize datetime object into string form for JSON processing."""
-#        if value is None:
-#            return None
-#        return [value.strftime("%Y-%m-%d"), value.strftime("%H:%M:%S")]
-
-#    def alchemy_encoder(obj):
-#        """JSON encoder function for SQLAlchemy special classes."""
-#        if isinstance(obj, datetime.date):
-#            return obj.isoformat()
-#        elif isinstance(obj, decimal.Decimal):
-#            return float(obj)
-
     def _asdict(self):
         return self.__dict__
 
+    @staticmethod
+    def recreate_db():
+        print("Recreating Database...")
+        db.drop_all()
+        print("all dropped. creating...")
+        db.create_all()
+        print("all created. commiting...")
+        db.session.commit()
+        print("Database recreated!")
+        # sys.exit(0)
+
 
 # ------------------------------------------------------------------------------------------ #
 class ScheduleModel(Model):
@@ -57,9 +58,12 @@ class ScheduleEntryModel(Model):
     def select_all():
         all_entries = ScheduleEntry.query.filter().all()
 
+        cnt = 0
         for entry in all_entries:
+            entry.programme_index = cnt
             entry.entry_start_unix = time.mktime(entry.entry_start.timetuple())
             entry.entry_end_unix = time.mktime(entry.entry_end.timetuple())
+            cnt = cnt + 1
 
         return all_entries
 
@@ -139,6 +143,7 @@ class ScheduleEntry(db.Model, ScheduleEntryModel):
     volume = Column(Integer, default=100)
     entry_start_unix = 0
     entry_end_unix = 0
+    programme_index = -1
 
 
 #    def __init__(self, playlist_id, entry_num, schedule_id, entry_start, entry_end, source, artist, track, albumname, genre, tracknum, cdnum, year):
@@ -172,6 +177,7 @@ class ScheduleEntry(db.Model, ScheduleEntryModel):
         e.tracknum = tracknum
         e.cdnum = cdnum
         e.year = year
+        return e
 
 #    @property
 #    def serialize(self):
@@ -192,14 +198,5 @@ class ScheduleEntry(db.Model, ScheduleEntryModel):
 #    show_id = Column(Integer, ForeignKey("timeslot.id"))
 
 
-def recreateDB():
-    print("Recreating Database...")
-    db.drop_all()
-    print("all dropped. creating...")
-    db.create_all()
-    print("all created. commiting...")
-    db.session.commit()
-    print("Database recreated!")
-    sys.exit(0)
 
-#recreateDB()
+#Model.recreate_db()
diff --git a/libraries/enum/redischannels.py b/libraries/enum/redischannels.py
index cfc76fe4aebd129070481847e8a5011a6d878458..4c92cb86203e73cc675b1b606e650b4903f4f93e 100644
--- a/libraries/enum/redischannels.py
+++ b/libraries/enum/redischannels.py
@@ -8,3 +8,4 @@ class Channels(Enum):
     GAP_REPLY = "get_act_programme_reply"
     IP_REPLY = "init_player_reply"
     PMQ_REPLY = "print_message_queue_reply"
+    MPE_REPLY = "move_playlist_entry_reply"
diff --git a/modules/communication/liquidsoap/client.py b/modules/communication/liquidsoap/client.py
index 89406dc908ba685b761ce288891e4ef86a94efcf..387629163ed7d40fd955e1a3061c1244191a36db 100644
--- a/modules/communication/liquidsoap/client.py
+++ b/modules/communication/liquidsoap/client.py
@@ -55,6 +55,7 @@ class LiquidSoapClient:
             self.client.connect(self.socket_path)
         except socket.error as e:
             self.connected = False
+            print(self.socket_path)
             raise LQConnectionError(e, self.socket_path)
             return False
         else:
diff --git a/modules/communication/liquidsoap/communicator.py b/modules/communication/liquidsoap/communicator.py
index 2001bf9be638f768e6673147cff4191d52729c0e..5f87a43a522223c8a329e32479b4ad254c3a95e3 100644
--- a/modules/communication/liquidsoap/communicator.py
+++ b/modules/communication/liquidsoap/communicator.py
@@ -134,7 +134,7 @@ class LiquidSoapCommunicator:
 
     # ------------------------------------------------------------------------------------------ #
     def get_all_channels(self):
-        if self.channels is None:
+        if self.channels is None or self.channels == ['']:
             self.channels = self.__send_lqc_command__(self.lqc, "mixer", "inputs")
 
         return self.channels
diff --git a/modules/communication/redis/adapter.py b/modules/communication/redis/adapter.py
index ed08df92203a7ad84dae262241eff49c1cfbb109..fc3394c79b8b57dd79549723d2262f5bb022da98 100644
--- a/modules/communication/redis/adapter.py
+++ b/modules/communication/redis/adapter.py
@@ -68,12 +68,8 @@ class ServerRedisAdapter(threading.Thread, RedisMessenger):
 
             print(TerminalColors.OK_ORANGE.value + "received REDIS message: " + TerminalColors.ENDC.value + str(item) )
 
-            item["channel"] = item["channel"].decode("utf-8")
-            if isinstance(item["data"], bytes):
-                item["data"] = item["data"].decode("utf-8")
-
-            if item['data'] == "KILL":
-                break
+            item["channel"] = self.decode_if_needed(item["channel"])
+            item["data"] = self.decode_if_needed(item["data"])
 
             try:
                 self.work(item)
@@ -86,6 +82,12 @@ class ServerRedisAdapter(threading.Thread, RedisMessenger):
         self.pubsub.unsubscribe()
         print(self, "unsubscribed from " + self.channel + " and finished")
 
+    # ------------------------------------------------------------------------------------------ #
+    def decode_if_needed(self, val):
+        if isinstance(val, bytes):
+            return val.decode("utf-8")
+        return val
+
     # ------------------------------------------------------------------------------------------ #
     def listen_for_one_message(self, channel, socket_timeout=2):
         self.redisdb = redis.Redis(socket_timeout=socket_timeout)
@@ -122,23 +124,31 @@ class ServerRedisAdapter(threading.Thread, RedisMessenger):
     # ------------------------------------------------------------------------------------------ #
     def work(self, item):
         if item["data"] == "fetch_new_programme":
-            self.execute(self.auracontroller.fetch_new_programme, Channels.FNP_REPLY.value)
+            self.execute(Channels.FNP_REPLY.value, self.auracontroller.fetch_new_programme, )
 
         elif item["data"] == "init_player":
-            self.execute(self.auracontroller.init_player, Channels.IP_REPLY.value)
+            self.execute(Channels.IP_REPLY.value, self.auracontroller.init_player, )
 
         elif item["data"] == "get_act_programme":
-            self.execute(self.auracontroller.get_act_programme, Channels.GAP_REPLY.value)
+            self.execute(Channels.GAP_REPLY.value, self.auracontroller.get_act_programme, )
 
         elif item["data"] == "print_message_queue":
-            self.execute(self.scheduler.print_message_queue, Channels.PMQ_REPLY.value)
+            self.execute(Channels.PMQ_REPLY.value, self.scheduler.print_message_queue, )
+
+        elif item["data"].find("swap_playlist_entries") >= 0:
+            extracted = item["data"].split()[1:3]
+            param = {"from_index": extracted[0], "to_index": extracted[1]}
+            self.execute(Channels.MPE_REPLY.value, self.scheduler.swap_playlist_entries, param)
 
         else:
             raise RedisConnectionException("ServerRedisAdapter Cannot understand command: " + item["data"])
 
     # ------------------------------------------------------------------------------------------ #
-    def execute(self, f, channel):
-        reply = f()
+    def execute(self, channel, f, param=None):
+        if param:
+            reply = f(param)
+        else:
+            reply = f()
 
         if reply is None:
             reply = ""
@@ -146,6 +156,8 @@ class ServerRedisAdapter(threading.Thread, RedisMessenger):
         # sometimes the sender is faster than the receiver and with redis messages would be lost
         time.sleep(0.1)
 
+        print(TerminalColors.OK_ORANGE.value + "replying " + reply + " on channel " + channel + TerminalColors.ENDC.value)
+
         # publish
         self.redisclient.publish(channel, reply)
 
diff --git a/modules/controller/controller.py b/modules/controller/controller.py
index 8a40fd5402a7e2f4d1c51238ef3c06eeb85c7a0a..6790e911f1d68ad140420abb1f55b25caca3fec7 100644
--- a/modules/controller/controller.py
+++ b/modules/controller/controller.py
@@ -2,21 +2,20 @@
 # -*- coding: utf-8 -*-
 import base64
 import logging
-# import urllib
 import random
 import string
-# import tempfile
 import sys
 import traceback
 import simplejson
 
+from libraries.security.user import AuraUser
 from libraries.base.calendar import AuraCalendarService
 from libraries.base.schedulerconfig import AuraSchedulerConfig
-from modules.communication.redis.messenger import RedisMessenger
-from libraries.security.user import AuraUser
 from libraries.exceptions.auraexceptions import NoProgrammeLoadedException
-from modules.communication.liquidsoap.communicator import LiquidSoapCommunicator
+
 from modules.scheduling.scheduler import AuraScheduler
+from modules.communication.redis.messenger import RedisMessenger
+from modules.communication.liquidsoap.communicator import LiquidSoapCommunicator
 
 
 """
@@ -25,7 +24,7 @@ from modules.scheduling.scheduler import AuraScheduler
 """
 
 
-class AuraController():
+class AuraController:
     messenger = RedisMessenger()
     liquidsoapcommunicator = None
     scheduler = None
@@ -42,15 +41,11 @@ class AuraController():
     def __init__(self, config):
         """
         Constructor
-        @type    sender: object
-        @param   sender: Der Communicator Adapter - z-B. zmq
-        @type    lqs_socket: string
-        @param   lqs_socket: Liquidsoap Player Socket
-        @type    lqs_recsocket: string
-        @param   lqs_recsocket: Liquidsoap Recorder Socket
+        @type    config: object
+        @param   config: Die geladene aura.ini
         """
         self.config = config
-        self.debug = config.get("debug")
+        self.debug = self.config.get("debug")
 
         # Felder die Liquidsoap fuer einen Track (rid) zurueckliefert
         self.knownfields = ["status", "album", "time", "title", "artist", "comment", "filename", "on_air", "source", "rid", "genre"]
@@ -59,7 +54,7 @@ class AuraController():
 #        self.messenger.set_channel('controller')
 #        self.messenger.set_section('execjob')
 
-        errors_file = config.get("install_dir")+"/errormessages/controller_error.js"
+        errors_file = self.config.get("install_dir")+"/errormessages/controller_error.js"
         self.errorData = simplejson.load(open(errors_file))
 
         # create scheduler and ls_communicator
@@ -92,7 +87,6 @@ class AuraController():
         else:
             print("Got an unknown response from AuraCalendarService: "+response)
 
-
     # ------------------------------------------------------------------------------------------ #
     def get_act_programme(self):
         try:
diff --git a/modules/scheduling/scheduler.py b/modules/scheduling/scheduler.py
index cf086387717a18870a7e3c7828f132091c2247bb..d479b9aa5c436db11d448717b2a4add051624a53 100644
--- a/modules/scheduling/scheduler.py
+++ b/modules/scheduling/scheduler.py
@@ -40,6 +40,7 @@ import decimal
 import json
 import traceback
 import sqlalchemy
+import MySQLdb
 import sys
 
 from datetime import timedelta
@@ -53,9 +54,10 @@ from libraries.base.schedulerconfig import AuraSchedulerConfig
 from modules.communication.redis.messenger import RedisMessenger
 from libraries.base.calendar import AuraCalendarService
 from modules.scheduling.models import ModelBroadcastEventOverrides
-from libraries.database.broadcasts import ScheduleEntry
+from libraries.database.broadcasts import ScheduleEntry, Model
 from libraries.exceptions.auraexceptions import NoProgrammeLoadedException
 
+
 def alchemyencoder(obj):
     """JSON encoder function for SQLAlchemy special classes."""
     if isinstance(obj, datetime.date):
@@ -128,8 +130,24 @@ class AuraScheduler():
         json_data = open(self.auraconfig.get("install_dir") + "/errormessages/scheduler_error.js")
         self.errorData = simplejson.load(json_data)
 
+        # init database ?
+        self.init_database()
+
         self.redismessenger.send('Scheduler started', '0000', 'success', 'initApp', None, 'appinternal')
 
+    # ------------------------------------------------------------------------------------------ #
+    def init_database(self):
+        import sys
+        # check if tables do exist. if not create them
+        try:
+            ScheduleEntry.select_all()
+        except sqlalchemy.exc.ProgrammingError as e:
+            if e.__dict__["code"] == "f405":
+                Model.recreate_db()
+            else:
+                raise
+
+
     # ------------------------------------------------------------------------------------------ #
 #    def set(self, key, value):
 #        """
@@ -221,7 +239,7 @@ class AuraScheduler():
                 # when do we have to start?
                 diff = entry.entry_start_unix - now_unix
 
-                diff = diff/1000 # testing purpose
+                diff = diff/100 # testing purpose
 
                 # create the activation threads and run them after <diff> seconds
                 if entry.source.startswith("linein"):
@@ -295,7 +313,6 @@ class AuraScheduler():
                 return t
         return False
 
-
     # ------------------------------------------------------------------------------------------ #
     def get_act_programme(self):
         programme_as_string = ""
@@ -317,6 +334,37 @@ class AuraScheduler():
 
         return message_queue
 
+    # ------------------------------------------------------------------------------------------ #
+    def swap_playlist_entries(self, indexes):
+        from_entry = None
+        to_entry = None
+        from_idx = indexes["from_index"]
+        to_idx = indexes["to_index"]
+
+        for p in self.programme:
+            if p.programme_index == int(from_idx):
+                from_entry = p
+
+            if p.programme_index == int(to_idx):
+                to_entry = p
+
+            if from_entry is not None and to_entry is not None:
+                break
+
+        if from_entry is None or to_entry is None:
+            return "From or To Entry not found!"
+
+        swap_source = from_entry.source
+        from_entry.source = to_entry.source
+        to_entry.source = swap_source
+
+        from_entry.store()
+        to_entry.store()
+
+        self.load_programme_from_db()
+
+        return self.get_act_programme()
+
     # ------------------------------------------------------------------------------------------ #
     def __load_config__(self):
         """
diff --git a/modules/tools/padavan.py b/modules/tools/padavan.py
index 55627d5bf6502f0b62e4960e41f2bf115fe1c965..a4ae3cb57d0bea3407383e0ddb240a576b1da2e1 100644
--- a/modules/tools/padavan.py
+++ b/modules/tools/padavan.py
@@ -47,14 +47,15 @@ class Padavan:
         elif self.args.set_volume:
             self.set_volume(self.args.set_volume[0], self.args.set_volume[1])
 
-        elif self.args.move_playlist_entry:
-            self.move_playlist_entry(self.args.move_playlist_entry[0], self.args.move_playlist_entry[1])
+        elif self.args.swap_playlist_entries:
+            self.swap_playlist_entries(self.args.swap_playlist_entries[0], self.args.swap_playlist_entries[1])
 
         elif self.args.delete_playlist_entry:
             self.delete_playlist_entry(self.args.delete_playlist_entry)
 
-        elif self.args.move_playlist_entry:
-            self.move_playlist_entry(self.args.move_playlist_entry[0], self.args.move_playlist_entry[1])
+#        elif self.args.add_playlist_entry:
+#            print("moving pl en")
+#            self.add_playlist_entry(self.args.move_playlist_entry[0], self.args.move_playlist_entry[1])
 
         elif self.args.print_message_queue:
             self.print_message_queue()
@@ -107,20 +108,23 @@ class Padavan:
     def fetch_new_programme(self):
         json_reply = self.send_and_wait_redis("aura", "fetch_new_programme", Channels.FNP_REPLY)
         actprogramme = simplejson.loads(json_reply)
-
-        for entry in actprogramme:
-            self.stringreply += "schedule id #" + str(entry["schedule_id"]) + " and entrynumber #" + str(
-                entry["entry_num"]) + " starting @ " + entry["entry_start"] + " playing " + entry[
-                               "source"] + " and is going to stop @ " + entry["entry_end"] + "\n"
+        self.print_programme(actprogramme)
 
     def get_act_programme(self):
         json_reply = self.send_and_wait_redis("aura", "get_act_programme", Channels.GAP_REPLY)
         actprogramme = simplejson.loads(json_reply)
-
-        for entry in actprogramme:
-            self.stringreply += "schedule id #" + str(entry["schedule_id"]) + " and entrynumber #" + str(
-                entry["entry_num"]) + " starting @ " + entry["entry_start"] + " playing " + entry[
-                               "source"] + " and is going to stop @ " + entry["entry_end"] + "\n"
+        self.print_programme(actprogramme)
+
+    def print_programme(self, programme):
+        idx = 0
+        for entry in programme:
+            self.stringreply += "idx: " + str(entry["programme_index"]) + \
+                " --- schedule id #" + str(entry["schedule_id"]) + \
+                " and entrynumber #" + str(entry["entry_num"]) + \
+                " starting @ " + entry["entry_start"] + \
+                " ending @ " + entry["entry_end"] + \
+                " is playing " + entry["source"] + "\n"
+            idx = idx + 1
 
     def init_player(self):
         self.stringreply = self.send_and_wait_redis("aura", "init_player", Channels.IP_REPLY)
@@ -129,13 +133,15 @@ class Padavan:
         self.send_redis(channel, message)
         self.stringreply = "Message '"+message+"' sent to channel '"+channel+"'"
 
-    def move_playlist_entry(self, from_index, to_index):
-        return ""
+    def swap_playlist_entries(self, from_index, to_index):
+        json_reply = self.send_and_wait_redis("aura", "swap_playlist_entries " + str(from_index) + " " + str(to_index), Channels.MPE_REPLY)
+        actprogramme = simplejson.loads(json_reply)
+        self.print_programme(actprogramme)
 
     def delete_playlist_entry(self, index):
         return ""
 
-    def move_playlist_entry(self, from_index, to_index):
+    def add_playlist_entry(self, from_index, to_index):
         return ""
 
     def print_message_queue(self):