diff --git a/src/serverfunctions.liq b/src/serverfunctions.liq
index a37311fe8f0f42f39457179244146ab5ce8ffec0..d555a616282e2b37f99c328abfbf952bc4c13896 100644
--- a/src/serverfunctions.liq
+++ b/src/serverfunctions.liq
@@ -22,7 +22,7 @@
 #
 
 
-# Get connection state of outgoing streams
+# Get connection state of outgoing streams #TODO refactor
 server.register(namespace="aura_engine",
     description="returns if outgoing streams are connected",
     usage="out_streams_connected",
@@ -37,42 +37,39 @@ server.register(namespace="aura_engine",
 # Get state of the inputs/outputs as JSON
 server.register(namespace = "aura_engine",
     description="returns enabled line-in, line-out and connected outgoing streams",
-    usage="state",
-    "state",
+    usage="status",
+    "status",
     fun(s) -> begin
         ignore(s)
-        log("executing: aura_engine.state")
-
-        ret = '{'
-        ret = ret^'"streams": {'
-        ret = ret^'"stream_0": {"enabled": #{s0_enable}, "connected": #{!s0_connected}},'
-        ret = ret^'"stream_1": {"enabled": #{s1_enable}, "connected": #{!s1_connected}},'
-        ret = ret^'"stream_2": {"enabled": #{s2_enable}, "connected": #{!s2_connected}},'
-        ret = ret^'"stream_3": {"enabled": #{s3_enable}, "connected": #{!s3_connected}},'
-        ret = ret^'"stream_4": {"enabled": #{s4_enable}, "connected": #{!s4_connected}}'
-        ret = ret^'},'
-        ret = ret^'"linein": {'
-        ret = ret^'"linein_0": {"enabled": #{a0_in != ""}},'
-        ret = ret^'"linein_1": {"enabled": #{a1_in != ""}},'
-        ret = ret^'"linein_2": {"enabled": #{a2_in != ""}},'
-        ret = ret^'"linein_3": {"enabled": #{a3_in != ""}},'
-        ret = ret^'"linein_4": {"enabled": #{a4_in != ""}}'
-        ret = ret^'},'
-        ret = ret^'"lineout": {'
-        ret = ret^'"lineout_0": {"enabled": #{a0_out != ""}},'
-        ret = ret^'"lineout_1": {"enabled": #{a1_out != ""}},'
-        ret = ret^'"lineout_2": {"enabled": #{a2_out != ""}},'
-        ret = ret^'"lineout_3": {"enabled": #{a3_out != ""}},'
-        ret = ret^'"lineout_4": {"enabled": #{a4_out != ""}}'
-        ret = ret^'}'
-        ret = ret^'}'
-        ret
-
-        # outgoing streams enabled?
-        #ret = "stream_0_enabled:#{!s0_enable}, stream_1_enabled:#{!s1_enable}, stream_2_enabled:#{!s2_enable}, stream_3_enabled:#{!s3_enable}, stream_4_enabled:#{!s4_enable}, "
-        #ret = ret^"linein_0_enabled:#{a0_in != ''}, linein_1_enabled:#{a1_in != ''}, linein_2_enabled:#{a2_in != ''}, linein_3_enabled:#{a3_in != ''}, linein_4_enabled:#{a4_in != ''}, "
-        #ret = ret^"lineout_0_enabled:#{a0_out != ''}, lineout_1_enabled:#{a1_out != ''}, lineout_2_enabled:#{a2_out != ''}, lineout_3_enabled:#{a3_out != ''}, lineout_4_enabled:#{a4_out != ''}, "
-        #ret = ret^"fallback_max_blank:#{fallback_max_blank}, fallback_min_noise:#{fallback_min_noise}, fallback_threshold:#{fallback_threshold}"
+        log("executing: aura_engine.status")
+
+        json_streams = {
+            stream_0 = { enabled = "#{s0_enable}", connected = "#{!s0_connected}" },
+            stream_1 = { enabled = "#{s1_enable}", connected = "#{!s1_connected}" },
+            stream_2 = { enabled = "#{s2_enable}", connected = "#{!s2_connected}" },
+            stream_3 = { enabled = "#{s3_enable}", connected = "#{!s3_connected}" },
+            stream_4 = { enabled = "#{s4_enable}", connected = "#{!s4_connected}" }
+        }
+        json_linein = {
+            linein_0 = { enabled = "#{a0_in != ''}" },
+            linein_1 = { enabled = "#{a1_in != ''}" },
+            linein_2 = { enabled = "#{a2_in != ''}" },
+            linein_3 = { enabled = "#{a3_in != ''}" },
+            linein_4 = { enabled = "#{a4_in != ''}" }
+        }
+        json_lineout = {
+            lineout_0 = { enabled = "#{a0_out != ''}" },
+            lineout_1 = { enabled = "#{a1_out != ''}" },
+            lineout_2 = { enabled = "#{a2_out != ''}" },
+            lineout_3 = { enabled = "#{a3_out != ''}" },
+            lineout_4 = { enabled = "#{a4_out != ''}" }
+        }
+
+        json_data = json()
+        json_data.add("streams", json_streams)
+        json_data.add("linein", json_linein)
+        json_data.add("lineout", json_lineout)
+        json.stringify(json_data)
     end
 )
 
@@ -99,26 +96,46 @@ server.register(namespace="aura_engine",
     end
 )
 
-# to reduce complexity of lqs => query 'mixer.inputs' over socket and parse it in python
-#server.register(namespace="aura_engine",
-#    "enabled_lineins",
-#    fun (s) -> begin
-#        log("auraengine.enabled_lineins")
-#        "0:#{!linein_0_enabled}, 1:#{!linein_1_enabled}, 2:#{!linein_2_enabled}, 3:#{!linein_3_enabled}, 4:#{!linein_4_enabled}"
-#    end
-#)
 
-#server.register(namespace="aura_engine",
-#    "enabled_lineouts",
-#    fun(s) -> begin
-#        log("auraengine.enabled_lineouts")
-#        "0:#{!lineout_0_enabled}, 1:#{!lineout_1_enabled}, 2:#{!lineout_2_enabled}, 3:#{!lineout_3_enabled}, 4:#{!lineout_4_enabled}"
-#    end
-#)
+
+#
+# Namespace: mixer
+#
+
+
+# Activate a source by selecting it and setting the volume to 100 (or vice versa)
+server.register(namespace = "mixer",
+    description = "is selecting a source and setting the volume to 100",
+    usage = "activate <source number> <true|false>",
+    "activate",
+    fun(p) -> begin
+        params=string.split(separator=" ", p)
+        if list.length(params) < 2 then
+            print(p)
+            "Usage: mixer.activate <source nb> <true|false>"
+        else
+            source_number = list.nth(default="0", params, 0)
+            source_enable = list.nth(default="false", params, 1)
+
+            if source_enable == "true" then
+                r = server.execute("mixer.select #{source_number} true")
+                print(r)
+                r = server.execute("mixer.volume #{source_number} 100")
+                print(r)
+            else
+                r = server.execute("mixer.volume #{source_number} 0")
+                print(r)
+                r = server.execute("mixer.select #{source_number} false")
+                print(r)
+            end
+            "Done!"
+        end
+    end
+)
 
 
 #
-# Namespace: misc #TODO: partly to be refactored
+# Namespace: misc #TODO: refactor
 #
 
 
@@ -145,40 +162,6 @@ ignore(fade_in_time)
 ignore(fade_out_time)
 
 
-# Activate a source by selecting it and setting the volume to 100 (or vice versa)
-
-def activate(p) =
-    params=string.split(separator=" ", p)
-    if list.length(params) < 2 then
-        print(p)
-        "Usage: mixer.activate <source nb> <true|false>"
-    else
-        source_number = list.nth(default="0", params, 0)
-        source_enable = list.nth(default="false", params, 1)
-
-        if source_enable == "true" then
-            r = server.execute("mixer.select #{source_number} true")
-            print(r)
-            r = server.execute("mixer.volume #{source_number} 100")
-            print(r)
-        else
-            r = server.execute("mixer.volume #{source_number} 0")
-            print(r)
-            r = server.execute("mixer.select #{source_number} false")
-            print(r)
-        end
-        "Done!"
-    end
-end
-
-server.register(namespace = "mixer",
-    description = "is selecting a source and setting the volume to 100",
-    usage = "activate <source nb> <true|false>",
-    "activate",
-    activate
-)
-
-
 def icy_update(v) =
 
   # Parse the argument