diff --git a/inc/Services/EventActionService.hpp b/inc/Services/EventActionService.hpp
index 3b561617d2cbe76b4423b6bcc83035c3fc5af79e..974a65266071b34d62fe88cd9e678914893fcff3 100644
--- a/inc/Services/EventActionService.hpp
+++ b/inc/Services/EventActionService.hpp
@@ -5,7 +5,6 @@
 #define ECSS_EVENT_ACTION_STRUCT_ARRAY_SIZE 256
 
 #include "Service.hpp"
-#include "MessageParser.hpp"
 #include "etl/String.hpp"
 #include <Services/EventReportService.hpp>
 
@@ -120,6 +119,14 @@ public:
 		return eventActionFunctionStatus;
 	}
 
+	/**
+	 * It is responsible to call the suitable function that executes a telecommand packet. The source of that packet
+	 * is the ground station.
+	 *
+	 * @note This function is called from the main execute() that is defined in the file MessageParser.hpp
+	 * @param message Contains the necessary parameters to call the suitable subservice
+	 */
+	void execute(const Message &message);
 };
 
 #endif //ECSS_SERVICES_EVENTACTIONSERVICE_HPP
diff --git a/inc/Services/EventReportService.hpp b/inc/Services/EventReportService.hpp
index fdb32c0c5b9ea143c031d1efeaad730f5cd8e822..842afe02dc29fa0c708784f0ee188970c2830079 100644
--- a/inc/Services/EventReportService.hpp
+++ b/inc/Services/EventReportService.hpp
@@ -3,6 +3,7 @@
 
 #include "Service.hpp"
 #include <etl/bitset.h>
+
 /**
  * Implementation of ST[05] event reporting service
  *
@@ -173,6 +174,15 @@ public:
 	etl::bitset<numberOfEvents> getStateOfEvents() {
 		return stateOfEvents;
 	}
+
+	/**
+	 * It is responsible to call the suitable function that executes a telecommand packet. The source of that packet
+	 * is the ground station.
+	 *
+	 * @note This function is called from the main execute() that is defined in the file MessageParser.hpp
+	 * @param param Contains the necessary parameters to call the suitable subservice
+	 */
+	void execute(const Message &message);
 };
 
 #endif //ECSS_SERVICES_EVENTREPORTSERVICE_HPP
diff --git a/inc/Services/FunctionManagementService.hpp b/inc/Services/FunctionManagementService.hpp
index 2267f7ea112afabefbb97adce73d4844ad40a883..a48874393261a383502e47548d7b05584c066d6e 100644
--- a/inc/Services/FunctionManagementService.hpp
+++ b/inc/Services/FunctionManagementService.hpp
@@ -81,7 +81,7 @@ public:
 
 	/**
 	 * Includes a new function in the pointer map. This enables it to be called by way of a valid
-	 * TC [8,1] message.
+	 * TC[8,1] message.
 	 *
 	 * @param funcName the function's name. Max. length is FUNC_NAME_LENGTH bytes.
 	 * @param ptr pointer to a function of void return type and a MAX_ARG_LENGTH-lengthed byte
@@ -90,6 +90,15 @@ public:
 	void include(String<FUNC_NAME_LENGTH> funcName, void(*ptr)(String<MAX_ARG_LENGTH>));
 
 	int getMapSize() { return funcPtrIndex.size(); }
+
+	/**
+	 * It is responsible to call the suitable function that executes a telecommand packet. The source of that packet
+	 * is the ground station.
+	 *
+	 * @note This function is called from the main execute() that is defined in the file MessageParser.hpp
+	 * @param param Contains the necessary parameters to call the suitable subservice
+	 */
+	void execute(Message &param);
 };
 
 #endif //ECSS_SERVICES_FUNCTIONMANAGEMENTSERVICE_HPP
diff --git a/inc/Services/MemoryManagementService.hpp b/inc/Services/MemoryManagementService.hpp
index 5cd3c16da1f43a2f62d741553052dbae2eeb319c..418a0cbdaa6e5dd33104c46bb005d9d4bc2879ff 100644
--- a/inc/Services/MemoryManagementService.hpp
+++ b/inc/Services/MemoryManagementService.hpp
@@ -71,6 +71,15 @@ public:
 		 * @todo Only allow aligned memory address to be start addresses
 		 */
 		void checkRawData(Message &request);
