diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java
index 2a71a99c922b843070be949031bb9c62f553153b..8df5c06836ed05d709c12ab1431ce6ed3296ff94 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java
@@ -10,10 +10,13 @@ import java.awt.Desktop;
 import java.awt.geom.Point2D;
 import java.io.ByteArrayInputStream;
 import java.io.File;
+import java.lang.reflect.Modifier;
 import java.nio.file.Files;
+import java.util.Set;
 
 import org.apache.log4j.Logger;
 import org.junit.Test;
+import org.reflections.Reflections;
 
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.converter.ConverterParams;
@@ -294,7 +297,7 @@ public class SbmlExporterTest {
   public void testReactionColorParsing() throws Exception {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/layoutExample/example1.xml"));
     for (Reaction element : model.getReactions()) {
-      for (AbstractNode node: element.getNodes()) {
+      for (AbstractNode node : element.getNodes()) {
         node.getLine().setColor(Color.BLUE);
       }
     }
@@ -306,7 +309,7 @@ public class SbmlExporterTest {
   public void testReactionLineWidthParsing() throws Exception {
     Model model = parser.createModel(new ConverterParams().filename("testFiles/layoutExample/example1.xml"));
     for (Reaction element : model.getReactions()) {
-      for (AbstractNode node: element.getNodes()) {
+      for (AbstractNode node : element.getNodes()) {
         node.getLine().setWidth(12.7);
       }
     }
@@ -314,4 +317,30 @@ public class SbmlExporterTest {
     assertEquals(0, comparator.compare(model, model2));
   }
 
+  @Test
+  public void testExportSpeciesType() throws Exception {
+    Reflections reflections = new Reflections("lcsb.mapviewer.model.map");
+    Set<Class<? extends Species>> classes = reflections.getSubTypesOf(Species.class);
+    for (Class<? extends Element> class1 : classes) {
+      if (!Modifier.isAbstract(class1.getModifiers())) {
+        Model model = new ModelFullIndexed(null);
+        model.setIdModel("Test123");
+        model.setName("x");
+        model.setWidth("300");
+        model.setHeight("300");
+        Element element = class1.getConstructor(String.class).newInstance("x");
+        element.setName("test name");
+        element.setX(10);
+        element.setWidth(10);
+        element.setY(10);
+        element.setHeight(10);
+        model.addElement(element);
+        Model deserializedModel = getModelAfterSerializing(model);
+
+        assertEquals("Class " + class1 + " not exported/imported properly", 0,
+            comparator.compare(model, deserializedModel));
+      }
+    }
+  }
+
 }
diff --git a/model/src/main/java/lcsb/mapviewer/modelutils/map/ElementUtils.java b/model/src/main/java/lcsb/mapviewer/modelutils/map/ElementUtils.java
index 8632b77cf002b32027853b22d7d99fd56f28c505..94777c846e43dc0a6bfa7ddac3d4dadeaccef60e 100644
--- a/model/src/main/java/lcsb/mapviewer/modelutils/map/ElementUtils.java
+++ b/model/src/main/java/lcsb/mapviewer/modelutils/map/ElementUtils.java
@@ -101,7 +101,7 @@ public final class ElementUtils {
       annotatedObjectTree = new ClassTreeNode(BioEntity.class);
       annotatedObjectTree.setData(false);
 
-      Map<Class<?>, ClassTreeNode> map = new LinkedHashMap<Class<?>, ClassTreeNode>();
+      Map<Class<?>, ClassTreeNode> map = new LinkedHashMap<>();
       map.put(Object.class, annotatedObjectTree);
       for (Class<? extends BioEntity> class1 : classes) {
         if (map.get(class1) == null) {