diff --git a/src/rest/controllers/internal_controller.py b/src/rest/controllers/internal_controller.py
index 8802e363bf5b96d39b144d182e761bd70ac7af0b..41a73dae8cce87dadf011d0ecb914184c04042c1 100644
--- a/src/rest/controllers/internal_controller.py
+++ b/src/rest/controllers/internal_controller.py
@@ -1,6 +1,8 @@
 import connexion
 import six
 
+from flask import current_app
+
 from src.rest.models.clock_info import ClockInfo  # noqa: E501
 from src.rest.models.health_log import HealthLog  # noqa: E501
 from src.rest.models.inline_response400 import InlineResponse400  # noqa: E501
@@ -21,7 +23,7 @@ def add_playlog(body):  # noqa: E501
     if connexion.request.is_json:
         body = PlayLog.from_dict(connexion.request.get_json())  # noqa: E501
     service = current_app.config['SERVICE']
-    service.store_playlog(body)
+    return service.store_playlog(body)
 
 
 def clock_info():  # noqa: E501
@@ -43,7 +45,8 @@ def get_active_source():  # noqa: E501
 
     :rtype: int
     """
-    return 'do some magic!'
+    service = current_app.config['SERVICE']
+    return service.get_active_source()
 
 
 def get_report(year_month):  # noqa: E501
@@ -116,4 +119,5 @@ def set_active_source(number):  # noqa: E501
 
     :rtype: None
     """
-    return 'do some magic!'
+    service = current_app.config['SERVICE']
+    return service.set_active_source(number)
diff --git a/src/rest/controllers/public_controller.py b/src/rest/controllers/public_controller.py
index bc833476e3a22ea7a651dbed38443af844eea938..43328ca0aa4cf9cac2eac9d57237c25e94daca9f 100644
--- a/src/rest/controllers/public_controller.py
+++ b/src/rest/controllers/public_controller.py
@@ -1,10 +1,11 @@
 import connexion
 import six
 
+from flask import current_app
+
 from src.rest.models.play_log import PlayLog  # noqa: E501
 from src.rest import util
 
-from flask import current_app
 
 def current_track():  # noqa: E501
     """Get current track
diff --git a/src/service.py b/src/service.py
index a3152bdeabb6d1ac3034c4fc7b727ec999e5a329..1852fdca7347906fe3bde3e22b06afc9f6d9a3b3 100644
--- a/src/service.py
+++ b/src/service.py
@@ -21,7 +21,7 @@ import datetime
 import requests
 
 from enum import Enum
-from models import PlayLog, PlayLogSchema, TrackSchema
+from models import PlayLog, PlayLogSchema, TrackSchema, ActivityLog
 
 
 class NodeType(Enum):
@@ -78,14 +78,14 @@ class ApiService():
                 msg = "Pushing data to '%s'" % (self.sync_host)
 
         # Set active source
-        self.active_source = ActivityLog.get_active_source()
+        self.active_source = ActivityLog.get_active_source().source_number
         if not self.active_source:
             if self.node_type == NodeType.MAIN:
                 source_number = self.config.get("host_id")
             else:
                 source_number = self.config.get("default_source")
             self.set_active_source(source_number)
-        self.logger("Active source: %s" % self.active_source)
+        self.logger.info("Active source: %s" % self.active_source)
 
         self.logger.info("Running in '%s' mode. %s." % (self.node_type, msg))
 
@@ -190,10 +190,10 @@ class ApiService():
         Args:
             source_number (Integer): Number of the engine
         """
-        if self.active_source > 0:
+        if source_number > 0:
             if self.active_source != source_number:
                 self.active_source = source_number
-                activity_log = ActivityLog(active_source)
+                activity_log = ActivityLog(source_number)
                 activity_log.save()