+
+		/**
+		 * It is responsible to call the suitable function that executes a telecommand packet. The source of that packet
+		 * is the ground station.
+		 *
+		 * @note This function is called from the main execute() that is defined in the file MessageParser.hpp
+		 * @param param Contains the necessary parameters to call the suitable subservice
+		 */
+		void execute(Message &message);
 	} rawDataMemorySubservice;
 
 private:
diff --git a/inc/Services/ParameterService.hpp b/inc/Services/ParameterService.hpp
index 5672b3c6bbbc9cca8983937c075f43dae6b733d2..e6d1aa58229b68617e8ef3de300faec3c894174b 100644
--- a/inc/Services/ParameterService.hpp
+++ b/inc/Services/ParameterService.hpp
@@ -87,6 +87,15 @@ public:
 	 */
 	void setParameterIds(Message& newParamValues);
 
+	/**
+	 * It is responsible to call the suitable function that executes a telecommand packet. The source of that packet
+	 * is the ground station.
+	 *
+	 * @note This function is called from the main execute() that is defined in the file MessageParser.hpp
+	 * @param param Contains the necessary parameters to call the suitable subservice
+	 */
+	void execute(Message &message);
+
 };
 
 #endif //ECSS_SERVICES_PARAMETERSERVICE_HPP
diff --git a/inc/Services/RequestVerificationService.hpp b/inc/Services/RequestVerificationService.hpp
index 846695c33cca54c3052bebedf913a34def618104..571fb63a8a0ac9c5a38512d6d5d84c4f33e89bcc 100644
--- a/inc/Services/RequestVerificationService.hpp
+++ b/inc/Services/RequestVerificationService.hpp
@@ -120,15 +120,6 @@ public:
 	 * @param errorCode The cause of creating this type of report
  	 */
 	void failRoutingVerification(const Message &request, ErrorHandler::RoutingErrorType errorCode);
-
-	/**
-	 * It is responsible to call the suitable function that execute the proper subservice. The
-	 * way that the subservices are selected is for the time being based on the messageType(class
-	 * member of class Message) of the param message
-	 *
-	 * Note: The functions of this service takes dummy values as arguments for the time being
-	 */
-	void execute(const Message &message);
 };
 
 
diff --git a/inc/Services/TimeBasedSchedulingService.hpp b/inc/Services/TimeBasedSchedulingService.hpp
index 76343b5d76fa5aac07e9a59f29899ec00769e4bd..cd6b6e03dd701a0a00d44dd8a2bc3cc1a782e5ee 100644
--- a/inc/Services/TimeBasedSchedulingService.hpp
+++ b/inc/Services/TimeBasedSchedulingService.hpp
@@ -245,6 +245,15 @@ public:
 	 * start of execution for that specific instruction.
 	 */
 	void timeShiftActivitiesByID(Message &request);
+
+	/**
+	 * It is responsible to call the suitable function that executes a telecommand packet. The source of that packet
+	 * is the ground station.
+	 *
+	 * @note This function is called from the main execute() that is defined in the file MessageParser.hpp
+	 * @param message Contains the necessary parameters to call the suitable subservice
+	 */
+	void execute(Message &message);
 };
 
 #endif //ECSS_SERVICES_TIMEBASEDSCHEDULINGSERVICE_HPP
diff --git a/inc/Services/TimeManagementService.hpp b/inc/Services/TimeManagementService.hpp
index d50b0f74bd9d188183c6704a80c969f64159453c..073d2a50d7363ee2f6d746a475cd6307e0cd309b 100644
--- a/inc/Services/TimeManagementService.hpp
+++ b/inc/Services/TimeManagementService.hpp
@@ -62,6 +62,15 @@ public:
 	 * should be a fixed size of 48 bits
 	 */
 	 TimeAndDate cdsTimeRequest(Message &message);
+
+	/**
+	 * It is responsible to call the suitable function that executes a telecommand packet. The source of that packet
+	 * is the ground station.
+	 *
+	 * @note This function is called from the main execute() that is defined in the file MessageParser.hpp
+	 * @param message Contains the necessary parameters to call the suitable subservice
+	 */
+	void execute(Message &message);
 };