diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java
index 1e2809aa350f54a8dfca6c68eb9382bc7b34a43b..09a7fc88fc612c38c3fb8389b7b50e42c027de80 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java
@@ -9,6 +9,7 @@ import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.converter.model.celldesigner.structure.fields.CellDesignerModificationResidue;
 import lcsb.mapviewer.model.map.species.AntisenseRna;
+import lcsb.mapviewer.model.map.species.Gene;
 import lcsb.mapviewer.model.map.species.Species;
 import lcsb.mapviewer.model.map.species.field.CodingRegion;
 import lcsb.mapviewer.model.map.species.field.ModificationResidue;
@@ -145,7 +146,8 @@ public class CellDesignerAntisenseRna extends CellDesignerSpecies<AntisenseRna>
   }
 
   @Override
-  public void updateModelElementAfterLayoutAdded(AntisenseRna antisenseRna) {
+  public void updateModelElementAfterLayoutAdded(Species species) {
+    AntisenseRna antisenseRna = (AntisenseRna) species;
     for (CellDesignerModificationResidue region : regions) {
       ModificationResidue mr = region.createModificationResidue(antisenseRna);
       if (mr instanceof CodingRegion) {
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerCompartment.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerCompartment.java
index c502500383a2e016d7c102f3d5e0467cfa6a07ab..77f8d8a7a4a9bf0e5efe35b8699c9b78d26c1848 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerCompartment.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerCompartment.java
@@ -149,8 +149,4 @@ public class CellDesignerCompartment extends CellDesignerElement<Compartment>
     return result;
   }
 
-  @Override
-  public void updateModelElementAfterLayoutAdded(Compartment element) {
-  }
-
 }
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerElement.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerElement.java
index 5f2bf1910863679b298741261a0a5815d317322d..55548200389d25432925ef386d9284d9fbbe5144 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerElement.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerElement.java
@@ -429,8 +429,6 @@ public abstract class CellDesignerElement<T extends Element> implements Serializ
    */
   public abstract T createModelElement(String modelElementId);
 
-  public abstract void updateModelElementAfterLayoutAdded(T element);
-
   /**
    * Sets values from this cell designer structure into model object.
    * 
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java
index cd8e8ee223911038c8461483c443a1c0aa9f84ea..4caaca9c001ae5438fbaf3b236cac4aa5534ac6c 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java
@@ -3,6 +3,8 @@ package lcsb.mapviewer.converter.model.celldesigner.structure;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.log4j.Logger;
+
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.converter.model.celldesigner.structure.fields.CellDesignerModificationResidue;
@@ -21,6 +23,7 @@ import lcsb.mapviewer.model.map.species.field.TranscriptionSite;
  * 
  */
 public class CellDesignerGene extends CellDesignerSpecies<Gene> {
+  Logger logger = Logger.getLogger(CellDesignerGene.class);
 
   /**
    * 
@@ -119,7 +122,8 @@ public class CellDesignerGene extends CellDesignerSpecies<Gene> {
   }
 
   @Override
-  public void updateModelElementAfterLayoutAdded(Gene gene) {
+  public void updateModelElementAfterLayoutAdded(Species species) {
+    Gene gene = (Gene) species;
     for (CellDesignerModificationResidue region : modificationResidues) {
       ModificationResidue mr = region.createModificationResidue(gene);
       if (mr instanceof CodingRegion) {
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java
index d82a2060b31e98fe1fa975d068ba8fc9b430be7b..08420d031d2699700bde7ab379d102cc30fda3a0 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java
@@ -9,6 +9,7 @@ import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.converter.model.celldesigner.structure.fields.CellDesignerModificationResidue;
 import lcsb.mapviewer.model.map.species.Protein;
+import lcsb.mapviewer.model.map.species.Species;
 import lcsb.mapviewer.model.map.species.field.BindingRegion;
 import lcsb.mapviewer.model.map.species.field.ModificationResidue;
 import lcsb.mapviewer.model.map.species.field.Residue;
@@ -153,13 +154,14 @@ public class CellDesignerProtein<T extends Protein> extends CellDesignerSpecies<
   }
 
   @Override
-  public void updateModelElementAfterLayoutAdded(Protein element) {
+  public void updateModelElementAfterLayoutAdded(Species species) {
+    Protein protein= (Protein) species;
     for (CellDesignerModificationResidue region : modificationResidues) {
-      ModificationResidue mr = region.createModificationResidue(element);
+      ModificationResidue mr = region.createModificationResidue(protein);
       if (mr instanceof Residue) {
-        element.addResidue((Residue) mr);
+        protein.addResidue((Residue) mr);
       } else if (mr instanceof BindingRegion) {
-        element.addBindingRegion((BindingRegion) mr);
+        protein.addBindingRegion((BindingRegion) mr);
       } else {
         throw new InvalidArgumentException("Cannot add modification residue to element: " + mr.getClass());
       }
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java
index 1e2406c3749e6975c91a2732429e2cc63b783770..10392b74ac7b448feb1553231fa050c3a005abad 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java
@@ -9,6 +9,7 @@ import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.converter.model.celldesigner.structure.fields.CellDesignerModificationResidue;
 import lcsb.mapviewer.model.map.species.Rna;
+import lcsb.mapviewer.model.map.species.Species;
 import lcsb.mapviewer.model.map.species.field.CodingRegion;
 import lcsb.mapviewer.model.map.species.field.ModificationResidue;
 import lcsb.mapviewer.model.map.species.field.ModificationSite;
@@ -143,7 +144,8 @@ public class CellDesignerRna extends CellDesignerSpecies<Rna> {
   }
 
   @Override
-  public void updateModelElementAfterLayoutAdded(Rna rna) {
+  public void updateModelElementAfterLayoutAdded(Species species) {
+    Rna rna = (Rna) species;
     for (CellDesignerModificationResidue region : regions) {
       ModificationResidue mr = region.createModificationResidue(rna);
       if (mr instanceof CodingRegion) {
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSpecies.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSpecies.java
index 9decf2eaf8cfdf7d2601e6f2509482aab443fe17..58a84bd10ab3a616dbdcb15e9c4bb8a40390ce6b 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSpecies.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSpecies.java
@@ -540,7 +540,6 @@ public class CellDesignerSpecies<T extends Species> extends CellDesignerElement<
     this.constant = constant;
   }
 
-  @Override
   public void updateModelElementAfterLayoutAdded(Species element) {
   }
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParserTest.java
index ed2aa793014903e58f1e4daa7e90b4ec78e7e24d..bdc11d6cca90bc2b2cafcdacc68c6384a04123f6 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParserTest.java
@@ -90,7 +90,7 @@ public class GeneXmlParserTest extends CellDesignerTestFunctions {
   public void testParsePhosphorylatedGene() throws Exception {
     try {
       Model model = getModelForFile("testFiles/problematic/phosphorylated_gene.xml");
-      Gene gene = (Gene) model.getElementByElementId("sa1");
+      Gene gene = model.getElementByElementId("sa1");
       assertEquals(1, gene.getModificationResidues().size());
       ModificationSite residue = (ModificationSite) gene.getModificationResidues().get(0);
       assertEquals(ModificationState.PHOSPHORYLATED, residue.getState());
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java b/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java
index 9c87b44c786016db7b99361ce2ddf4ad03935749..a11f67e20772a9224442bfa308bff8c64a035ef4 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java
@@ -7,6 +7,7 @@ import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 import javax.persistence.OneToMany;
 
+import org.apache.log4j.Logger;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 import org.hibernate.annotations.LazyCollection;
@@ -28,6 +29,8 @@ import lcsb.mapviewer.model.map.species.field.TranscriptionSite;
 @Entity
 @DiscriminatorValue("GENE")
 public class Gene extends Species {
+  
+  Logger logger = Logger.getLogger(Gene.class);
 
   /**
    *