diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionFromXml.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionFromXml.java
index bea9a303b24cd239b155046d87a999faf86e338e..c144284b07413796ecaf99673c8c3663486f94e1 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionFromXml.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionFromXml.java
@@ -1,19 +1,19 @@
 package lcsb.mapviewer.converter.model.celldesigner.reaction;
 
+import lcsb.mapviewer.commands.layout.ModifierType;
+import lcsb.mapviewer.commands.layout.ReactionData;
 import lcsb.mapviewer.common.XmlParser;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.InvalidStateException;
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 import lcsb.mapviewer.converter.model.celldesigner.CellDesignerElementCollection;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.CellDesignerAliasConverter;
-import lcsb.mapviewer.converter.model.celldesigner.geometry.ReactionCellDesignerConverter;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerAnchor;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerPointTransformation;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.PolylineDataFactory;
 import lcsb.mapviewer.converter.model.celldesigner.structure.fields.ConnectScheme;
 import lcsb.mapviewer.converter.model.celldesigner.structure.fields.EditPoints;
 import lcsb.mapviewer.converter.model.celldesigner.structure.fields.LineProperties;
-import lcsb.mapviewer.converter.model.celldesigner.types.ModifierType;
 import lcsb.mapviewer.converter.model.celldesigner.types.ModifierTypeUtils;
 import lcsb.mapviewer.converter.model.celldesigner.types.OperatorType;
 import lcsb.mapviewer.converter.model.celldesigner.types.OperatorTypeUtils;
