diff --git a/src/main/java/tmltranslator/mutations/AddAttributeMutation.java b/src/main/java/tmltranslator/mutations/AddAttributeMutation.java
index 202483a2f7af773740ddf50eb82977c97a590da7..14e119630b9d7baa306080718a1f05c3a7e03628 100644
--- a/src/main/java/tmltranslator/mutations/AddAttributeMutation.java
+++ b/src/main/java/tmltranslator/mutations/AddAttributeMutation.java
@@ -89,7 +89,7 @@ public class AddAttributeMutation extends AttributeMutation {
         String[] tokens = DiplodocusMutationParser.tokenise(toParse);
         AddAttributeMutation mutation = null;
 
-        int index = DiplodocusMutationParser.indexOf(tokens, "ATTRIBUTE");
+        int index = DiplodocusMutationParser.indexOf(tokens, DiplodocusMutationParser.ATTRIBUTE);
         if (tokens.length <= index + 2) {
             throw new ParseDiplodocusMutationException("Missing attribute arguments. Expected format is add attribute type name[=val] in taskName");
         }
@@ -101,7 +101,7 @@ public class AddAttributeMutation extends AttributeMutation {
                     "type is int or bool.");
         }
 
-        index = DiplodocusMutationParser.indexOf(tokens, "IN");
+        index = DiplodocusMutationParser.indexOf(tokens, DiplodocusMutationParser.IN);
         if (tokens.length == index + 1 || index == -1) {
             throw new ParseDiplodocusMutationException("Missing task name. Expected format is add attribute type name[=val] in taskName");
         }
