diff --git a/src/MessageParser.cpp b/src/MessageParser.cpp
index 91ac9ddca19feb1e2a27b349222d2602fffe2ac2..7466092a9419d6d1b6b750d73bd5ee01e57a9797 100644
--- a/src/MessageParser.cpp
+++ b/src/MessageParser.cpp
@@ -80,6 +80,6 @@ Message MessageParser::parseRequestTC(String<64> data) {
 	Message message;
 	uint8_t *dataInt = reinterpret_cast<uint8_t *>(data.data());
 	message.packetType = Message::TC;
-	parseTC(dataInt, 256, message); // Maybe instead of 256 shoule there be a variable?
+	parseTC(dataInt, 64, message); // Maybe instead of 256 should there be a variable?
 	return message;
 }
diff --git a/src/Services/EventActionService.cpp b/src/Services/EventActionService.cpp
index 352261c32d123357b0433c303dcd6769a0324148..fb4e0eb9799f4f76a885b2343e666e6a4403661f 100644
--- a/src/Services/EventActionService.cpp
+++ b/src/Services/EventActionService.cpp
@@ -30,6 +30,7 @@ void EventActionService::addEventActionDefinitions(Message message) {
 			// message.dataSize - 5
 			message.readString(data, message.dataSize);
 			eventActionDefinitionArray[index].request = String<64>(data);
+			stateOfEventAction[index] = 1;
 		}
 	}
 }