@@ -689,8 +689,8 @@ public class ReactionFromXml {
     reactant.setLine(reactant.getLine().reverse());
     reactant.getLine().addLine(p2, p);
 
-    reactant.getLine().trimEnd(ReactionCellDesignerConverter.RECT_SIZE / 2 - 1);
-    operator.getLine().trimEnd(ReactionCellDesignerConverter.RECT_SIZE / 2 - 1);
+    reactant.getLine().trimEnd(ReactionData.RECT_SIZE / 2 - 1);
+    operator.getLine().trimEnd(ReactionData.RECT_SIZE / 2 - 1);
 
     result.addNode(operator);
 
@@ -889,7 +889,7 @@ public class ReactionFromXml {
         andOperator.getLine().addLine(product.getLine().getLines().get(i));
       }
       andOperator.getLine().setEndPoint(p);
-      andOperator.getLine().trimEnd(ReactionCellDesignerConverter.RECT_SIZE / 2 - 1);
+      andOperator.getLine().trimEnd(ReactionData.RECT_SIZE / 2 - 1);
 
       p = new Point2D.Double((p2.getX() + p1.getX()) / 2, (p2.getY() + p1.getY()) / 2);
 
@@ -897,7 +897,7 @@ public class ReactionFromXml {
         product.getLine().removeLine(0);
       }
       product.getLine().setStartPoint(p);
-      product.getLine().trimBegin(ReactionCellDesignerConverter.RECT_SIZE / 2 - 1);
+      product.getLine().trimBegin(ReactionData.RECT_SIZE / 2 - 1);
 
       product.getLine().getEndAtd().setArrowType(ArrowType.FULL);
 
@@ -1210,11 +1210,11 @@ public class ReactionFromXml {
     Point2D p2 = ld.getLines().get(ld.getLines().size() - index - 1).getP2();
     Point2D p = new Point2D.Double((p2.getX() + p1.getX()) / 2, (p2.getY() + p1.getY()) / 2);
     reactantLine.setEndPoint(p);
-    reactantLine.trimEnd(ReactionCellDesignerConverter.RECT_SIZE / 2 - 1);
+    reactantLine.trimEnd(ReactionData.RECT_SIZE / 2 - 1);
 
     p = new Point2D.Double((p2.getX() + p1.getX()) / 2, (p2.getY() + p1.getY()) / 2);
     productLine.setStartPoint(p);
-    productLine.trimBegin(ReactionCellDesignerConverter.RECT_SIZE / 2 - 1);
+    productLine.trimBegin(ReactionData.RECT_SIZE / 2 - 1);
 
     productLine.getEndAtd().setArrowType(ArrowType.FULL);
 
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXml.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXml.java
index 953b8ff4fb08368257e4b22d10ad59c4b3e29ccb..f51028bd81c02857009bc0302226e719ac5d9208 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXml.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXml.java
@@ -1,5 +1,6 @@
 package lcsb.mapviewer.converter.model.celldesigner.reaction;
 
+import lcsb.mapviewer.commands.layout.ModifierType;
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.XmlParser;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -10,7 +11,6 @@ import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerL
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerPointTransformation;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.PolylineDataFactory;
 import lcsb.mapviewer.converter.model.celldesigner.structure.CellDesignerElement;
-import lcsb.mapviewer.converter.model.celldesigner.types.ModifierType;
 import lcsb.mapviewer.converter.model.celldesigner.types.ModifierTypeUtils;
 import lcsb.mapviewer.converter.model.celldesigner.types.OperatorType;
 import lcsb.mapviewer.converter.model.celldesigner.types.OperatorTypeUtils;
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtils.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtils.java
index d6a906b736987999c73cb3c42e66422c4de62422..21059567562f7f82932a4031607d576e1220d8b2 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtils.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtils.java
@@ -1,15 +1,10 @@
 package lcsb.mapviewer.converter.model.celldesigner.types;
 
-import java.awt.geom.Line2D;
-import java.awt.geom.Point2D;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
+import lcsb.mapviewer.commands.layout.ModifierType;
+import lcsb.mapviewer.commands.layout.ReactionData;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.InvalidStateException;
 import lcsb.mapviewer.common.geometry.PointTransformation;
-import lcsb.mapviewer.converter.model.celldesigner.geometry.ReactionCellDesignerConverter;
 import lcsb.mapviewer.model.LogMarker;
 import lcsb.mapviewer.model.ProjectLogEntryType;
 import lcsb.mapviewer.model.graphics.PolylineData;
@@ -19,26 +14,29 @@ import lcsb.mapviewer.model.map.reaction.NodeOperator;
 import lcsb.mapviewer.model.map.reaction.Reaction;
 import lcsb.mapviewer.model.map.species.Element;
 import lcsb.mapviewer.model.map.species.Species;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.awt.geom.Line2D;
+import java.awt.geom.Point2D;
 
 /**
  * Util class that helps in transformation of CellDesigner modifiers into
  * {@link Modifier} object in our model.
- * 
+ *
  * @author Piotr Gawron
- * 
  */
 public class ModifierTypeUtils {
 
   /**
    * Default class logger.
    */
-  private static Logger logger = LogManager.getLogger();
+  private static final Logger logger = LogManager.getLogger();
 
   /**
    * Returns {@link ModifierType} that reference to the clazz.
-   * 
-   * @param clazz
-   *          class type for which result is returned
+   *
+   * @param clazz class type for which result is returned
    * @return {@link ModifierType} that reference to the clazz
    */
   public ModifierType getModifierTypeForClazz(final Class<? extends Modifier> clazz) {
@@ -53,9 +51,8 @@ public class ModifierTypeUtils {
   /**
    * Returns {@link ModifierType} that reference to the CellDesigner string
    * 'type'.
-   * 
-   * @param type
-   *          CellDesigner string defining modifier type
+   *
+   * @param type CellDesigner string defining modifier type
    * @return {@link ModifierType} that reference to the CellDesigner 'type'
    */
   public ModifierType getModifierTypeForStringType(final String type) {
@@ -69,11 +66,9 @@ public class ModifierTypeUtils {
 
   /**
    * Creates {@link Modifier} for the CellDesigner type.
-   * 
-   * @param type
-   *          CellDesigner type of the modifier
-   * @param alias
-   *          alias to which modifier point to
+   *
+   * @param type  CellDesigner type of the modifier
+   * @param alias alias to which modifier point to
    * @return {@link Modifier} for the CellDesigner type
    */
   public Modifier createModifierForStringType(final String type, final Species alias) {
@@ -91,9 +86,8 @@ public class ModifierTypeUtils {
 
   /**
    * Returns CellDesigner string used for modifier creation.
-   * 
-   * @param modifier
-   *          modifier for which CellDesigner string is looked for
+   *
+   * @param modifier modifier for which CellDesigner string is looked for
    * @return CellDesigner string used for modifier creation
    */
   public String getStringTypeByModifier(final Modifier modifier) {
@@ -108,9 +102,8 @@ public class ModifierTypeUtils {
    * Returns string that identfies TargetLine index for the modifier. TargetLine
    * index is a CellDesigner String that identifies to which point on the
    * rectangle in the center line modifier line is connected.
-   * 
-   * @param modifier
-   *          modifier for target line
+   *
+   * @param modifier modifier for target line
    * @return string that identfies TargetLine index for the modifier
    */
   public String getTargetLineIndexByModifier(final Modifier modifier) {
@@ -130,9 +123,8 @@ public class ModifierTypeUtils {
    * Returns string that identfies TargetLine index for the modifier operator.
    * TargetLine index is a CellDesigner String that identifies to which point on
    * the rectangle in the center line modifier line is connected.
-   * 
-   * @param modifier
-   *          modifier operator for target line
+   *
+   * @param modifier modifier operator for target line
    * @return string that identfies TargetLine index for the modifier
    */
   public String getTargetLineIndexByModifier(final NodeOperator modifier) {
@@ -157,21 +149,17 @@ public class ModifierTypeUtils {
    * Returns string that identfies TargetLine index for the modifier line
    * connected to reaction (target line index is explained here:
    * {@link #getTargetLineIndexByModifier(Modifier)}).
-   * 
-   * 
-   * @param modType
-   *          type of modifier for the line
-   * @param reaction
-   *          reaction on which target line index is looked for
-   * @param originalLine
-   *          line that connects modifier to the reaction
+   *
+   * @param modType      type of modifier for the line
+   * @param reaction     reaction on which target line index is looked for
+   * @param originalLine line that connects modifier to the reaction
    * @return string that identifies TargetLine index for modifier line
    */
   private String getTragteLineIndex(final ModifierType modType, final Reaction reaction, final PolylineData originalLine) {
     PolylineData line = new PolylineData(originalLine);
     line.trimEnd(-modType.getTrimLength());
 
-    String[] possibleValues = new String[] { "0,2", "0,3", "0,4", "0,5", "0,6", "0,7" };
+    String[] possibleValues = new String[]{"0,2", "0,3", "0,4", "0,5", "0,6", "0,7"};
     Point2D closestPoint = new Point2D.Double(Double.MAX_VALUE, Double.MAX_VALUE);
     Point2D checkedPoint = line.getEndPoint();
     String result = "0,0";
@@ -189,11 +177,9 @@ public class ModifierTypeUtils {
    * This method get anchor point on the reaction line (the center point of this
    * line is given as a parameter). The anchor point depends on the line and
    * lineConnectionType associated with the modification.
-   * 
-   * @param reaction
-   *          reaction on which we are looking for a point
-   * @param lineConnectionType
-   *          point of connection to the reaction center rectangle
+   *
+   * @param reaction           reaction on which we are looking for a point
+   * @param lineConnectionType point of connection to the reaction center rectangle
    * @return coordinates of point on the center rectangle
    */
   public Point2D getAnchorPointOnReactionRect(final Reaction reaction, final String lineConnectionType) {
@@ -212,34 +198,34 @@ public class ModifierTypeUtils {
     if (spr.length > 1) {
       id = spr[1];
       if (id.equals("2")) {
-        y -= ReactionCellDesignerConverter.RECT_SIZE / 2;
+        y -= ReactionData.RECT_SIZE / 2;
       } else if (id.equals("3")) {
-        y += ReactionCellDesignerConverter.RECT_SIZE / 2;
+        y += ReactionData.RECT_SIZE / 2;
       } else if (id.equals("4")) {
-        y -= ReactionCellDesignerConverter.RECT_SIZE / 2;
-        x -= ReactionCellDesignerConverter.RECT_SIZE / 2;
+        y -= ReactionData.RECT_SIZE / 2;
+        x -= ReactionData.RECT_SIZE / 2;
       } else if (id.equals("5")) {
-        y -= ReactionCellDesignerConverter.RECT_SIZE / 2;
-        x += ReactionCellDesignerConverter.RECT_SIZE / 2;
+        y -= ReactionData.RECT_SIZE / 2;
+        x += ReactionData.RECT_SIZE / 2;
       } else if (id.equals("6")) {
-        y += ReactionCellDesignerConverter.RECT_SIZE / 2;
-        x -= ReactionCellDesignerConverter.RECT_SIZE / 2;
+        y += ReactionData.RECT_SIZE / 2;
+        x -= ReactionData.RECT_SIZE / 2;
       } else if (id.equals("7")) {
-        y += ReactionCellDesignerConverter.RECT_SIZE / 2;
-        x += ReactionCellDesignerConverter.RECT_SIZE / 2;
+        y += ReactionData.RECT_SIZE / 2;
+        x += ReactionData.RECT_SIZE / 2;
       } else if (id.equals("0")) {
         // this is only workaround...
-        y += ReactionCellDesignerConverter.RECT_SIZE / 2;
+        y += ReactionData.RECT_SIZE / 2;
       } else if (id.equals("1")) {
         // this is only workaround...
-        y += ReactionCellDesignerConverter.RECT_SIZE / 2;
+        y += ReactionData.RECT_SIZE / 2;
       } else {
         throw new InvalidArgumentException("Unknown targetLineIndex: " + id);
       }
 
     } else {
       logger.warn(new LogMarker(ProjectLogEntryType.PARSING_ISSUE, reaction), "Invalid targetLineIndex: " + id);
-      y += ReactionCellDesignerConverter.RECT_SIZE / 2;
+      y += ReactionData.RECT_SIZE / 2;
     }
     Point2D p = new Point2D.Double(x, y);
     PointTransformation pointTransformation = new PointTransformation();
@@ -249,9 +235,8 @@ public class ModifierTypeUtils {
 
   /**
    * Update line parameters to make it look like a proper modifier.
-   * 
-   * @param modifier
-   *          modifier for which line will be modified
+   *
+   * @param modifier modifier for which line will be modified
    */
   public void updateLineEndPoint(final Modifier modifier) {
     ModifierType modType = getModifierTypeForClazz(modifier.getClass());
@@ -265,9 +250,8 @@ public class ModifierTypeUtils {
   /**
    * Updates line parameters of modifier operator to make it look like a proper
    * modifier.
-   * 
-   * @param operator
-   *          modifier operator for which line will be modified
+   *
+   * @param operator modifier operator for which line will be modified
    */
   @SuppressWarnings("unchecked")
   public void updateLineEndPoint(final NodeOperator operator) {
@@ -286,11 +270,9 @@ public class ModifierTypeUtils {
 
   /**
    * Updates line parameters to make it look like a proper modifier.
-   * 
-   * @param modType
-   *          type of modifier
-   * @param line
-   *          line to update
+   *
+   * @param modType type of modifier
+   * @param line    line to update
    */
   private void updateLineByType(final ModifierType modType, final PolylineData line) {
     line.setEndAtd(modType.getAtd().copy());
@@ -300,9 +282,8 @@ public class ModifierTypeUtils {
 
   /**
    * Returns type of the modifier in modifier operator.
-   * 
-   * @param modifierOperator
-   *          opertor for which type will be returned
+   *
+   * @param modifierOperator opertor for which type will be returned
    * @return type of the modifier in modifier operator
    */
   public ModifierType getModifierTypeForOperator(final NodeOperator modifierOperator) {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ReactionCellDesignerConverterTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ReactionCellDesignerConverterTest.java
deleted file mode 100644
index 11cae750b81fcdec6a41d8ed846df7a0a284b9ef..0000000000000000000000000000000000000000
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ReactionCellDesignerConverterTest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package lcsb.mapviewer.converter.model.celldesigner.geometry;
-
-import static org.junit.Assert.assertNotNull;
-
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.Test;
-
-public class ReactionCellDesignerConverterTest {
-
-  @AfterClass
-  public static void tearDownAfterClass() throws Exception {
-  }
-
-  @Before
-  public void setUp() throws Exception {
-  }
-
-  @After
-  public void tearDown() throws Exception {
-  }
-
-  @Test
-  public void testConstructor() {
-    ReactionCellDesignerConverter onverter = new ReactionCellDesignerConverter();
-    assertNotNull(onverter);
-  }
-
-}
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeTest.java
index 2ba3323171ff82597c0bc5846d1babc63dbf264a..b4fae845cb49872b844fc677325bb95ad64fdbc5 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeTest.java
@@ -1,12 +1,13 @@
 package lcsb.mapviewer.converter.model.celldesigner.types;
 
-import static org.junit.Assert.assertNotNull;
-
+import lcsb.mapviewer.commands.layout.ModifierType;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.Test;
 
+import static org.junit.Assert.assertNotNull;
+
 public class ModifierTypeTest {
 
   @AfterClass
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtilsTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtilsTest.java
index 618b51764663b91eade984b99c88bd1ffc63e916..5c3d102141a44a0ba848a101f22e7765bf88ae1c 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtilsTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtilsTest.java
@@ -1,17 +1,6 @@
 package lcsb.mapviewer.converter.model.celldesigner.types;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import java.awt.geom.Point2D;
-
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-
+import lcsb.mapviewer.commands.layout.ModifierType;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.converter.model.celldesigner.CellDesignerTestFunctions;
 import lcsb.mapviewer.model.graphics.PolylineData;
@@ -21,12 +10,23 @@ import lcsb.mapviewer.model.map.reaction.NodeOperator;
 import lcsb.mapviewer.model.map.reaction.Product;
 import lcsb.mapviewer.model.map.reaction.Reactant;
 import lcsb.mapviewer.model.map.reaction.Reaction;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import java.awt.geom.Point2D;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 
 public class ModifierTypeUtilsTest extends CellDesignerTestFunctions {
 
-  private ModifierTypeUtils utils = new ModifierTypeUtils();
+  private final ModifierTypeUtils utils = new ModifierTypeUtils();
 
-  private Modifier invalidModifier = Mockito.mock(Modifier.class, Mockito.CALLS_REAL_METHODS);
+  private final Modifier invalidModifier = Mockito.mock(Modifier.class, Mockito.CALLS_REAL_METHODS);
 
   @AfterClass
   public static void tearDownAfterClass() throws Exception {
diff --git a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/parser/ReactionParser.java b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/parser/ReactionParser.java
index b5a6aa6121488755acb1ba45a78ea44bd4480ae2..03337681a024fddf737c4fea9ed9a6f686625e0b 100644
--- a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/parser/ReactionParser.java
+++ b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/parser/ReactionParser.java
@@ -1,12 +1,12 @@
 package lcsb.mapviewer.converter.model.sbgnml.parser;
 
+import lcsb.mapviewer.commands.layout.ModifierType;
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.comparator.DoubleComparator;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.geometry.PointTransformation;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.PolylineDataFactory;
-import lcsb.mapviewer.converter.model.celldesigner.types.ModifierType;
 import lcsb.mapviewer.converter.model.sbgnml.SbgnLogMarker;
 import lcsb.mapviewer.converter.model.sbgnml.structures.Process;
 import lcsb.mapviewer.model.LogMarker;
@@ -61,23 +61,23 @@ public class ReactionParser extends GlyphParser {
   /**
    * List of all logic operator glyphs parsed so far.
    */
-  private List<Glyph> logicOperators = new ArrayList<>();
+  private final List<Glyph> logicOperators = new ArrayList<>();
 
   /**
    * List of all processes to be parsed.
    */
-  private List<Process> processes = new ArrayList<>();
+  private final List<Process> processes = new ArrayList<>();
 
   /**
    * List of all logic arcs parsed so far.
    */
-  private List<Arc> logicArcs = new ArrayList<>();
+  private final List<Arc> logicArcs = new ArrayList<>();
 
   private final PointTransformation pt = new PointTransformation();
 
-  private RenderParser renderParser;
+  private final RenderParser renderParser;
 
-  private Model model;
+  private final Model model;
 
   public ReactionParser(final RenderParser renderParser, final Model model) {
     this.renderParser = renderParser;
@@ -160,7 +160,7 @@ public class ReactionParser extends GlyphParser {
   public Reaction parseProcess(final Process p) throws Exception {
     if (p.getProductArcs().isEmpty()) {
       logger.warn(new SbgnLogMarker(ProjectLogEntryType.PARSING_ISSUE, p, model),
-              "The process must have at least one outgoing arc.");
+          "The process must have at least one outgoing arc.");
       return null;
     }
 
@@ -223,7 +223,7 @@ public class ReactionParser extends GlyphParser {
 
     for (final Arc a : p.getProductArcs()) {
       if (Objects.equals(getSourcePort(a), p.getProductsPort()) && ports.size() == 2
-              || reaction.getProducts().size() == 0) {
+          || reaction.getProducts().size() == 0) {
         Glyph target = getTargetGlyph(a);
         Product product = new Product(model.getElementByElementId(target.getId()));
         List<Point2D> pointList = getLinePoints(a);
@@ -255,13 +255,13 @@ public class ReactionParser extends GlyphParser {
     boolean shouldReverse = reaction.getProducts().size() > 1;
     for (final Product product : reaction.getProducts()) {
       if (product.getLine().getStartPoint().distance(firstProduct.getLine().getStartPoint()) < Configuration.EPSILON
-              && product.getLine().getEndPoint().distance(firstProduct.getLine().getEndPoint()) > Configuration.EPSILON) {
+          && product.getLine().getEndPoint().distance(firstProduct.getLine().getEndPoint()) > Configuration.EPSILON) {
         shouldReverse = false;
       }
     }
     if (shouldReverse) {
       logger.warn(new LogMarker(ProjectLogEntryType.PARSING_ISSUE, "process-arcs", p.getCentralPoint().getId(),
-              model.getIdModel()), "Product lines should be reversed");
+          model.getIdModel()), "Product lines should be reversed");
       for (final Product product : reaction.getProducts()) {
         List<Line2D> lines = new ArrayList<>(product.getLine().getLines());
         product.getLine().removeLines();
@@ -371,10 +371,10 @@ public class ReactionParser extends GlyphParser {
     Point2D portPoint;
     if (p.getReagentArcs().size() > 1) {
       portPoint = new Point2D.Double(p.getReagentArcs().get(0).getEnd().getX(),
-              p.getReagentArcs().get(0).getEnd().getY());
+          p.getReagentArcs().get(0).getEnd().getY());
     } else {
       portPoint = new Point2D.Double(p.getRevReagentArcs().get(0).getStart().getX(),
-              p.getRevReagentArcs().get(0).getStart().getY());
+          p.getRevReagentArcs().get(0).getStart().getY());
     }
     PolylineData line = new PolylineData(portPoint, centerOfReactionPoint);
     ArrowTypeData atd = new ArrowTypeData();
@@ -400,10 +400,10 @@ public class ReactionParser extends GlyphParser {
     Point2D portPoint;
     if (!p.isReversible()) {
       portPoint = new Point2D.Double(p.getProductArcs().get(0).getStart().getX(),
-              p.getProductArcs().get(0).getStart().getY());
+          p.getProductArcs().get(0).getStart().getY());
     } else {
       portPoint = new Point2D.Double(p.getRevProductArcs().get(0).getStart().getX(),
-              p.getRevProductArcs().get(0).getStart().getY());
+          p.getRevProductArcs().get(0).getStart().getY());
     }
     PolylineData line = new PolylineData(portPoint, centerOfReactionPoint);
     ArrowTypeData atd = new ArrowTypeData();
@@ -423,7 +423,7 @@ public class ReactionParser extends GlyphParser {
    * @throws Exception thrown when parsed logic operator is invalid
    */
   private void parseLogicOperator(final Arc arc, final Reaction reaction, final NodeOperator targetOperator)
-          throws Exception {
+      throws Exception {
     Port operatorPort = (Port) arc.getSource();
     Glyph logicOperator = null;
     for (final Glyph lo : getLogicOperators()) {
@@ -439,8 +439,8 @@ public class ReactionParser extends GlyphParser {
     // inputs of Species
     final Glyph tempLogicOperator = logicOperator;
     boolean isCellDesignerValidLogicOperator = logicArcs.stream()
-            .filter(a -> tempLogicOperator.getPort().contains(a.getTarget()) && !(a.getSource() instanceof Port))
-            .count() == 2;
+        .filter(a -> tempLogicOperator.getPort().contains(a.getTarget()) && !(a.getSource() instanceof Port))
+        .count() == 2;
     if (!isCellDesignerValidLogicOperator) {
       throw new InvalidArgumentException("Parsed operator is not valid for CellDesigner: " + logicOperator.getId());
     }
@@ -455,7 +455,7 @@ public class ReactionParser extends GlyphParser {
         break;
       case NOT:
         logger.warn(new SbgnLogMarker(ProjectLogEntryType.PARSING_ISSUE, logicOperator, model),
-                "NOT gates are not implemented in the platform.");
+            "NOT gates are not implemented in the platform.");
         return;
       default:
         throw new InvalidArgumentException("Wrong logic operator class.");
@@ -463,8 +463,8 @@ public class ReactionParser extends GlyphParser {
 
     // Parse line from arc and operator glyph
     Point2D operatorCenterPoint = new Point2D.Double(
-            logicOperator.getBbox().getX() + logicOperator.getBbox().getW() / 2,
-            logicOperator.getBbox().getY() + logicOperator.getBbox().getH() / 2);
+        logicOperator.getBbox().getX() + logicOperator.getBbox().getW() / 2,
+        logicOperator.getBbox().getY() + logicOperator.getBbox().getH() / 2);
 
     List<Point2D> linePoints = getLinePoints(arc);
     new ArrayList<Point2D>();
@@ -507,7 +507,7 @@ public class ReactionParser extends GlyphParser {
         if (logicArc.getSource() instanceof Port) {
           // The arc has source in logic operator
           logger.warn(new SbgnLogMarker(ProjectLogEntryType.PARSING_ISSUE, logicArc, model),
-                  "Logic operators trees are not compatible with CellDesigner. Therefore they are not supported.");
+              "Logic operators trees are not compatible with CellDesigner. Therefore they are not supported.");
           continue;
           // parseLogicOperator(logicArc, reaction, modifierClass,
           // operator, model);
@@ -541,11 +541,11 @@ public class ReactionParser extends GlyphParser {
     switch (ac) {
       case ABSOLUTE_INHIBITION:
         logger.warn(new SbgnLogMarker(ProjectLogEntryType.PARSING_ISSUE, arc, model),
-                ac + " modifier is not supported. Changing to " + Inhibition.class.getSimpleName());
+            ac + " modifier is not supported. Changing to " + Inhibition.class.getSimpleName());
         return new Inhibition(element);
       case ABSOLUTE_STIMULATION:
         logger.warn(new SbgnLogMarker(ProjectLogEntryType.PARSING_ISSUE, arc, model),
-                ac + " modifier is not supported. Changing to " + PhysicalStimulation.class.getSimpleName());
+            ac + " modifier is not supported. Changing to " + PhysicalStimulation.class.getSimpleName());
         return new PhysicalStimulation(element);
       case CATALYSIS:
         return new Catalysis(element);
@@ -628,7 +628,7 @@ public class ReactionParser extends GlyphParser {
     switch (ArcClazz.fromClazz(arc.getClazz())) {
       case PRODUCTION:
         logger.warn(new SbgnLogMarker(ProjectLogEntryType.PARSING_ISSUE, arc, model),
-                "Activity flow arc type is invalid. Changing to " + StateTransitionReaction.class.getSimpleName());
+            "Activity flow arc type is invalid. Changing to " + StateTransitionReaction.class.getSimpleName());
         result = new StateTransitionReaction(arc.getId());
         break;
       default:
@@ -797,7 +797,7 @@ public class ReactionParser extends GlyphParser {
 
     if (productPointList.size() == 3) {
       if (productPointList.get(0).distance(productPointList.get(1)) > productPointList.get(1)
-              .distance(productPointList.get(2))) {
+          .distance(productPointList.get(2))) {
         Point2D newPoint = pt.getPointOnLine(productPointList.get(0), productPointList.get(1), 0.5);
         productPointList.add(1, newPoint);
       } else {
@@ -816,12 +816,12 @@ public class ReactionParser extends GlyphParser {
     reactant.setLine(reactantLine);
 
     PolylineData centerLine = new PolylineData(productPointList.subList(reactantPointEnds, productPointStarts + 1))
-            .copy();
+        .copy();
     reaction.setLine(centerLine);
 
     ArrowTypeData productAtd = extractArrowTypeDataFromArc(arc);
     PolylineData productLine = new PolylineData(
-            productPointList.subList(productPointStarts, productPointList.size())).copy();
+        productPointList.subList(productPointStarts, productPointList.size())).copy();
     productLine.setEndAtd(productAtd);
     product.setLine(productLine);
 
@@ -935,19 +935,19 @@ public class ReactionParser extends GlyphParser {
               return parsePhenotypeArc(a);
             } catch (Exception e) {
               logger.warn(new SbgnLogMarker(ProjectLogEntryType.PARSING_ISSUE, a, model), "Probelm with importing arc",
-                      e);
+                  e);
             }
             break;
           }
           if (a.getSource() instanceof Glyph) {
             Glyph sourceGlyph = (Glyph) a.getSource();
             if (GlyphClazz.fromClazz(sourceGlyph.getClazz()).equals(GlyphClazz.PHENOTYPE)
-                    && (model.getElementByElementId(targetGlyph.getId()) instanceof Species)) {
+                && (model.getElementByElementId(targetGlyph.getId()) instanceof Species)) {
               try {
                 return parsePhenotypeArc(a);
               } catch (InvalidArgumentException ex) {
                 logger.warn(new SbgnLogMarker(ProjectLogEntryType.PARSING_ISSUE, a, model),
-                        "The arc is not a valid reduced notation arc.", ex);
+                    "The arc is not a valid reduced notation arc.", ex);
               }
               break;
             }
@@ -962,7 +962,7 @@ public class ReactionParser extends GlyphParser {
           }
           if (!found) {
             logger.warn(new SbgnLogMarker(ProjectLogEntryType.PARSING_ISSUE, a, model),
-                    "Expected PHENOTYPE in reduced notation arc. Arc skipped.");
+                "Expected PHENOTYPE in reduced notation arc. Arc skipped.");
           }
           break;
         } else {
@@ -984,13 +984,13 @@ public class ReactionParser extends GlyphParser {
           }
           if (!found) {
             logger.warn(new SbgnLogMarker(ProjectLogEntryType.PARSING_ISSUE, a, model),
-                    "Cannot find a target for arc: " + a.getId() + ". Skipping");
+                "Cannot find a target for arc: " + a.getId() + ". Skipping");
           }
         }
         break;
       default:
         logger.warn(new SbgnLogMarker(ProjectLogEntryType.PARSING_ISSUE, a, model),
-                "The arc has not been parsed, since it is invalid for SBGN PD map.");
+            "The arc has not been parsed, since it is invalid for SBGN PD map.");
     }
     return null;
   }
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParser.java
index cf6e21fcd562237486f7c03f1f3fb93d82d8efac..5f28eaeace3356ed1a6bca4fd3a575c942db5ad8 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParser.java
@@ -1,5 +1,7 @@
 package lcsb.mapviewer.converter.model.sbml.reaction;
 
+import lcsb.mapviewer.commands.layout.ModifierType;
+import lcsb.mapviewer.commands.layout.ReactionData;
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.Pair;
 import lcsb.mapviewer.common.XmlParser;
@@ -9,8 +11,6 @@ import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.common.geometry.PointTransformation;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
-import lcsb.mapviewer.converter.model.celldesigner.geometry.ReactionCellDesignerConverter;
-import lcsb.mapviewer.converter.model.celldesigner.types.ModifierType;
 import lcsb.mapviewer.converter.model.sbml.SbmlBioEntityParser;
 import lcsb.mapviewer.converter.model.sbml.SbmlModelUtils;
 import lcsb.mapviewer.converter.model.sbml.SbmlParameterParser;
@@ -72,14 +72,14 @@ import java.util.Map;
 import java.util.Set;
 
 public class SbmlReactionParser extends SbmlBioEntityParser {
-  private static Logger logger = LogManager.getLogger();
+  private static final Logger logger = LogManager.getLogger();
 
-  private ElementUtils eu = new ElementUtils();
+  private final ElementUtils eu = new ElementUtils();
 
-  private SbmlSpeciesParser speciesParser;
-  private SbmlCompartmentParser compartmentParser;
+  private final SbmlSpeciesParser speciesParser;
+  private final SbmlCompartmentParser compartmentParser;
 
-  private PointTransformation pt = new PointTransformation();
+  private final PointTransformation pt = new PointTransformation();
 
   public SbmlReactionParser(final Model sbmlModel, final lcsb.mapviewer.model.map.model.Model minervaModel,
                             final SbmlSpeciesParser speciesParser, final SbmlCompartmentParser compartmentParser) {
@@ -325,8 +325,8 @@ public class SbmlReactionParser extends SbmlBioEntityParser {
       // if there is no layout don't create center line
       if (startNode.getLine() != null && startNode.getLine().length() > Configuration.EPSILON
           && endNode.getLine() != null && endNode.getLine().length() > Configuration.EPSILON) {
-        startNode.getLine().trimEnd(ReactionCellDesignerConverter.RECT_SIZE);
-        endNode.getLine().trimBegin(ReactionCellDesignerConverter.RECT_SIZE);
+        startNode.getLine().trimEnd(ReactionData.RECT_SIZE);
+        endNode.getLine().trimBegin(ReactionData.RECT_SIZE);
 
         line.addLine(pt.copyPoint(startNode.getLine().getEndPoint()), pt.copyPoint(endNode.getLine().getStartPoint()));
         line.setType(startNode.getLine().getType());
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java
index bb2acde6f338b0ac3b09436348e999fd8f803ebe..b43073d0c40be477b8b65fac284631dcdc588a80 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java
@@ -3,7 +3,6 @@ package lcsb.mapviewer.converter.model.sbml;
 import lcsb.mapviewer.converter.ConverterException;
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
-import lcsb.mapviewer.model.map.InconsistentModelException;
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.model.ModelComparator;
 import org.junit.Test;
@@ -58,8 +57,7 @@ public class GenericSbmlToXmlParserTest extends SbmlTestFunctions {
     testSbmlSerialization(model);
   }
 
-  private void testSbmlSerialization(final Model model) throws InconsistentModelException,
-      IOException, ConverterException, InvalidInputDataExecption {
+  private void testSbmlSerialization(final Model model) throws ConverterException, InvalidInputDataExecption {
 
     final SbmlParser converter = new SbmlParser();
     converter.setProvideDefaults(false);
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java
index 9afa407aebda37e577d7fffe91b6042966dc3b99..dc27092f8fb434681a7d9f91a68209899576a035 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java
@@ -346,6 +346,13 @@ public class ApplySimpleLayoutModelCommand extends ApplyLayoutModelCommand {
       if (startPoint != null) {
         line.setStartPoint(startPoint);
       }
+      for (final ModifierType mt : ModifierType.values()) {
+        if (mt.getClazz().equals(modifier.getClass())) {
+          line.setEndAtd(mt.getAtd());
+          line.setType(mt.getLineType());
+        }
+      }
+
       modifier.setLine(line);
     }
   }
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierType.java b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ModifierType.java
similarity index 72%
rename from converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierType.java
rename to model-command/src/main/java/lcsb/mapviewer/commands/layout/ModifierType.java
index 24696c519e645025d4519d25c1a2f5f07573e0bc..49e8cf069db513c92b218abc7cc776244d1c260f 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierType.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ModifierType.java
@@ -1,6 +1,5 @@
-package lcsb.mapviewer.converter.model.celldesigner.types;
+package lcsb.mapviewer.commands.layout;
 
-import lcsb.mapviewer.converter.model.celldesigner.geometry.ReactionCellDesignerConverter;
 import lcsb.mapviewer.model.graphics.ArrowType;
 import lcsb.mapviewer.model.graphics.ArrowTypeData;
 import lcsb.mapviewer.model.graphics.LineType;
@@ -16,9 +15,8 @@ import lcsb.mapviewer.model.map.reaction.Modifier;
 /**
  * This enum defines how different types of CellDesigner modifiers should be
  * translated into the reaction {@link Modifier} class.
- * 
+ *
  * @author Piotr Gawron
- * 
  */
 public enum ModifierType {
 
@@ -30,7 +28,7 @@ public enum ModifierType {
   /**
    * Inhibition.
    */
-  INHIBITION("INHIBITION", Inhibition.class, ArrowType.CROSSBAR, 8.0, ReactionCellDesignerConverter.RECT_SIZE / 2 - 1),
+  INHIBITION("INHIBITION", Inhibition.class, ArrowType.CROSSBAR, 8.0, ReactionData.RECT_SIZE / 2 - 1),
 
   /**
    * Unknown catalysis.
@@ -41,7 +39,7 @@ public enum ModifierType {
    * Unknown inhibition.
    */
   UNKNOWN_INHIBITION("UNKNOWN_INHIBITION", UnknownInhibition.class, ArrowType.CROSSBAR, 8.0,
-      ReactionCellDesignerConverter.RECT_SIZE / 2 - 1, LineType.DASHED),
+      ReactionData.RECT_SIZE / 2 - 1, LineType.DASHED),
 
   /**
    * Physical stimulation.
@@ -57,32 +55,32 @@ public enum ModifierType {
    * Trigger.
    */
   TRIGGER_STRING("TRIGGER", Trigger.class, ArrowType.BLANK_CROSSBAR),
-  
+
   /**
    * CellDesigner 2.5 modification type.
    */
   TRANSCRIPTIONAL_ACTIVATION("TRANSCRIPTIONAL_ACTIVATION", Trigger.class, ArrowType.BLANK_CROSSBAR),
-  
+
   /**
    * CellDesigner 2.5 modification type.
    */
-  TRANSCRIPTIONAL_INHIBITION("TRANSCRIPTIONAL_INHIBITION", Inhibition.class, ArrowType.CROSSBAR, 8.0, 
-      ReactionCellDesignerConverter.RECT_SIZE / 2 - 1),
-  
+  TRANSCRIPTIONAL_INHIBITION("TRANSCRIPTIONAL_INHIBITION", Inhibition.class, ArrowType.CROSSBAR, 8.0,
+      ReactionData.RECT_SIZE / 2 - 1),
+
   ;
 
   /**
    * CellDesigner string describing this type.
    */
-  private String stringName;
+  private final String stringName;
   /**
    * Which class should be used for this type.
    */
-  private Class<? extends Modifier> clazz;
+  private final Class<? extends Modifier> clazz;
   /**
    * How the arrow head of the line should look like.
    */
-  private ArrowTypeData atd = new ArrowTypeData();
+  private final ArrowTypeData atd = new ArrowTypeData();
   /**
    * How much should be the arrow line trimmed.
    */
@@ -94,13 +92,10 @@ public enum ModifierType {
 
   /**
    * Constructor used to create and initialize this enum.
-   * 
-   * @param string
-   *          {@link #stringName}
-   * @param clazz
-   *          {@link #clazz}
-   * @param at
-   *          type of the arrow
+   *
+   * @param string {@link #stringName}
+   * @param clazz  {@link #clazz}
+   * @param at     type of the arrow
    */
   ModifierType(final String string, final Class<? extends Modifier> clazz, final ArrowType at) {
     this(string, clazz, at, null, null, null);
@@ -108,15 +103,11 @@ public enum ModifierType {
 
   /**
    * Constructor used to create and initialize this enum.
-   * 
-   * @param string
-   *          {@link #stringName}
-   * @param clazz
-   *          {@link #clazz}
-   * @param at
-   *          type of the arrow
-   * @param arrowLength
-   *          length of the arrow
+   *
+   * @param string      {@link #stringName}
+   * @param clazz       {@link #clazz}
+   * @param at          type of the arrow
+   * @param arrowLength length of the arrow
    */
   ModifierType(final String string, final Class<? extends Modifier> clazz, final ArrowType at, final Double arrowLength) {
     this(string, clazz, at, arrowLength, null, null);
@@ -124,17 +115,12 @@ public enum ModifierType {
 
   /**
    * Constructor used to create and initialize this enum.
-   * 
-   * @param string
-   *          {@link #stringName}
-   * @param clazz
-   *          {@link #clazz}
-   * @param at
-   *          type of the arrow
-   * @param arrowLength
-   *          length of the arrow
-   * @param trimLength
-   *          {@link #trimLength}
+   *
+   * @param string      {@link #stringName}
+   * @param clazz       {@link #clazz}
+   * @param at          type of the arrow
+   * @param arrowLength length of the arrow
+   * @param trimLength  {@link #trimLength}
    */
   ModifierType(final String string, final Class<? extends Modifier> clazz, final ArrowType at, final Double arrowLength, final Double trimLength) {
     this(string, clazz, at, arrowLength, trimLength, null);
@@ -142,22 +128,16 @@ public enum ModifierType {
 
   /**
    * Constructor used to create and initialize this enum.
-   * 
-   * @param string
-   *          {@link #stringName}
-   * @param clazz
-   *          {@link #clazz}
-   * @param at
-   *          type of the arrow
-   * @param arrowLength
-   *          length of the arrow
-   * @param trimLength
-   *          {@link #trimLength}
-   * @param lt
-   *          {@link #lineType}
+   *
+   * @param string      {@link #stringName}
+   * @param clazz       {@link #clazz}
+   * @param at          type of the arrow
+   * @param arrowLength length of the arrow
+   * @param trimLength  {@link #trimLength}
+   * @param lt          {@link #lineType}
    */
   ModifierType(final String string, final Class<? extends Modifier> clazz, final ArrowType at, final Double arrowLength, final Double trimLength,
-      final LineType lt) {
+               final LineType lt) {
     stringName = string;
     this.clazz = clazz;
     if (at != null) {
@@ -176,7 +156,6 @@ public enum ModifierType {
   }
 
   /**
-   * 
    * @return {@link #stringName}
    */
   public String getStringName() {
@@ -184,7 +163,6 @@ public enum ModifierType {
   }
 
   /**
-   * 
    * @return {@link #clazz}
    */
   public Class<? extends Modifier> getClazz() {
@@ -192,7 +170,6 @@ public enum ModifierType {
   }
 
   /**
-   * 
    * @return {@link #atd}
    */
   public ArrowTypeData getAtd() {
@@ -200,7 +177,6 @@ public enum ModifierType {
   }
 
   /**
-   * 
    * @return {@link #trimLength}
    */
   public double getTrimLength() {
@@ -208,7 +184,6 @@ public enum ModifierType {
   }
 
   /**
-   * 
    * @return {@link #lineType}
    */
   public LineType getLineType() {
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ReactionCellDesignerConverter.java b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ReactionData.java
similarity index 70%
rename from converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ReactionCellDesignerConverter.java
rename to model-command/src/main/java/lcsb/mapviewer/commands/layout/ReactionData.java
index 3c412c80daf0d34ea354342ad66954ac8f0a014b..4b4781f5404160dcef8687fd47ddc2eb418e1586 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ReactionCellDesignerConverter.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ReactionData.java
@@ -1,13 +1,12 @@
-package lcsb.mapviewer.converter.model.celldesigner.geometry;
+package lcsb.mapviewer.commands.layout;
 
 /**
  * Class that provides CellDesigner specific graphical information for Reaction.
  * It's used for conversion from xml to normal x,y coordinates.
- * 
+ *
  * @author Piotr Gawron
- * 
  */
-public final class ReactionCellDesignerConverter {
+public final class ReactionData {
   /**
    * What is the size of rectangle that is drawn in center point of the reaction.
    */
@@ -16,7 +15,7 @@ public final class ReactionCellDesignerConverter {
   /**
    * Default constructor that prevents instantiation.
    */
-  protected ReactionCellDesignerConverter() {
+  ReactionData() {
 
   }
 }
diff --git a/model/src/main/java/lcsb/mapviewer/model/graphics/ArrowTypeDataComparator.java b/model/src/main/java/lcsb/mapviewer/model/graphics/ArrowTypeDataComparator.java
index 5c1dbdd87533991c929af53a79e00d5a13f3ff73..be9eb77da23132592b61099c3efd8ff11cdce9c0 100644
--- a/model/src/main/java/lcsb/mapviewer/model/graphics/ArrowTypeDataComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/graphics/ArrowTypeDataComparator.java
@@ -1,35 +1,32 @@
 package lcsb.mapviewer.model.graphics;
 
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.comparator.DoubleComparator;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 /**
  * This class implements comparator interface for ArrowTypeData. It compares the
  * content, but skip database identifier.
- * 
+ *
  * @author Piotr Gawron
- * 
  */
 public class ArrowTypeDataComparator extends Comparator<ArrowTypeData> {
   /**
    * Default class logger.
    */
-  private static Logger logger = LogManager.getLogger();
+  private static final Logger logger = LogManager.getLogger();
 
   /**
    * Epsilon value used for comparison of doubles.
    */
-  private double epsilon;
+  private final double epsilon;
 
   /**
    * Constructor that requires {@link #epsilon} parameter.
-   * 
-   * @param epsilon
-   *          {@link #epsilon}
+   *
+   * @param epsilon {@link #epsilon}
    */
   public ArrowTypeDataComparator(final double epsilon) {
     super(ArrowTypeData.class);
@@ -48,22 +45,22 @@ public class ArrowTypeDataComparator extends Comparator<ArrowTypeData> {
     DoubleComparator doubleComparator = new DoubleComparator(epsilon);
 
     if (arg0.getArrowType().compareTo(arg1.getArrowType()) != 0) {
-      logger.debug("Different arrow type: " + arg0.getArrowType() + ", " + arg1.getArrowType());
+      logger.debug("Different arrow type: {}, {}", arg0.getArrowType(), arg1.getArrowType());
       return arg0.getArrowType().compareTo(arg1.getArrowType());
     }
 
     if (arg0.getArrowLineType().compareTo(arg1.getArrowLineType()) != 0) {
-      logger.debug("Different arrow line type: " + arg0.getArrowLineType() + ", " + arg1.getArrowLineType());
+      logger.debug("Different arrow line type: {}, {}", arg0.getArrowLineType(), arg1.getArrowLineType());
       return arg0.getArrowLineType().compareTo(arg1.getArrowLineType());
     }
 
     if (doubleComparator.compare(arg0.getLen(), arg1.getLen()) != 0) {
-      logger.debug("Different length: " + arg0.getLen() + ", " + arg1.getLen());
+      logger.debug("Different length: {}, {}", arg0.getLen(), arg1.getLen());
       return doubleComparator.compare(arg0.getLen(), arg1.getLen());
     }
 
     if (doubleComparator.compare(arg0.getAngle(), arg1.getAngle()) != 0) {
-      logger.debug("Different angle: " + arg0.getAngle() + ", " + arg1.getAngle());
+      logger.debug("Different angle: {}, {}", arg0.getAngle(), arg1.getAngle());
       return doubleComparator.compare(arg0.getAngle(), arg1.getAngle());
     }
     return 0;
diff --git a/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineDataComparator.java b/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineDataComparator.java
index f74203ca56a54aabb4d82a22266c0e16e44bc03f..63e6fc9f589354a7b4e709000ed78ffbed991639 100644
--- a/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineDataComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineDataComparator.java
@@ -1,36 +1,33 @@
 package lcsb.mapviewer.model.graphics;
 
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.comparator.DoubleComparator;
 import lcsb.mapviewer.common.comparator.IntegerComparator;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 /**
  * This class implements comparator interface for {@link PolylineData}. It
  * compares the content, but skip database identifier.
- * 
+ *
  * @author Piotr Gawron
- * 
  */
 public class PolylineDataComparator extends Comparator<PolylineData> {
   /**
    * Default class logger.
    */
-  private static Logger logger = LogManager.getLogger();
+  private static final Logger logger = LogManager.getLogger();
 
   /**
    * Epsilon value used for comparison of doubles.
    */
-  private double epsilon;
+  private final double epsilon;
 
   /**
    * Constructor that requires {@link #epsilon} parameter.
-   * 
-   * @param epsilon
-   *          {@link #epsilon}
+   *
+   * @param epsilon {@link #epsilon}
    */
   public PolylineDataComparator(final double epsilon) {
     super(PolylineData.class, true);
@@ -51,7 +48,7 @@ public class PolylineDataComparator extends Comparator<PolylineData> {
     ArrowTypeDataComparator atdComparator = new ArrowTypeDataComparator(epsilon);
 
     if (integerComparator.compare(arg0.getLines().size(), arg1.getLines().size()) != 0) {
-      logger.debug("Lines have different segments number: " + arg0.getLines().size() + ", " + arg1.getLines().size());
+      logger.debug("Lines have different segments number: {}, {}", arg0.getLines().size(), arg1.getLines().size());
       return integerComparator.compare(arg0.getLines().size(), arg1.getLines().size());
     }
     // TODO this should be fixed
@@ -68,27 +65,27 @@ public class PolylineDataComparator extends Comparator<PolylineData> {
     // }
 
     if (atdComparator.compare(arg0.getBeginAtd(), arg1.getBeginAtd()) != 0) {
-      logger.debug("Lines have different begin adt: " + arg0.getBeginAtd() + ", " + arg1.getBeginAtd());
+      logger.debug("Lines have different begin atd: {}, {}", arg0.getBeginAtd(), arg1.getBeginAtd());
       return atdComparator.compare(arg0.getBeginAtd(), arg1.getBeginAtd());
     }
 
     if (atdComparator.compare(arg0.getEndAtd(), arg1.getEndAtd()) != 0) {
-      logger.debug("Lines have different end adt: " + arg0.getEndAtd() + ", " + arg1.getEndAtd());
+      logger.debug("Lines have different end atd: {}, {}", arg0.getEndAtd(), arg1.getEndAtd());
       return atdComparator.compare(arg0.getEndAtd(), arg1.getEndAtd());
     }
 
     if (doubleComparator.compare(arg0.getWidth(), arg1.getWidth()) != 0) {
-      logger.debug("Lines have different width: " + arg0.getWidth() + ", " + arg1.getWidth());
+      logger.debug("Lines have different width: {}, {}", arg0.getWidth(), arg1.getWidth());
       return doubleComparator.compare(arg0.getWidth(), arg1.getWidth());
     }
 
     if (integerComparator.compare(arg0.getColor().getRGB(), arg1.getColor().getRGB()) != 0) {
-      logger.debug("Lines have different color: " + arg0.getColor() + ", " + arg1.getColor());
+      logger.debug("Lines have different color: {}, {}", arg0.getColor(), arg1.getColor());
       return integerComparator.compare(arg0.getColor().getRGB(), arg1.getColor().getRGB());
     }
 
     if (arg0.getType().compareTo(arg1.getType()) != 0) {
-      logger.debug("Lines have different type: " + arg0.getType() + ", " + arg1.getType());
+      logger.debug("Lines have different type: {}, {}", arg0.getType(), arg1.getType());
       return arg0.getType().compareTo(arg1.getType());
     }
 
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java
index e29bd2f9ac45a4dfd52316bfc08a1282ab85c373..518e95b87768d8c02c742036f81012d576c9dfb0 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java
@@ -1,8 +1,5 @@
 package lcsb.mapviewer.model.map.reaction;
 
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.comparator.BooleanComparator;
@@ -16,31 +13,31 @@ import lcsb.mapviewer.model.graphics.PolylineDataComparator;
 import lcsb.mapviewer.model.map.MiriamData;
 import lcsb.mapviewer.model.map.MiriamDataComparator;
 import lcsb.mapviewer.model.map.kinetics.SbmlKineticsComparator;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 /**
  * This class implements comparator interface for {@link Reaction}.
- * 
+ *
  * @author Piotr Gawron
- * 
  */
 public class ReactionComparator extends Comparator<Reaction> {
   /**
    * Default class logger.
    */
-  private static Logger logger = LogManager.getLogger();
+  private static final Logger logger = LogManager.getLogger();
 
   /**
    * Epsilon value used for comparison of doubles.
    */
-  private double epsilon;
+  private final double epsilon;
 
-  private boolean ignoreLayout;
+  private final boolean ignoreLayout;
 
   /**
    * Constructor that requires {@link #epsilon} parameter.
-   * 
-   * @param epsilon
-   *          {@link #epsilon}
+   *
+   * @param epsilon {@link #epsilon}
    */
   public ReactionComparator(final double epsilon, final boolean ignoreLayout) {
     super(Reaction.class);
@@ -66,12 +63,12 @@ public class ReactionComparator extends Comparator<Reaction> {
     AbstractNodeComparator nodeComparator = new AbstractNodeComparator(epsilon, ignoreLayout);
 
     if (stringComparator.compare(arg0.getName(), arg1.getName()) != 0) {
-      logger.debug("Name different: " + arg0.getName() + ", " + arg1.getName());
+      logger.debug("Name different: {}, {}", arg0.getName(), arg1.getName());
       return stringComparator.compare(arg0.getName(), arg1.getName());
     }
 
     if (stringComparator.compare(arg0.getNotes().trim(), arg1.getNotes().trim()) != 0) {
-      logger.debug("Notes different: " + arg0.getNotes() + ", " + arg1.getNotes());
+      logger.debug("Notes different: {}, {}", arg0.getNotes(), arg1.getNotes());
       return stringComparator.compare(arg0.getNotes(), arg1.getNotes());
     }
 
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/xml/ModelContructor.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/xml/ModelContructor.java
index f6bf6a4c3dd5836c8bd97867a5206e8e53edd928..ea330674da7974d55e721bb4d7e90e610d586746 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/xml/ModelContructor.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/xml/ModelContructor.java
@@ -1,13 +1,13 @@
 package lcsb.mapviewer.wikipathway.xml;
 
 import lcsb.mapviewer.commands.CreateHierarchyCommand;
+import lcsb.mapviewer.commands.layout.ModifierType;
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.InvalidStateException;
 import lcsb.mapviewer.converter.ConverterException;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.PolylineDataFactory;
 import lcsb.mapviewer.converter.model.celldesigner.reaction.ReactionLineData;
-import lcsb.mapviewer.converter.model.celldesigner.types.ModifierType;
 import lcsb.mapviewer.converter.model.celldesigner.types.ModifierTypeUtils;
 import lcsb.mapviewer.model.LogMarker;
 import lcsb.mapviewer.model.ProjectLogEntryType;
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/xml/ReactionLayoutFinder.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/xml/ReactionLayoutFinder.java
index 6a8a3ba912f8edbcb12dd4f6cc44605a34a8ed20..fea5c243fbf1392960aa049457866ea4b4282088 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/xml/ReactionLayoutFinder.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/xml/ReactionLayoutFinder.java
@@ -1,24 +1,12 @@
 package lcsb.mapviewer.wikipathway.xml;
 
-import java.awt.geom.Line2D;
-import java.awt.geom.Point2D;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
+import lcsb.mapviewer.commands.layout.ReactionData;
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.Pair;
 import lcsb.mapviewer.common.comparator.DoubleComparator;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.geometry.LineTransformation;
 import lcsb.mapviewer.common.geometry.PointTransformation;
-import lcsb.mapviewer.converter.model.celldesigner.geometry.ReactionCellDesignerConverter;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.PolylineDataFactory;
 import lcsb.mapviewer.model.graphics.PolylineData;
 import lcsb.mapviewer.model.map.reaction.Modifier;
@@ -27,17 +15,28 @@ import lcsb.mapviewer.model.map.reaction.Reactant;
 import lcsb.mapviewer.wikipathway.model.Edge;
 import lcsb.mapviewer.wikipathway.model.Interaction;
 import lcsb.mapviewer.wikipathway.utils.Geo;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.awt.geom.Line2D;
+import java.awt.geom.Point2D;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 class ReactionLayoutFinder {
 
-  private Logger logger = LogManager.getLogger();
+  private final Logger logger = LogManager.getLogger();
 
-  private LineTransformation lt = new LineTransformation();
-  private PointTransformation pt = new PointTransformation();
+  private final LineTransformation lt = new LineTransformation();
+  private final PointTransformation pt = new PointTransformation();
 
   private Interaction interaction;
 
-  public static enum LineLocation {
+  public enum LineLocation {
     PRODUCT,
     MODIFIER,
     REACTANT,
@@ -48,11 +47,10 @@ class ReactionLayoutFinder {
   /**
    * Return coordinates where all {@link Reactant} should end, all
    * {@link Modifier} should end, and all {@link Product} should start.
-   * 
-   * @param interaction
-   *          GPML {@link Interaction}
+   *
+   * @param interaction GPML {@link Interaction}
    * @return map consisted of three entries for classes: {@link Product},
-   *         {@link Reactant}, {@link Modifier}
+   * {@link Reactant}, {@link Modifier}
    */
   public Map<Class<?>, Point2D> getNodeStartPoints(final Interaction interaction) {
     this.interaction = interaction;
@@ -78,12 +76,12 @@ class ReactionLayoutFinder {
         points.get(Reactant.class));
     PolylineData inputReactionLine = getSubline(interaction.getLine(), points.get(Reactant.class),
         points.get(Modifier.class));
-    inputReactionLine.trimEnd(ReactionCellDesignerConverter.RECT_SIZE / 2);
+    inputReactionLine.trimEnd(ReactionData.RECT_SIZE / 2);
 
     PolylineData outputReactionLine = getSubline(interaction.getLine(),
         points.get(Modifier.class), points.get(Product.class));
 
-    outputReactionLine.trimBegin(ReactionCellDesignerConverter.RECT_SIZE / 2);
+    outputReactionLine.trimBegin(ReactionData.RECT_SIZE / 2);
     PolylineData productLine = getSubline(interaction.getLine(),
         points.get(Product.class), interaction.getLine().getEndPoint());
     PolylineData modifierLine = new PolylineData(pt.copyPoint(inputReactionLine.getEndPoint()),
@@ -320,7 +318,6 @@ class ReactionLayoutFinder {
     PolylineData result = new PolylineData(originalPolylineData);
     List<Line2D> lines = new ArrayList<>(result.getLines().subList(start, end + 1));
     result.removeLines();
-    ;
     result.addLines(lines);
 
     result.setStartPoint(pt.copyPoint(startPoint));
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/GPMLToModelTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/GPMLToModelTest.java
index 908bc74ddbe876471a2dc6f16ec71a36c94f9a76..c591c36b99ab27b490305f2a9d18eb57ac897315 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/GPMLToModelTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/GPMLToModelTest.java
@@ -1,7 +1,7 @@
 package lcsb.mapviewer.wikipathway;
 
+import lcsb.mapviewer.commands.layout.ReactionData;
 import lcsb.mapviewer.common.geometry.PointTransformation;
-import lcsb.mapviewer.converter.model.celldesigner.geometry.ReactionCellDesignerConverter;
 import lcsb.mapviewer.model.graphics.HorizontalAlign;
 import lcsb.mapviewer.model.graphics.VerticalAlign;
 import lcsb.mapviewer.model.map.Drawable;
@@ -37,7 +37,7 @@ public class GPMLToModelTest extends WikipathwaysTestFunctions {
 
   private ModelComparator mc;
 
-  private PointTransformation pt = new PointTransformation();
+  private final PointTransformation pt = new PointTransformation();
 
   @Before
   public void setUp() {
@@ -278,6 +278,7 @@ public class GPMLToModelTest extends WikipathwaysTestFunctions {
     for (final Complex species : model.getComplexList()) {
       if ("p70 S6 Kinases".equals(species.getName())) {
         nameFound = true;
+        break;
       }
     }
     assertTrue("Complex parsed from gpml should have a valid name", nameFound);
@@ -381,7 +382,7 @@ public class GPMLToModelTest extends WikipathwaysTestFunctions {
     String fileName = "testFiles/small/protein_with_modification.gpml";
     Model model1 = new GPMLToModel().getModel(fileName);
 
-    Gene gene = (Gene) model1.getElementByElementId("be3de");
+    Gene gene = model1.getElementByElementId("be3de");
     assertNotNull(gene);
     assertEquals(2, gene.getModificationResidues().size());
     for (ModificationResidue mr : gene.getModificationResidues()) {
@@ -398,7 +399,7 @@ public class GPMLToModelTest extends WikipathwaysTestFunctions {
     String fileName = "testFiles/small/protein_with_modification_2.gpml";
     Model model1 = new GPMLToModel().getModel(fileName);
 
-    Gene protein = (Gene) model1.getElementByElementId("be3de");
+    Gene protein = model1.getElementByElementId("be3de");
     assertNotNull(protein);
     assertEquals(2, protein.getModificationResidues().size());
 
@@ -418,7 +419,7 @@ public class GPMLToModelTest extends WikipathwaysTestFunctions {
     double distance = pt.getPointOnLine(centerLine.getP1(), centerLine.getP2(), 0.5)
         .distance(reaction.getModifiers().get(0).getLine().getEndPoint());
     assertTrue("Modifier is too far from center point: " + distance,
-        distance < ReactionCellDesignerConverter.RECT_SIZE);
+        distance < ReactionData.RECT_SIZE);
 
     assertEquals(0, getWarnings().size());
   }