diff --git a/src/main/java/tmltranslator/mutations/AddDataConnectionMutation.java b/src/main/java/tmltranslator/mutations/AddDataConnectionMutation.java
index 7f8bfdb1ca4102a1c9ea65999efd17012aba9ef5..829a8a23b3c2c855b7622f8fb2ea0a5d45de6b4e 100644
--- a/src/main/java/tmltranslator/mutations/AddDataConnectionMutation.java
+++ b/src/main/java/tmltranslator/mutations/AddDataConnectionMutation.java
@@ -74,13 +74,13 @@ public class AddDataConnectionMutation extends DataConnectionMutation{
         channel.setOriginTask(_originTask);
         channel.setDestinationTask(_destinationTask);
         channel.setMax(8);
-        if (getConnectionSemantics() == "BRBW"){
+        if (getConnectionSemantics() == DiplodocusMutationParser.BRBW){
             channel.setType(TMLChannel.BRBW);
         }
-        if (getConnectionSemantics() == "BRNBW"){
+        if (getConnectionSemantics() == DiplodocusMutationParser.BRNBW){
             channel.setType(TMLChannel.BRNBW);
         }
-        if (getConnectionSemantics() == "NBRNBW"){
+        if (getConnectionSemantics() == DiplodocusMutationParser.NBRNBW){
             channel.setType(TMLChannel.NBRNBW);
         }
         if (size == -1){
@@ -101,7 +101,7 @@ public class AddDataConnectionMutation extends DataConnectionMutation{
         AddDataConnectionMutation mutation = null;
         String[] tokens = DiplodocusMutationParser.tokenise(toParse);
 
-        int index = DiplodocusMutationParser.indexOf(tokens,"BETWEEN");
+        int index = DiplodocusMutationParser.indexOf(tokens,DiplodocusMutationParser.BETWEEN);
         if (tokens.length <= index + 3) {
             throw new ParseDiplodocusMutationException("Missing task name. Expected syntax is add data connection connectionName between " +
                     "originTaskName and destinationTaskName");
@@ -109,26 +109,26 @@ public class AddDataConnectionMutation extends DataConnectionMutation{
         String _originTaskName = tokens[index+1];
         String _destinationTaskName = tokens[index+3];
 
-        if (tokens[index-1].toUpperCase().equals("CONNECTION")){
+        if (tokens[index-1].toUpperCase().equals(DiplodocusMutationParser.CONNECTION)){
             throw new ParseDiplodocusMutationException("Missing or invalid connection name. Expected syntax is add data connection connectionName " +
                     "between originTaskName and destinationTaskName with connectionName != 'connection'");
         }
         String _connectionName = tokens[index-1];
 
-        index = DiplodocusMutationParser.indexOf(tokens, "DATA");
-        if (tokens[index-1].toUpperCase().equals("ADD")){
-            mutation = new AddDataConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, "BRBW");
-        } else if (tokens[index-1].toUpperCase().equals("BRNBW")){
-            mutation = new AddDataConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, "BRNBW");
-        } else if (tokens[index-1].toUpperCase().equals("NBRNBW")){
-            mutation = new AddDataConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, "NBRNBW");
-        } else if (tokens[index-1].toUpperCase().equals("BRBW")){
+        index = DiplodocusMutationParser.indexOf(tokens, DiplodocusMutationParser.DATA);
+        if (tokens[index-1].toUpperCase().equals(DiplodocusMutationParser.ADD)){
+            mutation = new AddDataConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, DiplodocusMutationParser.BRBW);
+        } else if (tokens[index-1].toUpperCase().equals(DiplodocusMutationParser.BRNBW)){
+            mutation = new AddDataConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, DiplodocusMutationParser.BRNBW);
+        } else if (tokens[index-1].toUpperCase().equals(DiplodocusMutationParser.NBRNBW)){
+            mutation = new AddDataConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, DiplodocusMutationParser.NBRNBW);
+        } else if (tokens[index-1].toUpperCase().equals(DiplodocusMutationParser.BRBW)){
             throw new ParseDiplodocusMutationException("Missing channel width. Expected syntax is add BRBW,integerValue data connection connectionName between originTaskName and destinationTaskName");
-        } else if (tokens[index-2].toUpperCase().equals("BRBW") && tokens[index-1].equals(",")){
+        } else if (tokens[index-2].toUpperCase().equals(DiplodocusMutationParser.BRBW) && tokens[index-1].equals(",")){
             throw new ParseDiplodocusMutationException("Missing channel width. Expected syntax is add BRBW,integerValue data connection connectionName between originTaskName and destinationTaskName");
-        } else if (tokens[index-3].toUpperCase().equals("BRBW") && tokens[index-2].equals(",") && isNumeric(tokens[index-1])){
-            mutation = new AddDataConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, "BRBW", Integer.valueOf(tokens[index-1]));
-        } else if (tokens[index-3].toUpperCase().equals("BRBW") && tokens[index-2].equals(",") && !isNumeric(tokens[index-1])){
+        } else if (tokens[index-3].toUpperCase().equals(DiplodocusMutationParser.BRBW) && tokens[index-2].equals(",") && isNumeric(tokens[index-1])){
+            mutation = new AddDataConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, DiplodocusMutationParser.BRBW, Integer.valueOf(tokens[index-1]));
+        } else if (tokens[index-3].toUpperCase().equals(DiplodocusMutationParser.BRBW) && tokens[index-2].equals(",") && !isNumeric(tokens[index-1])){
             throw new ParseDiplodocusMutationException("Channel width must be an integer written with Arabic digits.");
         }
 
diff --git a/src/main/java/tmltranslator/mutations/AddEventConnectionMutation.java b/src/main/java/tmltranslator/mutations/AddEventConnectionMutation.java
index f1678393e005ca278a37357d37c8c57e12168308..c764278f249eff3c342034d1dc44e070c58cab6b 100644
--- a/src/main/java/tmltranslator/mutations/AddEventConnectionMutation.java
+++ b/src/main/java/tmltranslator/mutations/AddEventConnectionMutation.java
@@ -80,12 +80,12 @@ public class AddEventConnectionMutation extends EventConnectionMutation{
         event.setOriginTask(_originTask);
         event.setDestinationTask(_destinationTask);
 
-        if (getConnectionSemantics() == "INFINITE"){
+        if (getConnectionSemantics() == DiplodocusMutationParser.INFINITE){
             event.setBlocking(false);
             event.setSizeFIFO(-1);
-        } else if (getConnectionSemantics() == "FINITEBLOCKING"){
+        } else if (getConnectionSemantics() == DiplodocusMutationParser.FINITEBLOCKING){
             event.setBlocking(true);
-        } else if (getConnectionSemantics() == "FINITENONBLOCKING"){
+        } else if (getConnectionSemantics() == DiplodocusMutationParser.FINITENONBLOCKING){
             event.setBlocking(false);
         }
 
@@ -115,7 +115,7 @@ public class AddEventConnectionMutation extends EventConnectionMutation{
         AddEventConnectionMutation mutation = null;
         String[] tokens = DiplodocusMutationParser.tokenise(toParse);
 
-        int index = DiplodocusMutationParser.indexOf(tokens,"BETWEEN");
+        int index = DiplodocusMutationParser.indexOf(tokens,DiplodocusMutationParser.BETWEEN);
         if (tokens.length <= index + 3) {
             throw new ParseDiplodocusMutationException("Missing task name. Expected syntax is add event connection connectionName between " +
                     "originTaskName and destinationTaskName");
@@ -123,7 +123,7 @@ public class AddEventConnectionMutation extends EventConnectionMutation{
         String _originTaskName = tokens[index+1];
         String _destinationTaskName = tokens[index+3];
 
-        if (tokens[index-1].toUpperCase().equals("CONNECTION")){
+        if (tokens[index-1].toUpperCase().equals(DiplodocusMutationParser.CONNECTION)){
             throw new ParseDiplodocusMutationException("Missing or invalid connection name. Expected syntax is add event connection connectionName " +
                     "between originTaskName and destinationTaskName with connectionName != 'connection'");
         }
@@ -139,30 +139,30 @@ public class AddEventConnectionMutation extends EventConnectionMutation{
             _connectionName = tokens[index - 1];
         }
 
-        index = DiplodocusMutationParser.indexOf(tokens, "EVENT");
-        if (tokens[index-1].toUpperCase().equals("ADD")){
-            mutation = new AddEventConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, "FINITEBLOCKING", 4);
-        } else if (tokens[index-1].toUpperCase().equals("INFINITE")){
-            mutation = new AddEventConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, "INFINITE");
-        } else if (tokens[index-1].toUpperCase().equals("FINITEBLOCKING")){
+        index = DiplodocusMutationParser.indexOf(tokens, DiplodocusMutationParser.EVENT);
+        if (tokens[index-1].toUpperCase().equals(DiplodocusMutationParser.ADD)){
+            mutation = new AddEventConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, DiplodocusMutationParser.FINITEBLOCKING, 4);
+        } else if (tokens[index-1].toUpperCase().equals(DiplodocusMutationParser.INFINITE)){
+            mutation = new AddEventConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, DiplodocusMutationParser.INFINITE);
+        } else if (tokens[index-1].toUpperCase().equals(DiplodocusMutationParser.FINITEBLOCKING)){
             throw new ParseDiplodocusMutationException("Missing event width. Expected syntax is add finiteBlocking,integerValue event connection " +
                     "connectionName between originTaskName and destinationTaskName");
-        } else if (tokens[index-1].toUpperCase().equals("FINITENONBLOCKING")){
+        } else if (tokens[index-1].toUpperCase().equals(DiplodocusMutationParser.FINITENONBLOCKING)){
             throw new ParseDiplodocusMutationException("Missing event width. Expected syntax is add finiteNonBlocking,integerValue event connection" +
                     " connectionName between originTaskName and destinationTaskName");
-        } else if (tokens[index-2].toUpperCase().equals("FINITEBLOCKING") && tokens[index-1].equals(",")){
+        } else if (tokens[index-2].toUpperCase().equals(DiplodocusMutationParser.FINITEBLOCKING) && tokens[index-1].equals(",")){
             throw new ParseDiplodocusMutationException("Missing event width. Expected syntax is add finiteBlocking,integerValue event connection " +
                     "connectionName between originTaskName and destinationTaskName");
-        } else if (tokens[index-2].toUpperCase().equals("FINITENONBLOCKING") && tokens[index-1].equals(",")){
+        } else if (tokens[index-2].toUpperCase().equals(DiplodocusMutationParser.FINITENONBLOCKING) && tokens[index-1].equals(",")){
             throw new ParseDiplodocusMutationException("Missing event width. Expected syntax is add finiteNonBlocking,integerValue event connection" +
                     " connectionName between originTaskName and destinationTaskName");
-        } else if (tokens[index-3].toUpperCase().equals("FINITEBLOCKING") && tokens[index-2].equals(",") && isNumeric(tokens[index-1])){
-            mutation = new AddEventConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, "FINITEBLOCKING", Integer.valueOf(tokens[index-1]));
-        } else if (tokens[index-3].toUpperCase().equals("FINITEBLOCKING") && tokens[index-2].equals(",") && !isNumeric(tokens[index-1])){
+        } else if (tokens[index-3].toUpperCase().equals(DiplodocusMutationParser.FINITEBLOCKING) && tokens[index-2].equals(",") && isNumeric(tokens[index-1])){
+            mutation = new AddEventConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, DiplodocusMutationParser.FINITEBLOCKING, Integer.valueOf(tokens[index-1]));
+        } else if (tokens[index-3].toUpperCase().equals(DiplodocusMutationParser.FINITEBLOCKING) && tokens[index-2].equals(",") && !isNumeric(tokens[index-1])){
             throw new ParseDiplodocusMutationException("Event width must be an integer written with Arabic digits.");
-        } else if (tokens[index-3].toUpperCase().equals("FINITENONBLOCKING") && tokens[index-2].equals(",") && isNumeric(tokens[index-1])) {
-            mutation = new AddEventConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, "FINITENONBLOCKING", Integer.valueOf(tokens[index - 1]));
-        } else if (tokens[index-3].toUpperCase().equals("FINITENONBLOCKING") && tokens[index-2].equals(",") && !isNumeric(tokens[index-1])){
+        } else if (tokens[index-3].toUpperCase().equals(DiplodocusMutationParser.FINITENONBLOCKING) && tokens[index-2].equals(",") && isNumeric(tokens[index-1])) {
+            mutation = new AddEventConnectionMutation(_originTaskName, _destinationTaskName, _connectionName, DiplodocusMutationParser.FINITENONBLOCKING, Integer.valueOf(tokens[index - 1]));
+        } else if (tokens[index-3].toUpperCase().equals(DiplodocusMutationParser.FINITENONBLOCKING) && tokens[index-2].equals(",") && !isNumeric(tokens[index-1])){
             throw new ParseDiplodocusMutationException("Event width must be an integer written with Arabic digits.");
         }
 
diff --git a/src/main/java/tmltranslator/mutations/AddRequestConnectionMutation.java b/src/main/java/tmltranslator/mutations/AddRequestConnectionMutation.java
index 20d81fd55fe6586c58a75f3c29d252d862d1196f..5a4588d102b7402e5bf1451da4f7f81683c93147 100644
--- a/src/main/java/tmltranslator/mutations/AddRequestConnectionMutation.java
+++ b/src/main/java/tmltranslator/mutations/AddRequestConnectionMutation.java
@@ -95,7 +95,7 @@ public class AddRequestConnectionMutation extends RequestConnectionMutation {
     public static AddRequestConnectionMutation createFromString (String toParse) throws ParseDiplodocusMutationException {
         String[] tokens = DiplodocusMutationParser.tokenise(toParse);
 
-        int index = DiplodocusMutationParser.indexOf(tokens,"BETWEEN");
+        int index = DiplodocusMutationParser.indexOf(tokens,DiplodocusMutationParser.BETWEEN);
         if (tokens.length <= index + 3) {
             throw new ParseDiplodocusMutationException("Missing task name. Expected syntax is add request connection connectionName between " +
                     "originTaskName and destinationTaskName");
@@ -103,7 +103,7 @@ public class AddRequestConnectionMutation extends RequestConnectionMutation {
         String _originTaskName = tokens[index+1];
         String _destinationTaskName = tokens[index+3];
 
-        if (tokens[index-1].toUpperCase().equals("CONNECTION")){
+        if (tokens[index-1].toUpperCase().equals(DiplodocusMutationParser.CONNECTION)){
             throw new ParseDiplodocusMutationException("Missing or invalid connection name. Expected syntax is add request connection " +
                     "connectionName between originTaskName and destinationTaskName with connectionName != 'connection'");
         }
diff --git a/src/main/java/tmltranslator/mutations/AddTaskMutation.java b/src/main/java/tmltranslator/mutations/AddTaskMutation.java
index 3a5ec45cac3786de95da316b4a510a9089f2e917..8c8d32bf9128c3cb9bf170df0b35193a6437b288 100644
--- a/src/main/java/tmltranslator/mutations/AddTaskMutation.java
+++ b/src/main/java/tmltranslator/mutations/AddTaskMutation.java
@@ -78,7 +78,7 @@ public class AddTaskMutation extends TaskMutation {
 
     public static AddTaskMutation createFromString(String toParse) throws ParseDiplodocusMutationException {
         String[] tokens = DiplodocusMutationParser.tokenise(toParse);
-        int index = DiplodocusMutationParser.indexOf(tokens, "TASK");
+        int index = DiplodocusMutationParser.indexOf(tokens, DiplodocusMutationParser.TASK);
         if (tokens.length == index + 1) {
             throw new ParseDiplodocusMutationException("Task name missing. Expected format is add task taskName");
         }
diff --git a/src/main/java/tmltranslator/mutations/AttributeMutation.java b/src/main/java/tmltranslator/mutations/AttributeMutation.java
index 84ba80e05d50556d20cc3cad8654ea1ced43388a..563bd959703838f32da5f8a5efb084a49d822e4c 100644
--- a/src/main/java/tmltranslator/mutations/AttributeMutation.java
+++ b/src/main/java/tmltranslator/mutations/AttributeMutation.java
@@ -82,10 +82,10 @@ public abstract class AttributeMutation extends TaskMutation{
 
     public static AttributeMutation createFromString(String toParse) throws ParseDiplodocusMutationException{
         switch (DiplodocusMutationParser.findMutationToken(toParse)){
-            case "ADD":
+            case DiplodocusMutationParser.ADD:
                 return AddAttributeMutation.createFromString(toParse);
-            case "RM":
-            case "REMOVE":
+            case DiplodocusMutationParser.RM:
+            case DiplodocusMutationParser.REMOVE:
                 return RemoveAttributeMutation.createFromString(toParse);
             default:
                 break;
diff --git a/src/main/java/tmltranslator/mutations/CloneTaskMutation.java b/src/main/java/tmltranslator/mutations/CloneTaskMutation.java
index 6571f8be6fb8837d92922386bb18bddaa3cce947..b8ccae0f9b36c7707e83c22d9445628302f13b53 100644
--- a/src/main/java/tmltranslator/mutations/CloneTaskMutation.java
+++ b/src/main/java/tmltranslator/mutations/CloneTaskMutation.java
@@ -92,13 +92,13 @@ public class CloneTaskMutation extends TaskMutation{
     public static CloneTaskMutation createFromString(String toParse) throws ParseDiplodocusMutationException{
         String[] tokens = DiplodocusMutationParser.tokenise(toParse);
 
-        int index = DiplodocusMutationParser.indexOf(tokens, "TASK");
+        int index = DiplodocusMutationParser.indexOf(tokens, DiplodocusMutationParser.TASK);
         if (tokens.length == index + 1) {
             throw new ParseDiplodocusMutationException("Task name missing. Expected format is clone task taskName in newTaskName");
         }
         String _taskName = tokens[index + 1];
 
-        index = DiplodocusMutationParser.indexOf(tokens,"IN");
+        index = DiplodocusMutationParser.indexOf(tokens,DiplodocusMutationParser.IN);
         if (tokens.length == index + 1) {
             throw new ParseDiplodocusMutationException("New task name missing. Expected format is clone task taskName in newTaskName");
         }
diff --git a/src/main/java/tmltranslator/mutations/ConnectionMutation.java b/src/main/java/tmltranslator/mutations/ConnectionMutation.java
index cdb0dc63c3c7e4402ff0176a04862aa246f6a420..fa5b4647c52970a012862f3f68d536ee1b361c3f 100644
--- a/src/main/java/tmltranslator/mutations/ConnectionMutation.java
+++ b/src/main/java/tmltranslator/mutations/ConnectionMutation.java
@@ -159,11 +159,11 @@ public abstract class ConnectionMutation extends DiplodocusMutation{
 
     public static ConnectionMutation createFromString(String toParse) throws ParseDiplodocusMutationException{
         switch (DiplodocusMutationParser.findConnectionTypeToken(toParse)) {
-            case "DATA":
+            case DiplodocusMutationParser.DATA:
                 return DataConnectionMutation.createFromString(toParse);
-            case "EVENT":
+            case DiplodocusMutationParser.EVENT:
                 return EventConnectionMutation.createFromString(toParse);
-            case "REQUEST":
+            case DiplodocusMutationParser.REQUEST:
                 return RequestConnectionMutation.createFromString(toParse);
             default:
                 break;
diff --git a/src/main/java/tmltranslator/mutations/DataConnectionMutation.java b/src/main/java/tmltranslator/mutations/DataConnectionMutation.java
index 1ff289701db52d35197e8c1052a1d1a2d78d1f2f..6716893a4fc9a3c3f0a7acaab03be8a2857f1158 100644
--- a/src/main/java/tmltranslator/mutations/DataConnectionMutation.java
+++ b/src/main/java/tmltranslator/mutations/DataConnectionMutation.java
@@ -100,10 +100,10 @@ public abstract class DataConnectionMutation extends ConnectionMutation{
 
     public static DataConnectionMutation createFromString(String toParse) throws ParseDiplodocusMutationException{
         switch (DiplodocusMutationParser.findMutationToken(toParse)) {
-            case "ADD":
+            case DiplodocusMutationParser.ADD:
                 return AddDataConnectionMutation.createFromString(toParse);
-            case "RM":
-            case "REMOVE":
+            case DiplodocusMutationParser.RM:
+            case DiplodocusMutationParser.REMOVE:
                 return RemoveDataConnectionMutation.createFromString(toParse);
             default:
                 break;
diff --git a/src/main/java/tmltranslator/mutations/DiplodocusMutation.java b/src/main/java/tmltranslator/mutations/DiplodocusMutation.java
index b474a34b0ed6d2b0a034da8946a3523a5d8d3545..e989bdd433504bb74bc6e86103d6eb730c9f0d51 100644
--- a/src/main/java/tmltranslator/mutations/DiplodocusMutation.java
+++ b/src/main/java/tmltranslator/mutations/DiplodocusMutation.java
@@ -61,11 +61,11 @@ public abstract class DiplodocusMutation {
         toParse = toParse.trim();
 
         switch (DiplodocusMutationParser.findElementToken(toParse)){
-            case "TASK":
+            case DiplodocusMutationParser.TASK:
                 return TaskMutation.createFromString(toParse);
-            case "ATTRIBUTE":
+            case DiplodocusMutationParser.ATTRIBUTE:
                 return AttributeMutation.createFromString(toParse);
-            case "CONNECTION":
+            case DiplodocusMutationParser.CONNECTION:
                 return ConnectionMutation.createFromString(toParse);
         }
         return null;
diff --git a/src/main/java/tmltranslator/mutations/DiplodocusMutationParser.java b/src/main/java/tmltranslator/mutations/DiplodocusMutationParser.java
index 5217f0596f2bc4029912625b926025d2fe34e8a5..871ceb0c98bf96256b4490b17e04dca57c5bb786 100644
--- a/src/main/java/tmltranslator/mutations/DiplodocusMutationParser.java
+++ b/src/main/java/tmltranslator/mutations/DiplodocusMutationParser.java
@@ -42,15 +42,41 @@ import java.util.UUID;
 
 public interface DiplodocusMutationParser {
 
-    public static final String[] MUTATION_TOKENS = {"ADD", "RM", "REMOVE", "MD", "MODIFY", "CLONE"};
-    /*public static final String[] ELEMENT_TOKENS = {"ATTRIBUTE", "METHOD", "INPUT", "OUTPUT", "STATE", "ACTION", "RANDOM", "SET", "RESET", "EXPIRE"
-            , "TRANSITION", "CONNECTION", "LINK", "SIGNAL", "BLOCK"};*/
-    public static final String[] ELEMENT_TOKENS = {"TASK", "CONNECTION", "PORT", "ATTRIBUTE"};
-    public static final String[] CONNECTION_TYPE_TOKEN = {"DATA", "EVENT", "REQUEST"};
-    public static final String[] INOUT_TOKENS = {"INPUT", "OUTPUT"};
-    public static final String[] KEYWORD_TOKENS = {"IN", "FROM", "TO", "WITH", "AND", "LATENCY", "AT", "BETWEEN"};
-    public static final String[] PUBLIC_TOKENS = {"PUBLIC", "PRIVATE"};
-    public static final String[] SEMANTICS_TOKENS = {"BRBW", "BRNBW", "NBRNBW", "INFINITE"};
+    public static final String ADD = "ADD";
+    public static final String REMOVE = "REMOVE";
+    public static final String RM = "RM";
+    public static final String CLONE = "CLONE";
+    public static final String MODIFY = "MODIFY";
+    public static final String MD = "MD";
+    public static final String TASK = "TASK";
+    public static final String CONNECTION = "CONNECTION";
+    public static final String PORT = "PORT";
+    public static final String ATTRIBUTE = "ATTRIBUTE";
+    public static final String DATA = "DATA";
+    public static final String EVENT = "EVENT";
+    public static final String REQUEST = "REQUEST";
+    public static final String INPUT = "INPUT";
+    public static final String OUTPUT = "OUTPUT";
+    public static final String IN = "IN";
+    public static final String FROM = "FROM";
+    public static final String TO = "TO";
+    public static final String AND = "AND";
+    public static final String WITH = "WITH";
+    public static final String AT = "AT";
+    public static final String BETWEEN = "BETWEEN";
+    public static final String BRBW = "BRBW";
+    public static final String BRNBW = "BRNBW";
+    public static final String NBRNBW = "NBRNBW";
+    public static final String INFINITE = "INFINITE";
+    public static final String FINITEBLOCKING = "FINITEBLOCKING";
+    public static final String FINITENONBLOCKING = "FINITENONBLOCKING";
+
+    public static final String[] MUTATION_TOKENS = {ADD, RM, REMOVE, MD, MODIFY, CLONE};
+    public static final String[] ELEMENT_TOKENS = {TASK, CONNECTION, PORT, ATTRIBUTE};
+    public static final String[] CONNECTION_TYPE_TOKEN = {DATA, EVENT, REQUEST};
+    public static final String[] INOUT_TOKENS = {INPUT, OUTPUT};
+    public static final String[] KEYWORD_TOKENS = {IN, FROM, TO, WITH, AND, AT, BETWEEN};
+    public static final String[] SEMANTICS_TOKENS = {BRBW, BRNBW, NBRNBW, INFINITE, FINITEBLOCKING, FINITENONBLOCKING};
 
     public static final int UNDEFINED_TYPE = -1;
     public static final int NAME_TYPE = 0;
@@ -159,14 +185,6 @@ public interface DiplodocusMutationParser {
         return findToken(str, KEYWORD_TOKENS);
     }
 
-    public static String findPublicToken(String[] arr) {
-        return findToken(arr, PUBLIC_TOKENS);
-    }
-
-    public static String findPublicToken(String str) {
-        return findToken(str, PUBLIC_TOKENS);
-    }
-
     public static String findSemanticsToken(String[] arr) {
         return findToken(arr, SEMANTICS_TOKENS);
     }
diff --git a/src/main/java/tmltranslator/mutations/EventConnectionMutation.java b/src/main/java/tmltranslator/mutations/EventConnectionMutation.java
index 6ef5eaee514b054a849351543659e7e41ec8808d..85432eaab8996adbe7b665a7fb352e33ff1b08c1 100644
--- a/src/main/java/tmltranslator/mutations/EventConnectionMutation.java
+++ b/src/main/java/tmltranslator/mutations/EventConnectionMutation.java
@@ -57,30 +57,6 @@ public abstract class EventConnectionMutation extends ConnectionMutation{
         super();
     }
 
-    /*public void setInfinite(boolean b){
-        infinite = b;
-    }
-
-    public boolean isInfinite(){
-        return infinite;
-    }
-
-    public void setFiniteBlocking(boolean b){
-        finiteBlocking = b;
-    }
-
-    public boolean isFiniteBlocking(){
-        return finiteBlocking;
-    }
-
-    public void isFiniteNonBlocking(boolean b){
-        finiteNonBlocking = b;
-    }
-
-    public boolean isFiniteNonBlocking(){
-        return finiteNonBlocking;
-    }*/
-
     public TMLEvent getEventConnectionMutation(TMLModeling<?> _tmlModel){
         List<TMLEvent> events = _tmlModel.getEvents();
         String appName = "";
@@ -98,10 +74,10 @@ public abstract class EventConnectionMutation extends ConnectionMutation{
 
     public static EventConnectionMutation createFromString(String toParse) throws ParseDiplodocusMutationException{
         switch (DiplodocusMutationParser.findMutationToken(toParse)) {
-            case "ADD":
+            case DiplodocusMutationParser.ADD:
                 return AddEventConnectionMutation.createFromString(toParse);
-            case "RM":
-            case "REMOVE":
+            case DiplodocusMutationParser.RM:
+            case DiplodocusMutationParser.REMOVE:
                 return RemoveEventConnectionMutation.createFromString(toParse);
             default:
                 break;
diff --git a/src/main/java/tmltranslator/mutations/RemoveAttributeMutation.java b/src/main/java/tmltranslator/mutations/RemoveAttributeMutation.java
index a5c6cf352cff469a94882e7fa0e7840dac6bb085..d98f968f9f474bc577fc462868ffcc21187a220f 100644
--- a/src/main/java/tmltranslator/mutations/RemoveAttributeMutation.java
+++ b/src/main/java/tmltranslator/mutations/RemoveAttributeMutation.java
@@ -66,13 +66,13 @@ public class RemoveAttributeMutation extends AttributeMutation{
     public static RemoveAttributeMutation createFromString(String toParse) throws ParseDiplodocusMutationException{
         String[] tokens = DiplodocusMutationParser.tokenise(toParse);
 
-        int index = DiplodocusMutationParser.indexOf(tokens, "ATTRIBUTE");
+        int index = DiplodocusMutationParser.indexOf(tokens, DiplodocusMutationParser.ATTRIBUTE);
         if (tokens.length == index + 1) {
             throw new ParseDiplodocusMutationException("Missing attribute name. Expected format is remove attribute name in taskName");
         }
         String _attributeName = tokens[index + 1];
 
-        index = DiplodocusMutationParser.indexOf(tokens, "IN");
+        index = DiplodocusMutationParser.indexOf(tokens, DiplodocusMutationParser.IN);
         if (tokens.length == index + 1 || index == -1) {
             throw new ParseDiplodocusMutationException("Missing task name. Expected format is remove attribute name in taskName");
         }
diff --git a/src/main/java/tmltranslator/mutations/RemoveDataConnectionMutation.java b/src/main/java/tmltranslator/mutations/RemoveDataConnectionMutation.java
index bf711dc3bb0acc6dd59583f13880de6afa72456a..e5b7010841ce54e8cada217cdbc9c46d80f3f7a8 100644
--- a/src/main/java/tmltranslator/mutations/RemoveDataConnectionMutation.java
+++ b/src/main/java/tmltranslator/mutations/RemoveDataConnectionMutation.java
@@ -90,7 +90,7 @@ public class RemoveDataConnectionMutation extends DataConnectionMutation{
         RemoveDataConnectionMutation mutation = null;
         String[] tokens = DiplodocusMutationParser.tokenise(toParse);
 
-        int index = DiplodocusMutationParser.indexOf(tokens,"CONNECTION");
+        int index = DiplodocusMutationParser.indexOf(tokens,DiplodocusMutationParser.CONNECTION);
         if (tokens.length == index+1) {
             throw new ParseDiplodocusMutationException("Connection name missing. Expected syntax is remove data connection connectionName.");
         }
diff --git a/src/main/java/tmltranslator/mutations/RemoveEventConnectionMutation.java b/src/main/java/tmltranslator/mutations/RemoveEventConnectionMutation.java
index 413b5c70d992159d10360742d208ad161f216cea..62d39da2b9783be4d6c3cd93def5cb5e97701dca 100644
--- a/src/main/java/tmltranslator/mutations/RemoveEventConnectionMutation.java
+++ b/src/main/java/tmltranslator/mutations/RemoveEventConnectionMutation.java
@@ -90,7 +90,7 @@ public class RemoveEventConnectionMutation extends EventConnectionMutation{
         RemoveEventConnectionMutation mutation = null;
         String[] tokens = DiplodocusMutationParser.tokenise(toParse);
 
-        int index = DiplodocusMutationParser.indexOf(tokens,"CONNECTION");
+        int index = DiplodocusMutationParser.indexOf(tokens,DiplodocusMutationParser.CONNECTION);
         if (tokens.length == index+1) {
             throw new ParseDiplodocusMutationException("Connection name missing. Expected syntax is remove event connection connectionName.");
         }
diff --git a/src/main/java/tmltranslator/mutations/RemoveRequestConnectionMutation.java b/src/main/java/tmltranslator/mutations/RemoveRequestConnectionMutation.java
index 712eb1e0a3b5a5d0730513a8c826f221a5a99fe5..5cd3b3735ca63a5a0c7ee97f45e8d70e0fa3e885 100644
--- a/src/main/java/tmltranslator/mutations/RemoveRequestConnectionMutation.java
+++ b/src/main/java/tmltranslator/mutations/RemoveRequestConnectionMutation.java
@@ -87,7 +87,7 @@ public class RemoveRequestConnectionMutation extends RequestConnectionMutation {
 
         String[] tokens = DiplodocusMutationParser.tokenise(toParse);
 
-        int index = DiplodocusMutationParser.indexOf(tokens,"CONNECTION");
+        int index = DiplodocusMutationParser.indexOf(tokens,DiplodocusMutationParser.CONNECTION);
         if (tokens.length == index+1) {
             throw new ParseDiplodocusMutationException("Connection name missing. Expected syntax is remove event connection connectionName.");
         }
diff --git a/src/main/java/tmltranslator/mutations/RemoveTaskMutation.java b/src/main/java/tmltranslator/mutations/RemoveTaskMutation.java
index 5e11193fd78ed0b2b79a70f596b8a4c94ba6275c..14e43e6ea03dd35545b01ac43009628f6d96b5b0 100644
--- a/src/main/java/tmltranslator/mutations/RemoveTaskMutation.java
+++ b/src/main/java/tmltranslator/mutations/RemoveTaskMutation.java
@@ -60,7 +60,7 @@ public class RemoveTaskMutation extends TaskMutation {
 
     public static RemoveTaskMutation createFromString(String toParse) throws ParseDiplodocusMutationException{
         String[] tokens = DiplodocusMutationParser.tokenise(toParse);
-        int index = DiplodocusMutationParser.indexOf(tokens, "TASK");
+        int index = DiplodocusMutationParser.indexOf(tokens, DiplodocusMutationParser.TASK);
         if (tokens.length == index + 1) {
             throw new ParseDiplodocusMutationException("Block name missing. Expected syntax is [remove task taskName]");
         }
diff --git a/src/main/java/tmltranslator/mutations/RequestConnectionMutation.java b/src/main/java/tmltranslator/mutations/RequestConnectionMutation.java
index f449347fa476478b0315d7288d81dfeb020ae013..5419b2ef74fec16a267043e70b7dd7435e3fe41b 100644
--- a/src/main/java/tmltranslator/mutations/RequestConnectionMutation.java
+++ b/src/main/java/tmltranslator/mutations/RequestConnectionMutation.java
@@ -70,10 +70,10 @@ public abstract class RequestConnectionMutation extends ConnectionMutation {
 
     public static RequestConnectionMutation createFromString(String toParse) throws ParseDiplodocusMutationException{
         switch (DiplodocusMutationParser.findMutationToken(toParse)) {
-            case "ADD":
+            case DiplodocusMutationParser.ADD:
                 return AddRequestConnectionMutation.createFromString(toParse);
-            case "RM":
-            case "REMOVE":
+            case DiplodocusMutationParser.RM:
+            case DiplodocusMutationParser.REMOVE:
                 return RemoveRequestConnectionMutation.createFromString(toParse);
             default:
                 break;
diff --git a/src/main/java/tmltranslator/mutations/TaskMutation.java b/src/main/java/tmltranslator/mutations/TaskMutation.java
index 3b7d85348a302512fa46a47be301eaaddbf1dbb5..31e4dbfe4e47ec555019e650b4a15581f5bb7ee3 100644
--- a/src/main/java/tmltranslator/mutations/TaskMutation.java
+++ b/src/main/java/tmltranslator/mutations/TaskMutation.java
@@ -71,12 +71,12 @@ public abstract class TaskMutation extends DiplodocusMutation {
 
     public static TaskMutation createFromString(String toParse) throws ParseDiplodocusMutationException {
         switch (DiplodocusMutationParser.findMutationToken(toParse)){
-            case "ADD":
+            case DiplodocusMutationParser.ADD:
                 return AddTaskMutation.createFromString(toParse);
-            case "CLONE":
+            case DiplodocusMutationParser.CLONE:
                 return CloneTaskMutation.createFromString(toParse);
-            case "RM":
-            case "REMOVE":
+            case DiplodocusMutationParser.RM:
+            case DiplodocusMutationParser.REMOVE:
                 return RemoveTaskMutation.createFromString(toParse);
         }
         return null;