diff --git a/package.xml b/package.xml
index 1b50c41b412eb3ab833366dc1253e734eaf32a0a..a9d56f27237e511dc685fbf78b12f2eb579a9360 100644
--- a/package.xml
+++ b/package.xml
@@ -7,7 +7,7 @@
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
   <!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
-  <maintainer email="tompe@todo.todo">tompe</maintainer>
+  <maintainer email="tommy.persson@liu.se">tompe</maintainer>
 
 
   <!-- One license tag required, multiple allowed, one license per tag -->
diff --git a/src/gen_msgs_srvs_acions.py b/src/gen_msgs_srvs_acions.py
index f521e6e49a2cfcf271d7adf2d3c7d84dcba5bc9c..3d43e338ea762d6907b180b11a179a0ba90509b4 100755
--- a/src/gen_msgs_srvs_acions.py
+++ b/src/gen_msgs_srvs_acions.py
@@ -32,6 +32,40 @@ def gen_task_params_msg(jobj, prefix):
             s += f'string {name}\n'
     return s
 
+def gen_task_signal_service(prefix):
+    s = ""
+    s += "string uuid   # uuid for the started task\n"
+    s += "string signal # Standard: \"$abort\", \"$pause\", \"$continue\", \"$enough\"\n"
+    s += "---\n"
+    s += "bool success\n"
+    s += "int32 error\n"
+    s += "string reason\n"
+    return s
+    
+def gen_task_check_service(prefix):
+    s = ""
+    s += f'lrs_task_msgs/{prefix}Task task\n'
+    s += "---\n"
+    s += "bool success\n"
+    s += "int32 error\n"
+    s += "string reason\n"
+    return s
+    
+def gen_task_start_action(prefix):
+    s = ""
+    s += "string uuid   # uuid that are used in signal service call to send signals to the running action\n"
+    s += f'lrs_task_msgs/{prefix}Task task\n'
+    s += "---\n"
+    s += "string signal_received\n"
+    s += "bool paused\n"
+    s += "---\n"
+    s += "bool success\n"
+    s += "string fail_reason\n"
+    s += "bool aborted\n"    
+    s += "bool enoughed"    
+    return s
+
+
 def get_msg_name_prefix(taskname):
     #print("TASKNAME:", taskname, taskname.split("-"))
     lst = [el[0].upper() + el[1:] for el in taskname.split("-")]
@@ -50,14 +84,15 @@ if __name__ == '__main__':
         print("TASK:", objstr)
         taskname = obj["key"]
         msgprefix = get_msg_name_prefix(taskname)
-        print(taskname, msgprefix)
-        print("========================")        
+        # print(taskname, msgprefix)
         tmsg = gen_task_msg(obj, msgprefix)
-        print(tmsg)
-        print("========================")
         tpmsg = gen_task_params_msg(obj, msgprefix)
-        print(tpmsg)
-        print("========================")
+        tstartaction = gen_task_start_action(msgprefix)
+        tsignalservice = gen_task_signal_service(msgprefix)
+        tcheckservice = gen_task_check_service(msgprefix)
 
         open(f'{options.outdir}/msg/{msgprefix}Task.msg', "w").write(tmsg)
         open(f'{options.outdir}/msg/{msgprefix}TaskParams.msg', "w").write(tpmsg)
+        open(f'{options.outdir}/action/{msgprefix}Start.action', "w").write(tstartaction)
+        open(f'{options.outdir}/srv/{msgprefix}Signal.srv', "w").write(tsignalservice)
+        open(f'{options.outdir}/srv/{msgprefix}Check.srv', "w").write(tcheckservice)