@@ -39,7 +40,7 @@ void EventActionService::deleteEventActionDefinitions(Message message) {
 	if (message.messageType == 2 && message.packetType == Message::TC && message.serviceType
 	                                                                     == 19) {
 		uint16_t N = message.readUint16();
-		uint8_t index = 0;
+		uint16_t index = 0;
 		for (uint16_t i = 0; i < N; i++) {
 			uint16_t applicationID = message.readEnum16();
 			uint16_t eventDefinitionID = message.readEnum16();
@@ -50,6 +51,7 @@ void EventActionService::deleteEventActionDefinitions(Message message) {
 					eventActionDefinitionArray[index].eventDefinitionID = 65535;
 					eventActionDefinitionArray[index].request = "";
 					eventActionDefinitionArray[index].applicationId = 0;
+					stateOfEventAction[index] = 0;
 				}
 				index++;
 			}
@@ -79,7 +81,7 @@ void EventActionService::enableEventActionDefinitions(Message message) {
 	if (message.messageType == 4 && message.packetType == Message::TC && message.serviceType
 	                                                                     == 19) {
 		uint16_t N = message.readUint16();
-		uint8_t index = 0;
+		uint16_t index = 0;
 		for (uint16_t i = 0; i < N; i++) {
 			uint16_t applicationID = message.readEnum16();
 			uint16_t eventDefinitionID = message.readEnum16();
@@ -100,11 +102,11 @@ void EventActionService::disableEventActionDefinitions(Message message) {
 	if (message.messageType == 5 && message.packetType == Message::TC && message.serviceType
 	                                                                     == 19) {
 		uint16_t N = message.readUint16();
-		uint8_t index = 0;
+		uint16_t index = 0;
 		for (uint16_t i = 0; i < N; i++) {
 			uint16_t applicationID = message.readEnum16();
 			uint16_t eventDefinitionID = message.readEnum16();
-			while (index < 255) {
+			while (index < 256) {
 				if (eventActionDefinitionArray[index].applicationId == applicationID &&
 				    eventActionDefinitionArray[index].eventDefinitionID == eventDefinitionID) {
 					stateOfEventAction[index] = 0;
diff --git a/src/main.cpp b/src/main.cpp
index b5e55371ee00162dc138f66858daa086bc1bbdab..1adbf2abcea65d5a2be001cfd456a2f2e440cd57 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -183,7 +183,7 @@ int main() {
 
 	// ST[05] (5,5 to 5,8) test [works]
 	EventReportService::Event eventIDs[] = {EventReportService::HighSeverityUnknownEvent,
-										 EventReportService::MediumSeverityUnknownEvent};
+	                                        EventReportService::MediumSeverityUnknownEvent};
 	EventReportService::Event eventIDs2[] = {EventReportService::HighSeverityUnknownEvent};
 	Message eventMessage(5, 6, Message::TC, 1);
 	eventMessage.appendUint16(2);
@@ -200,17 +200,65 @@ int main() {
 	eventReportService.enableReportGeneration(eventMessage2);
 	eventReportService.requestListOfDisabledEvents(eventMessage3);
 
-	//ST[19] test
+	// ST[19] test
 
 	EventActionService eventActionService;
-	char checkstring[256];
 	Message eventActionDefinition(19, 1, Message::TC, 1);
 	eventActionDefinition.appendEnum16(0);
 	eventActionDefinition.appendEnum16(2);
 	String<64> TCdata = "hi";
-
 	eventActionDefinition.appendString(TCdata);
 	eventActionService.addEventActionDefinitions(eventActionDefinition);
+	Message eventActionDefinition1(19, 1, Message::TC, 1);
+	eventActionDefinition1.appendEnum16(0);
+	eventActionDefinition1.appendEnum16(2);
+	TCdata = "hi1";
+	eventActionDefinition1.appendString(TCdata);
+	eventActionService.addEventActionDefinitions(eventActionDefinition1);
+	Message eventActionDefinition2(19, 1, Message::TC, 1);
+	eventActionDefinition2.appendEnum16(0);
+	eventActionDefinition2.appendEnum16(3);
+	TCdata = "hi2";
+	eventActionDefinition2.appendString(TCdata);
+	eventActionService.addEventActionDefinitions(eventActionDefinition2);
+	Message eventActionDefinition3(19, 5, Message::TC, 1);
+	eventActionDefinition3.appendUint16(2);
+	eventActionDefinition3.appendUint16(0);
+	eventActionDefinition3.appendUint16(2);
+	eventActionDefinition3.appendUint16(0);
+	eventActionDefinition3.appendUint16(3);
+
+	eventActionService.disableEventActionDefinitions(eventActionDefinition3);
+	std::cout << "Status of position 0,1,2 should be 000:" << eventActionService
+		.stateOfEventAction[0] << eventActionService.stateOfEventAction[1] << eventActionService
+		          .stateOfEventAction[2];
+
+	Message eventActionDefinition5(19, 4, Message::TC, 1);
+	eventActionDefinition5.appendUint16(2);
+	eventActionDefinition5.appendUint16(0);
+	eventActionDefinition5.appendUint16(2);
+	eventActionDefinition5.appendUint16(0);
+	eventActionDefinition5.appendUint16(3);
+	eventActionService.enableEventActionDefinitions(eventActionDefinition5);
+	std::cout << "\nStatus of position 0,1,2 should be 111:" << eventActionService
+		.stateOfEventAction[0] << eventActionService.stateOfEventAction[1] << eventActionService
+		          .stateOfEventAction[2];
+
+	Message eventActionDefinition4(19, 2, Message::TC, 1);
+	eventActionDefinition4.appendUint16(1);
+	eventActionDefinition4.appendUint16(0);
+	eventActionDefinition4.appendUint16(2);
+
+	eventActionService.deleteEventActionDefinitions(eventActionDefinition4);
+	std::cout << "\nPositions 0,1 empty should be 11:" << (uint16_t) eventActionService
+		.eventActionDefinitionArray[0].empty
+	          << (uint16_t) eventActionService.eventActionDefinitionArray[1].empty;
+
+	Message eventActionDefinition6(19, 3, Message::TC, 1);
+	eventActionService.deleteAllEventActionDefinitions(eventActionDefinition6);
+	std::cout << "\nPositions 0,1 empty should be 1:" << (uint16_t) eventActionService
+		.eventActionDefinitionArray[0].empty;
+
 
 	return 0;
 }