diff --git a/frontend-js/.idea/dictionaries/piotr_gawron.xml b/frontend-js/.idea/dictionaries/piotr_gawron.xml
index e16724fb120576f533b3ba793d1ae9d326fc3728..82a73e70bcd41d5649a9df121b6afa8a010e9b1b 100644
--- a/frontend-js/.idea/dictionaries/piotr_gawron.xml
+++ b/frontend-js/.idea/dictionaries/piotr_gawron.xml
@@ -3,6 +3,7 @@
     <words>
       <w>antisense</w>
       <w>biocompendium</w>
+      <w>celldesigner</w>
       <w>chebi</w>
       <w>chembl</w>
       <w>drugbank</w>
@@ -16,15 +17,20 @@
       <w>kegg</w>
       <w>lcsb</w>
       <w>mapviewer</w>
+      <w>ncbigene</w>
       <w>omim</w>
       <w>pubchem</w>
       <w>pubmed</w>
       <w>reactome</w>
       <w>refseq</w>
+      <w>saccharomyces</w>
       <w>sbgn</w>
+      <w>smtp</w>
       <w>submap</w>
       <w>submaps</w>
+      <w>toxicogenomic</w>
       <w>uniprot</w>
+      <w>wikipathways</w>
     </words>
   </dictionary>
 </component>
\ No newline at end of file
diff --git a/frontend-js/.idea/workspace.xml b/frontend-js/.idea/workspace.xml
index ee3a8ac97ad4169cb45b7396482bacc67b59449e..1456e2a7dbc1d558ccbabba7e05a777ac2866bb6 100644
--- a/frontend-js/.idea/workspace.xml
+++ b/frontend-js/.idea/workspace.xml
@@ -6,22 +6,27 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="c119f0dd-fdda-4d02-a51e-86bc6ef7e50c" name="Default" comment="">
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/webResources.xml" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/testFiles/apiCalls/users/admin.updatePreferences/PATCH_preferences.project-upload.cache-data=false&amp;" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/testFiles/apiCalls/users/admin.updatePreferences/PATCH_preferences.project-upload.cache-data=true&amp;" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/testFiles/apiCalls/projects/sample/comments/models/all/columns=id,elementId,modelId,type,icon,removed&amp;token=MOCK_TOKEN_ID&amp;" afterPath="$PROJECT_DIR$/testFiles/apiCalls/projects/sample/comments/models/all/columns=elementId,icon,id,modelId,removed,type&amp;token=MOCK_TOKEN_ID&amp;" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/testFiles/apiCalls/projects/sample/comments/models/all/columns=id,elementId,modelId,type,icon,removed,pinned&amp;token=MOCK_TOKEN_ID&amp;" afterPath="$PROJECT_DIR$/testFiles/apiCalls/projects/sample/comments/models/all/columns=elementId,icon,id,modelId,pinned,removed,type&amp;token=MOCK_TOKEN_ID&amp;" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/testFiles/apiCalls/projects/sample/comments/models/all/columns=id,elementId,modelId,type,removed,pinned,author,email&amp;token=MOCK_TOKEN_ID&amp;" afterPath="$PROJECT_DIR$/testFiles/apiCalls/projects/sample/comments/models/all/columns=author,elementId,email,id,modelId,pinned,removed,type&amp;token=MOCK_TOKEN_ID&amp;" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,bounds,modelId&amp;type=Drug,Complex,Phenotype,Gene,RNA,Unknown,Degraded,Antisense RNA,Ion,Simple molecule,Protein,Compartment&amp;token=MOCK_TOKEN_ID&amp;" afterPath="$PROJECT_DIR$/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,bounds,modelId&amp;type=Antisense RNA,Compartment,Complex,Degraded,Drug,Gene,Ion,Phenotype,Protein,RNA,Simple molecule,Unknown&amp;token=MOCK_TOKEN_ID&amp;" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,modelId&amp;type=Drug,Complex,Phenotype,Gene,RNA,Unknown,Degraded,Antisense RNA,Ion,Simple molecule,Protein,Compartment&amp;token=MOCK_TOKEN_ID&amp;" afterPath="$PROJECT_DIR$/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,modelId&amp;type=Antisense RNA,Compartment,Complex,Degraded,Drug,Gene,Ion,Phenotype,Protein,RNA,Simple molecule,Unknown&amp;token=MOCK_TOKEN_ID&amp;" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/dictionaries/piotr_gawron.xml" afterPath="$PROJECT_DIR$/.idea/dictionaries/piotr_gawron.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/frontend-js.iml" afterPath="$PROJECT_DIR$/.idea/frontend-js.iml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/js/Configuration.js" afterPath="$PROJECT_DIR$/src/main/js/Configuration.js" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/js/ServerConnector.js" afterPath="$PROJECT_DIR$/src/main/js/ServerConnector.js" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/js/gui/admin/AddProjectDialog.js" afterPath="$PROJECT_DIR$/src/main/js/gui/admin/AddProjectDialog.js" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/js/map/data/User.js" afterPath="$PROJECT_DIR$/src/main/js/map/data/User.js" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/js/map/data/UserPreferences.js" afterPath="$PROJECT_DIR$/src/main/js/map/data/UserPreferences.js" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/js/GuiConnector-mock.js" afterPath="$PROJECT_DIR$/src/test/js/GuiConnector-mock.js" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/js/gui/Header-test.js" afterPath="$PROJECT_DIR$/src/test/js/gui/Header-test.js" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/js/gui/admin/AddProjectDialog-test.js" afterPath="$PROJECT_DIR$/src/test/js/gui/admin/AddProjectDialog-test.js" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/js/gui/admin/EditProjectDialog-test.js" afterPath="$PROJECT_DIR$/src/test/js/gui/admin/EditProjectDialog-test.js" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/js/map/Submap-test.js" afterPath="$PROJECT_DIR$/src/test/js/map/Submap-test.js" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/js/gui/export/AbstractExportPanel.js" afterPath="$PROJECT_DIR$/src/main/js/gui/export/AbstractExportPanel.js" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/js/minerva.js" afterPath="$PROJECT_DIR$/src/main/js/minerva.js" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/js/gui/export/ElementExportPanel-test.js" afterPath="$PROJECT_DIR$/src/test/js/gui/export/ElementExportPanel-test.js" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/js/gui/export/NetworkExportPanel-test.js" afterPath="$PROJECT_DIR$/src/test/js/gui/export/NetworkExportPanel-test.js" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/js/minerva-test.js" afterPath="$PROJECT_DIR$/src/test/js/minerva-test.js" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID&amp;" afterPath="$PROJECT_DIR$/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID&amp;" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java" afterPath="$PROJECT_DIR$/../model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationController.java" afterPath="$PROJECT_DIR$/../rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationController.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java" afterPath="$PROJECT_DIR$/../rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java" afterPath="$PROJECT_DIR$/../rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../rest-api/src/test/java/lcsb/mapviewer/api/configuration/ConfigurationRestImplTest.java" afterPath="$PROJECT_DIR$/../rest-api/src/test/java/lcsb/mapviewer/api/configuration/ConfigurationRestImplTest.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../web/src/main/java/lcsb/mapviewer/bean/ConfigurationBean.java" afterPath="$PROJECT_DIR$/../web/src/main/java/lcsb/mapviewer/bean/ConfigurationBean.java" />
     </list>
     <ignored path="$PROJECT_DIR$/.tmp/" />
     <ignored path="$PROJECT_DIR$/temp/" />
@@ -35,41 +40,105 @@
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="AddProjectDialog-test.js" pinned="false" current-in-tab="true">
+      <file leaf-file-name="ServerConnector.js" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/main/js/ServerConnector.js">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="720">
+              <caret line="849" column="18" lean-forward="false" selection-start-line="849" selection-start-column="18" selection-end-line="849" selection-end-column="18" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="NetworkExportPanel-test.js" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/test/js/gui/export/NetworkExportPanel-test.js">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="85">
+              <caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="NetworkExportPanel.js" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/main/js/gui/export/NetworkExportPanel.js">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="98">
+              <caret line="162" column="23" lean-forward="false" selection-start-line="162" selection-start-column="23" selection-end-line="162" selection-end-column="23" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="AddProjectDialog-test.js" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/test/js/gui/admin/AddProjectDialog-test.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="507">
-              <caret line="52" column="43" lean-forward="true" selection-start-line="52" selection-start-column="43" selection-end-line="52" selection-end-column="43" />
+            <state relative-caret-position="85">
+              <caret line="5" column="0" lean-forward="false" selection-start-line="4" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="AbstractExportPanel.js" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/main/js/gui/export/AbstractExportPanel.js">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="234">
+              <caret line="97" column="5" lean-forward="true" selection-start-line="97" selection-start-column="5" selection-end-line="97" selection-end-column="5" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="EditProjectDialog-test.js" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/test/js/gui/admin/EditProjectDialog-test.js">
+      <file leaf-file-name="ElementExportPanel-test.js" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/test/js/gui/export/ElementExportPanel-test.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="0">
-              <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+            <state relative-caret-position="234">
+              <caret line="31" column="39" lean-forward="false" selection-start-line="31" selection-start-column="39" selection-end-line="31" selection-end-column="39" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="Submap-test.js" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/test/js/map/Submap-test.js">
+      <file leaf-file-name="Configuration.js" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/main/js/Configuration.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="221">
-              <caret line="34" column="0" lean-forward="false" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
+            <state relative-caret-position="362">
+              <caret line="93" column="16" lean-forward="false" selection-start-line="93" selection-start-column="16" selection-end-line="93" selection-end-column="16" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="AddOverlayDialog-test.js" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/test/js/gui/AddOverlayDialog-test.js">
+      <file leaf-file-name="ServerConnector-mock.js" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/test/js/ServerConnector-mock.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="0">
-              <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+            <state relative-caret-position="720">
+              <caret line="76" column="28" lean-forward="false" selection-start-line="71" selection-start-column="0" selection-end-line="82" selection-end-column="0" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="minerva.js" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/main/js/minerva.js">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="243">
+              <caret line="338" column="65" lean-forward="false" selection-start-line="338" selection-start-column="65" selection-end-line="338" selection-end-column="65" />
+              <folding>
+                <marker date="1504026137494" expanded="true" signature="16593:16652" ph="..." />
+                <marker date="1504026137494" expanded="true" signature="19918:19977" ph="..." />
+                <marker date="1504026137494" expanded="true" signature="20785:20844" ph="..." />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="token=MOCK_TOKEN_ID&amp;" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID&amp;">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-583">
+              <caret line="0" column="10147" lean-forward="false" selection-start-line="0" selection-start-column="10147" selection-end-line="0" selection-end-column="10147" />
               <folding />
             </state>
           </provider>
@@ -79,10 +148,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>LEGEND_INDICATIORS_OL</find>
-      <find>elemnts</find>
-      <find>creatMapOptions</find>
-      <find>_directeEvidence</find>
       <find>changedToCustimzed</find>
       <find>getParamsgetParams</find>
       <find>User</find>
@@ -109,6 +174,10 @@
       <find>getUpdateUserPrivilegesUrl</find>
       <find>update</find>
       <find>prefere</find>
+      <find>seri</find>
+      <find>Arra</find>
+      <find>TypeNa</find>
+      <find>value</find>
     </findStrings>
     <replaceStrings>
       <replace>ValidationError</replace>
@@ -132,12 +201,6 @@
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/src/main/js/gui/leftPanel/ChemicalPanel.js" />
-        <option value="$PROJECT_DIR$/src/main/js/map/CustomMap.js" />
-        <option value="$PROJECT_DIR$/src/main/js/map/AbstractCustomMap.js" />
-        <option value="$PROJECT_DIR$/src/main/js/map/Submap.js" />
-        <option value="$PROJECT_DIR$/src/main/js/map/data/Alias.js" />
-        <option value="$PROJECT_DIR$/src/main/js/map/data/Reaction.js" />
         <option value="$PROJECT_DIR$/src/main/js/map/data/LayoutData.js" />
         <option value="$PROJECT_DIR$/src/main/js/map/data/IdentifiedElement.js" />
         <option value="$PROJECT_DIR$/src/main/js/map/data/BioEntity.js" />
@@ -167,7 +230,6 @@
         <option value="$PROJECT_DIR$/src/test/js/map/AbstractCustomMap-test.js" />
         <option value="$PROJECT_DIR$/src/test/js/map/CustomMap-test.js" />
         <option value="$PROJECT_DIR$/src/test/js/map/data/IdentifiedElement-test.js" />
-        <option value="$PROJECT_DIR$/src/test/js/minerva-test.js" />
         <option value="$PROJECT_DIR$/src/main/js/GuiConnector.js" />
         <option value="$PROJECT_DIR$/src/test/js/helper.js" />
         <option value="$PROJECT_DIR$/src/test/js/map/data/UserPreferences-test.js" />
@@ -180,9 +242,16 @@
         <option value="$PROJECT_DIR$/src/main/js/gui/admin/AddProjectDialog.js" />
         <option value="$PROJECT_DIR$/src/test/js/GuiConnector-mock.js" />
         <option value="$PROJECT_DIR$/src/main/js/map/data/UserPreferences.js" />
-        <option value="$PROJECT_DIR$/src/main/js/ServerConnector.js" />
         <option value="$PROJECT_DIR$/testFiles/apiCalls/users/admin.updatePreferences/PATCH_preferences.project-upload.cache-data=true&amp;" />
         <option value="$PROJECT_DIR$/testFiles/apiCalls/users/admin.updatePreferences/PATCH_preferences.project-upload.cache-data=false&amp;" />
+        <option value="$PROJECT_DIR$/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID&amp;" />
+        <option value="$PROJECT_DIR$/src/test/js/minerva-test.js" />
+        <option value="$PROJECT_DIR$/src/main/js/minerva.js" />
+        <option value="$PROJECT_DIR$/src/main/js/Configuration.js" />
+        <option value="$PROJECT_DIR$/src/main/js/ServerConnector.js" />
+        <option value="$PROJECT_DIR$/src/test/js/gui/export/NetworkExportPanel-test.js" />
+        <option value="$PROJECT_DIR$/src/test/js/gui/export/ElementExportPanel-test.js" />
+        <option value="$PROJECT_DIR$/src/main/js/gui/export/AbstractExportPanel.js" />
       </list>
     </option>
   </component>
@@ -379,31 +448,81 @@
               <item name="map" type="462c0819:PsiDirectoryNode" />
               <item name="data" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
+              <item name="frontend-js" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="test" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
+              <item name="frontend-js" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="test" type="462c0819:PsiDirectoryNode" />
+              <item name="js" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
+              <item name="frontend-js" type="462c0819:PsiDirectoryNode" />
+              <item name="testFiles" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
+              <item name="frontend-js" type="462c0819:PsiDirectoryNode" />
+              <item name="testFiles" type="462c0819:PsiDirectoryNode" />
+              <item name="apiCalls" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
+              <item name="frontend-js" type="462c0819:PsiDirectoryNode" />
+              <item name="testFiles" type="462c0819:PsiDirectoryNode" />
+              <item name="apiCalls" type="462c0819:PsiDirectoryNode" />
+              <item name="configuration" type="462c0819:PsiDirectoryNode" />
+            </path>
             <path>
               <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
               <item name="frontend-js" type="462c0819:PsiDirectoryNode" />
               <item name="testFiles" type="462c0819:PsiDirectoryNode" />
+              <item name="apiCalls" type="462c0819:PsiDirectoryNode" />
+              <item name="projects" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
+              <item name="frontend-js" type="462c0819:PsiDirectoryNode" />
+              <item name="testFiles" type="462c0819:PsiDirectoryNode" />
+              <item name="apiCalls" type="462c0819:PsiDirectoryNode" />
+              <item name="projects" type="462c0819:PsiDirectoryNode" />
+              <item name="sample" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
               <item name="frontend-js" type="462c0819:PsiDirectoryNode" />
               <item name="testFiles" type="462c0819:PsiDirectoryNode" />
               <item name="apiCalls" type="462c0819:PsiDirectoryNode" />
+              <item name="projects" type="462c0819:PsiDirectoryNode" />
+              <item name="sample" type="462c0819:PsiDirectoryNode" />
+              <item name="comments" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
               <item name="frontend-js" type="462c0819:PsiDirectoryNode" />
               <item name="testFiles" type="462c0819:PsiDirectoryNode" />
               <item name="apiCalls" type="462c0819:PsiDirectoryNode" />
-              <item name="users" type="462c0819:PsiDirectoryNode" />
+              <item name="projects" type="462c0819:PsiDirectoryNode" />
+              <item name="sample" type="462c0819:PsiDirectoryNode" />
+              <item name="comments" type="462c0819:PsiDirectoryNode" />
+              <item name="models" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
               <item name="frontend-js" type="462c0819:PsiDirectoryNode" />
               <item name="testFiles" type="462c0819:PsiDirectoryNode" />
               <item name="apiCalls" type="462c0819:PsiDirectoryNode" />
-              <item name="users" type="462c0819:PsiDirectoryNode" />
-              <item name="admin.updatePreferences" type="462c0819:PsiDirectoryNode" />
+              <item name="projects" type="462c0819:PsiDirectoryNode" />
+              <item name="sample" type="462c0819:PsiDirectoryNode" />
+              <item name="comments" type="462c0819:PsiDirectoryNode" />
+              <item name="models" type="462c0819:PsiDirectoryNode" />
+              <item name="all" type="462c0819:PsiDirectoryNode" />
             </path>
           </expand>
           <select />
@@ -451,7 +570,7 @@
       </list>
     </option>
   </component>
-  <component name="RunManager" selected="Mocha.AddProjectDialog.onUserPreferencesChange">
+  <component name="RunManager" selected="npm.build-deploy">
     <configuration name="AddProjectDialog.onUserPreferencesChange" type="mocha-javascript-test-runner" factoryName="Mocha" temporary="true" nameIsGenerated="true">
       <node-interpreter>project</node-interpreter>
       <node-options />
@@ -467,37 +586,6 @@
         <name value="onUserPreferencesChange" />
       </test-names>
     </configuration>
-    <configuration name="ServerConnector.removeProject.default" type="mocha-javascript-test-runner" factoryName="Mocha" temporary="true" nameIsGenerated="true">
-      <node-interpreter>project</node-interpreter>
-      <node-options />
-      <working-directory>$PROJECT_DIR$</working-directory>
-      <pass-parent-env>true</pass-parent-env>
-      <envs />
-      <ui>bdd</ui>
-      <extra-mocha-options />
-      <test-kind>TEST</test-kind>
-      <test-file>$PROJECT_DIR$/src/test/js/ServerConnector-test.js</test-file>
-      <test-names>
-        <name value="ServerConnector" />
-        <name value="removeProject" />
-        <name value="default" />
-      </test-names>
-    </configuration>
-    <configuration name="TopMenu.toggleLegend" type="mocha-javascript-test-runner" factoryName="Mocha" temporary="true" nameIsGenerated="true">
-      <node-interpreter>project</node-interpreter>
-      <node-options />
-      <working-directory>$PROJECT_DIR$</working-directory>
-      <pass-parent-env>true</pass-parent-env>
-      <envs />
-      <ui>bdd</ui>
-      <extra-mocha-options />
-      <test-kind>TEST</test-kind>
-      <test-file>$PROJECT_DIR$/src/test/js/gui/topMenu/TopMenu-test.js</test-file>
-      <test-names>
-        <name value="TopMenu" />
-        <name value="toggleLegend" />
-      </test-names>
-    </configuration>
     <configuration name="UserPreferences.constructor" type="mocha-javascript-test-runner" factoryName="Mocha" temporary="true" nameIsGenerated="true">
       <node-interpreter>project</node-interpreter>
       <node-options />
@@ -566,6 +654,21 @@
       <node-interpreter value="project" />
       <envs />
     </configuration>
+    <configuration name="minerva global.getAllBioEntities" type="mocha-javascript-test-runner" factoryName="Mocha" temporary="true" nameIsGenerated="true">
+      <node-interpreter>project</node-interpreter>
+      <node-options />
+      <working-directory>$PROJECT_DIR$</working-directory>
+      <pass-parent-env>true</pass-parent-env>
+      <envs />
+      <ui>bdd</ui>
+      <extra-mocha-options />
+      <test-kind>TEST</test-kind>
+      <test-file>$PROJECT_DIR$/src/test/js/minerva-test.js</test-file>
+      <test-names>
+        <name value="minerva global" />
+        <name value="getAllBioEntities" />
+      </test-names>
+    </configuration>
     <configuration name="profile without coverage" type="NodeJSConfigurationType" factoryName="Node.js" path-to-node="project" path-to-js-file="node_modules/mocha/bin/_mocha" application-parameters="--recursive src/test" working-dir="$PROJECT_DIR$">
       <profiling do-profile="true" />
       <EXTENSION ID="com.jetbrains.nodejs.remote.docker.NodeJSDockerRunConfigurationExtension">
@@ -604,6 +707,17 @@
       <test-kind>TEST_FILE</test-kind>
       <test-file>$PROJECT_DIR$/src/test/js/gui/admin/AddProjectDialog-test.js</test-file>
     </configuration>
+    <configuration name="src\test\js\gui\export\NetworkExportPanel-test.js" type="mocha-javascript-test-runner" factoryName="Mocha" temporary="true" nameIsGenerated="true">
+      <node-interpreter>project</node-interpreter>
+      <node-options />
+      <working-directory>$PROJECT_DIR$</working-directory>
+      <pass-parent-env>true</pass-parent-env>
+      <envs />
+      <ui>bdd</ui>
+      <extra-mocha-options />
+      <test-kind>TEST_FILE</test-kind>
+      <test-file>$PROJECT_DIR$/src/test/js/gui/export/NetworkExportPanel-test.js</test-file>
+    </configuration>
     <configuration name="test without coverage" type="NodeJSConfigurationType" factoryName="Node.js" path-to-node="project" path-to-js-file="node_modules/mocha/bin/_mocha" application-parameters="--recursive src/test" working-dir="$PROJECT_DIR$">
       <EXTENSION ID="com.jetbrains.nodejs.remote.docker.NodeJSDockerRunConfigurationExtension">
         <option name="envVars">
@@ -641,19 +755,19 @@
       <item index="1" class="java.lang.String" itemvalue="Node.js.test without coverage" />
       <item index="2" class="java.lang.String" itemvalue="npm.build-deploy" />
       <item index="3" class="java.lang.String" itemvalue="npm.test" />
-      <item index="4" class="java.lang.String" itemvalue="Mocha.ServerConnector.removeProject.default" />
-      <item index="5" class="java.lang.String" itemvalue="Mocha.TopMenu.toggleLegend" />
-      <item index="6" class="java.lang.String" itemvalue="Mocha.UserPreferences.constructor" />
-      <item index="7" class="java.lang.String" itemvalue="Mocha.src\test\js\gui\admin\AddProjectDialog-test.js" />
-      <item index="8" class="java.lang.String" itemvalue="Mocha.AddProjectDialog.onUserPreferencesChange" />
+      <item index="4" class="java.lang.String" itemvalue="Mocha.UserPreferences.constructor" />
+      <item index="5" class="java.lang.String" itemvalue="Mocha.src\test\js\gui\admin\AddProjectDialog-test.js" />
+      <item index="6" class="java.lang.String" itemvalue="Mocha.AddProjectDialog.onUserPreferencesChange" />
+      <item index="7" class="java.lang.String" itemvalue="Mocha.minerva global.getAllBioEntities" />
+      <item index="8" class="java.lang.String" itemvalue="Mocha.src\test\js\gui\export\NetworkExportPanel-test.js" />
     </list>
     <recent_temporary>
       <list size="5">
-        <item index="0" class="java.lang.String" itemvalue="Mocha.AddProjectDialog.onUserPreferencesChange" />
-        <item index="1" class="java.lang.String" itemvalue="Mocha.src\test\js\gui\admin\AddProjectDialog-test.js" />
-        <item index="2" class="java.lang.String" itemvalue="Mocha.UserPreferences.constructor" />
-        <item index="3" class="java.lang.String" itemvalue="Mocha.TopMenu.toggleLegend" />
-        <item index="4" class="java.lang.String" itemvalue="Mocha.ServerConnector.removeProject.default" />
+        <item index="0" class="java.lang.String" itemvalue="Mocha.src\test\js\gui\export\NetworkExportPanel-test.js" />
+        <item index="1" class="java.lang.String" itemvalue="Mocha.minerva global.getAllBioEntities" />
+        <item index="2" class="java.lang.String" itemvalue="Mocha.AddProjectDialog.onUserPreferencesChange" />
+        <item index="3" class="java.lang.String" itemvalue="Mocha.src\test\js\gui\admin\AddProjectDialog-test.js" />
+        <item index="4" class="java.lang.String" itemvalue="Mocha.UserPreferences.constructor" />
       </list>
     </recent_temporary>
   </component>
@@ -677,54 +791,54 @@
       <workItem from="1503648028157" duration="9357000" />
       <workItem from="1503673204553" duration="8891000" />
       <workItem from="1503992362005" duration="615000" />
-      <workItem from="1504003657581" duration="11648000" />
+      <workItem from="1504003657581" duration="14917000" />
     </task>
     <servers />
   </component>
   <component name="TestHistory">
-    <history-entry file="AddProjectDialog_onUserPreferencesChange - 2017.08.29 at 17h 49m 47s.xml">
-      <configuration name="AddProjectDialog.onUserPreferencesChange" configurationId="mocha-javascript-test-runner" />
+    <history-entry file="minerva_global_getAllBioEntities - 2017.08.29 at 19h 09m 18s.xml">
+      <configuration name="minerva global.getAllBioEntities" configurationId="mocha-javascript-test-runner" />
     </history-entry>
-    <history-entry file="AddProjectDialog_onUserPreferencesChange - 2017.08.29 at 17h 50m 08s.xml">
-      <configuration name="AddProjectDialog.onUserPreferencesChange" configurationId="mocha-javascript-test-runner" />
+    <history-entry file="minerva_global_getAllBioEntities - 2017.08.29 at 19h 10m 18s.xml">
+      <configuration name="minerva global.getAllBioEntities" configurationId="mocha-javascript-test-runner" />
     </history-entry>
-    <history-entry file="AddProjectDialog_onUserPreferencesChange - 2017.08.29 at 17h 55m 59s.xml">
-      <configuration name="AddProjectDialog.onUserPreferencesChange" configurationId="mocha-javascript-test-runner" />
+    <history-entry file="minerva_global_getAllBioEntities - 2017.08.29 at 19h 11m 53s.xml">
+      <configuration name="minerva global.getAllBioEntities" configurationId="mocha-javascript-test-runner" />
     </history-entry>
-    <history-entry file="AddProjectDialog_onUserPreferencesChange - 2017.08.29 at 18h 06m 22s.xml">
-      <configuration name="AddProjectDialog.onUserPreferencesChange" configurationId="mocha-javascript-test-runner" />
+    <history-entry file="minerva_global_getAllBioEntities - 2017.08.29 at 19h 12m 11s.xml">
+      <configuration name="minerva global.getAllBioEntities" configurationId="mocha-javascript-test-runner" />
     </history-entry>
-    <history-entry file="AddProjectDialog_onUserPreferencesChange - 2017.08.29 at 18h 09m 50s.xml">
-      <configuration name="AddProjectDialog.onUserPreferencesChange" configurationId="mocha-javascript-test-runner" />
+    <history-entry file="minerva_global_getAllBioEntities - 2017.08.29 at 19h 17m 50s.xml">
+      <configuration name="minerva global.getAllBioEntities" configurationId="mocha-javascript-test-runner" />
     </history-entry>
-    <history-entry file="AddProjectDialog_onUserPreferencesChange - 2017.08.29 at 18h 12m 14s.xml">
-      <configuration name="AddProjectDialog.onUserPreferencesChange" configurationId="mocha-javascript-test-runner" />
+    <history-entry file="minerva_global_getAllBioEntities - 2017.08.29 at 19h 21m 45s.xml">
+      <configuration name="minerva global.getAllBioEntities" configurationId="mocha-javascript-test-runner" />
     </history-entry>
-    <history-entry file="AddProjectDialog_onUserPreferencesChange - 2017.08.29 at 18h 23m 26s.xml">
-      <configuration name="AddProjectDialog.onUserPreferencesChange" configurationId="mocha-javascript-test-runner" />
+    <history-entry file="minerva_global_getAllBioEntities - 2017.08.29 at 19h 24m 13s.xml">
+      <configuration name="minerva global.getAllBioEntities" configurationId="mocha-javascript-test-runner" />
     </history-entry>
-    <history-entry file="AddProjectDialog_onUserPreferencesChange - 2017.08.29 at 18h 25m 48s.xml">
-      <configuration name="AddProjectDialog.onUserPreferencesChange" configurationId="mocha-javascript-test-runner" />
+    <history-entry file="minerva_global_getAllBioEntities - 2017.08.29 at 19h 24m 41s.xml">
+      <configuration name="minerva global.getAllBioEntities" configurationId="mocha-javascript-test-runner" />
     </history-entry>
-    <history-entry file="AddProjectDialog_onUserPreferencesChange - 2017.08.29 at 18h 27m 32s.xml">
-      <configuration name="AddProjectDialog.onUserPreferencesChange" configurationId="mocha-javascript-test-runner" />
+    <history-entry file="src_test_js_gui_export_NetworkExportPanel-test_js - 2017.08.29 at 19h 32m 50s.xml">
+      <configuration name="src\test\js\gui\export\NetworkExportPanel-test.js" configurationId="mocha-javascript-test-runner" />
     </history-entry>
-    <history-entry file="AddProjectDialog_onUserPreferencesChange - 2017.08.29 at 18h 28m 06s.xml">
-      <configuration name="AddProjectDialog.onUserPreferencesChange" configurationId="mocha-javascript-test-runner" />
+    <history-entry file="src_test_js_gui_export_NetworkExportPanel-test_js - 2017.08.29 at 19h 34m 04s.xml">
+      <configuration name="src\test\js\gui\export\NetworkExportPanel-test.js" configurationId="mocha-javascript-test-runner" />
     </history-entry>
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="58107000" />
+    <option name="totallyTimeSpent" value="61376000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.18020834" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20364584" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.5679475" sideWeight="0.33802083" order="7" side_tool="true" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.33833176" sideWeight="0.49791667" order="10" side_tool="false" content_ui="tabs" x="-170" y="502" width="1920" height="493" />
+      <window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24554826" sideWeight="0.49791667" order="10" side_tool="false" content_ui="tabs" x="-170" y="502" width="1920" height="493" />
       <window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
@@ -773,41 +887,6 @@
     <watches-manager />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/src/test/js/logger.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="119">
-          <caret line="7" column="2" lean-forward="false" selection-start-line="7" selection-start-column="2" selection-end-line="7" selection-end-column="2" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/js/Functions-test.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="375">
-          <caret line="238" column="19" lean-forward="false" selection-start-line="238" selection-start-column="19" selection-end-line="238" selection-end-column="19" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/js/gui/leftPanel/GenericSearchPanel-test.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="323">
-          <caret line="111" column="27" lean-forward="false" selection-start-line="111" selection-start-column="27" selection-end-line="111" selection-end-column="27" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/js/gui/leftPanel/MiRnaPanel-test.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="272">
-          <caret line="37" column="33" lean-forward="false" selection-start-line="37" selection-start-column="33" selection-end-line="37" selection-end-column="33" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/js/gui/leftPanel/SubmapPanel-test.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="204">
-          <caret line="12" column="10" lean-forward="false" selection-start-line="12" selection-start-column="10" selection-end-line="12" selection-end-column="10" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/test/js/gui/leftPanel/PublicationListDialog-test.js">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="204">
@@ -878,13 +957,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/js/minerva-test.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="297">
-          <caret line="22" column="0" lean-forward="false" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/js/map/marker/AbstractMarker.js">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="467">
@@ -907,18 +979,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/js/minerva.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="11135">
-          <caret line="655" column="28" lean-forward="false" selection-start-line="655" selection-start-column="28" selection-end-line="655" selection-end-column="28" />
-          <folding>
-            <marker date="1503677591650" expanded="true" signature="16592:16651" ph="..." />
-            <marker date="1503677591650" expanded="true" signature="19917:19976" ph="..." />
-            <marker date="1503677591650" expanded="true" signature="20784:20843" ph="..." />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/js/SessionData.js">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="935">
@@ -927,14 +987,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/js/Configuration.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="41" column="27" lean-forward="false" selection-start-line="41" selection-start-column="27" selection-end-line="41" selection-end-column="27" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/js/Functions.js">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="1190">
@@ -983,14 +1035,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/js/gui/export/AbstractExportPanel.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="17">
-          <caret line="9" column="42" lean-forward="false" selection-start-line="9" selection-start-column="42" selection-end-line="9" selection-end-column="42" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/js/gui/OverviewDialog.js">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
@@ -1031,14 +1075,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/js/gui/AddOverlayDialog-test.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/test/js/gui/LoginDialog-test.js">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="102">
@@ -1103,22 +1139,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/js/ServerConnector-mock.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="774">
-          <caret line="76" column="28" lean-forward="false" selection-start-line="71" selection-start-column="0" selection-end-line="82" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/js/ServerConnector.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="269">
-          <caret line="849" column="18" lean-forward="true" selection-start-line="849" selection-start-column="18" selection-end-line="849" selection-end-column="18" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/js/map/data/UserPreferences.js">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="536">
@@ -1162,10 +1182,110 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/test/js/mocha-config.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/test/js/minerva-test.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="34">
+          <caret line="2" column="23" lean-forward="false" selection-start-line="2" selection-start-column="23" selection-end-line="2" selection-end-column="23" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/test/js/gui/AddOverlayDialog-test.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/js/ServerConnector.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="720">
+          <caret line="849" column="18" lean-forward="false" selection-start-line="849" selection-start-column="18" selection-end-line="849" selection-end-column="18" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/test/js/ServerConnector-mock.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="720">
+          <caret line="76" column="28" lean-forward="false" selection-start-line="71" selection-start-column="0" selection-end-line="82" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/js/Configuration.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="362">
+          <caret line="93" column="16" lean-forward="false" selection-start-line="93" selection-start-column="16" selection-end-line="93" selection-end-column="16" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID&amp;">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-583">
+          <caret line="0" column="10147" lean-forward="false" selection-start-line="0" selection-start-column="10147" selection-end-line="0" selection-end-column="10147" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/js/minerva.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="243">
+          <caret line="338" column="65" lean-forward="false" selection-start-line="338" selection-start-column="65" selection-end-line="338" selection-end-column="65" />
+          <folding>
+            <marker date="1504026137494" expanded="true" signature="16593:16652" ph="..." />
+            <marker date="1504026137494" expanded="true" signature="19918:19977" ph="..." />
+            <marker date="1504026137494" expanded="true" signature="20785:20844" ph="..." />
+          </folding>
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/src/test/js/gui/admin/AddProjectDialog-test.js">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="507">
-          <caret line="52" column="43" lean-forward="true" selection-start-line="52" selection-start-column="43" selection-end-line="52" selection-end-column="43" />
+        <state relative-caret-position="85">
+          <caret line="5" column="0" lean-forward="false" selection-start-line="4" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/test/js/gui/export/NetworkExportPanel-test.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="85">
+          <caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/js/gui/export/NetworkExportPanel.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="98">
+          <caret line="162" column="23" lean-forward="false" selection-start-line="162" selection-start-column="23" selection-end-line="162" selection-end-column="23" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/test/js/gui/export/ElementExportPanel-test.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="234">
+          <caret line="31" column="39" lean-forward="false" selection-start-line="31" selection-start-column="39" selection-end-line="31" selection-end-column="39" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/js/gui/export/AbstractExportPanel.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="234">
+          <caret line="97" column="5" lean-forward="true" selection-start-line="97" selection-start-column="5" selection-end-line="97" selection-end-column="5" />
           <folding />
         </state>
       </provider>
diff --git a/frontend-js/src/main/js/Configuration.js b/frontend-js/src/main/js/Configuration.js
index d5d7899ec4a5e39682ae9698bb61bee0331b962f..549b444600c192ca59ed1402cdef2c34be59ac36 100644
--- a/frontend-js/src/main/js/Configuration.js
+++ b/frontend-js/src/main/js/Configuration.js
@@ -52,51 +52,58 @@ function Configuration(json) {
   self.setPrivilegeTypes(json.privilegeTypes);
 }
 
-Configuration.prototype.setOption = function(type, value) {
+Configuration.prototype.setOption = function (type, value) {
   this._options[type] = value;
 };
-Configuration.prototype.getOption = function(type) {
+Configuration.prototype.getOption = function (type) {
   return this._options[type];
 };
 
-Configuration.prototype.setOverlayTypes = function(overlayTypes) {
+Configuration.prototype.setOverlayTypes = function (overlayTypes) {
   this._overlayTypes = overlayTypes;
 };
-Configuration.prototype.getOverlayTypes = function() {
+Configuration.prototype.getOverlayTypes = function () {
   return this._overlayTypes;
 };
 
-Configuration.prototype.setImageConverters = function(imageConverters) {
+Configuration.prototype.setImageConverters = function (imageConverters) {
   this._imageConverters = imageConverters;
 };
-Configuration.prototype.getImageConverters = function() {
+Configuration.prototype.getImageConverters = function () {
   return this._imageConverters;
 };
 
-Configuration.prototype.setModelConverters = function(modelConverters) {
+Configuration.prototype.setModelConverters = function (modelConverters) {
   this._modelConverters = modelConverters;
 };
-Configuration.prototype.getModelConverters = function() {
+Configuration.prototype.getModelConverters = function () {
   return this._modelConverters;
 };
 
-Configuration.prototype.setElementTypes = function(elementTypes) {
+Configuration.prototype.setElementTypes = function (elementTypes) {
   this._elementTypes = elementTypes;
 };
-Configuration.prototype.getElementTypes = function() {
+Configuration.prototype.getElementTypes = function () {
   return this._elementTypes;
 };
+Configuration.prototype.getElementTypeNames = function () {
+  var result = [];
+  for (var i = 0; i < this._elementTypes.length; i++) {
+    result.push(this._elementTypes[i].name);
+  }
+  return result;
+};
 
-Configuration.prototype.setReactionTypes = function(reactionTypes) {
+Configuration.prototype.setReactionTypes = function (reactionTypes) {
   this._reactionTypes = reactionTypes;
 };
-Configuration.prototype.getReactionTypes = function() {
+Configuration.prototype.getReactionTypes = function () {
   return this._reactionTypes;
 };
 
-Configuration.prototype.setMiriamTypes = function(miriamTypes) {
+Configuration.prototype.setMiriamTypes = function (miriamTypes) {
   this._miriamTypes = [];
-  for ( var key in miriamTypes) {
+  for (var key in miriamTypes) {
     if (miriamTypes.hasOwnProperty(key)) {
       var typeData = miriamTypes[key];
       this._miriamTypes.push(new MiriamType(typeData, key));
@@ -104,9 +111,9 @@ Configuration.prototype.setMiriamTypes = function(miriamTypes) {
   }
 };
 
-Configuration.prototype.setPrivilegeTypes = function(privilegeTypes) {
+Configuration.prototype.setPrivilegeTypes = function (privilegeTypes) {
   this._privilegeTypes = [];
-  for ( var key in privilegeTypes) {
+  for (var key in privilegeTypes) {
     if (privilegeTypes.hasOwnProperty(key)) {
       var typeData = privilegeTypes[key];
       this._privilegeTypes.push(new PrivilegeType(typeData, key));
@@ -114,11 +121,11 @@ Configuration.prototype.setPrivilegeTypes = function(privilegeTypes) {
   }
 };
 
-Configuration.prototype.getPrivilegeTypes = function() {
+Configuration.prototype.getPrivilegeTypes = function () {
   return this._privilegeTypes;
 };
 
-Configuration.prototype.getMiriamTypeByName = function(name) {
+Configuration.prototype.getMiriamTypeByName = function (name) {
   var self = this;
   for (var i = 0; i < self._miriamTypes.length; i++) {
     var miriamType = self._miriamTypes[i];
@@ -129,16 +136,16 @@ Configuration.prototype.getMiriamTypeByName = function(name) {
   return null;
 };
 
-Configuration.prototype.setModificationStateTypes = function(modificationStateTypes) {
+Configuration.prototype.setModificationStateTypes = function (modificationStateTypes) {
   this._modificationStateTypes = [];
-  for ( var key in modificationStateTypes) {
+  for (var key in modificationStateTypes) {
     if (modificationStateTypes.hasOwnProperty(key)) {
       var typeData = modificationStateTypes[key];
       this._modificationStateTypes.push(new ModificationStateType(typeData, key));
     }
   }
 };
-Configuration.prototype.getModificationStateTypeByName = function(name) {
+Configuration.prototype.getModificationStateTypeByName = function (name) {
   var self = this;
   for (var i = 0; i < self._modificationStateTypes.length; i++) {
     var modificationStateType = self._modificationStateTypes[i];
diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js
index 40964f80951dfca19192107f409f9ce127ea462f..64693d0c5dacadc86daf3c28a7e57ebc4268e9c0 100644
--- a/frontend-js/src/main/js/ServerConnector.js
+++ b/frontend-js/src/main/js/ServerConnector.js
@@ -425,7 +425,11 @@ ServerConnector.idsToString = function (ids) {
   var result = "";
   if (ids !== undefined) {
     ids.sort(function (a, b) {
-      return a - b;
+      if (typeof a === "string") {
+        return a.localeCompare(b);
+      } else {
+        return a - b;
+      }
     });
     for (var i = 0; i < ids.length; i++) {
       if (result !== "") {
diff --git a/frontend-js/src/main/js/gui/export/AbstractExportPanel.js b/frontend-js/src/main/js/gui/export/AbstractExportPanel.js
index c55f8063bcd6e589b72962ebd8e3cb77c07a7680..1f0cb52ca941f443a321813a5f5cb3c5c4727e6c 100644
--- a/frontend-js/src/main/js/gui/export/AbstractExportPanel.js
+++ b/frontend-js/src/main/js/gui/export/AbstractExportPanel.js
@@ -19,7 +19,7 @@ function AbstractExportPanel(params) {
 AbstractExportPanel.prototype = Object.create(Panel.prototype);
 AbstractExportPanel.prototype.constructor = AbstractExportPanel;
 
-AbstractExportPanel.prototype.init = function() {
+AbstractExportPanel.prototype.init = function () {
 
 };
 
@@ -33,21 +33,21 @@ function compareSimple(val1, val2) {
   }
 }
 
-AbstractExportPanel.prototype._createMiriamTypeDiv = function(annotations) {
+AbstractExportPanel.prototype._createMiriamTypeDiv = function (annotations) {
   var self = this;
   var typeDiv = Functions.createElement({
-    type : "div",
-    name : "miriamSelectDiv",
-    className : "minerva-export-dual-listbox-container",
+    type: "div",
+    name: "miriamSelectDiv",
+    className: "minerva-export-dual-listbox-container",
   });
   typeDiv.appendChild(Functions.createElement({
-    type : "h4",
-    content : " Annotations:",
+    type: "h4",
+    content: " Annotations:",
   }));
 
   var selectElement = Functions.createElement({
-    type : "select",
-    className : "minerva-multi-select",
+    type: "select",
+    className: "minerva-multi-select",
   });
   typeDiv.appendChild(selectElement);
 
@@ -58,6 +58,7 @@ AbstractExportPanel.prototype._createMiriamTypeDiv = function(annotations) {
       return compareSimple(-entry1.count, -entry2.count);
     }
   }
+
   annotations.sort(compare);
 
   for (var i = 0; i < annotations.length; i++) {
@@ -68,7 +69,7 @@ AbstractExportPanel.prototype._createMiriamTypeDiv = function(annotations) {
     option.value = miriamType.getName();
     if (count > 0) {
       option.innerHTML = "<div class='minerva-multi-select-special'>" + miriamType.getCommonName() + " (" + count
-          + ")</div>";
+        + ")</div>";
     } else {
       option.innerHTML = "<div >" + miriamType.getCommonName() + "</div>";
     }
@@ -79,109 +80,113 @@ AbstractExportPanel.prototype._createMiriamTypeDiv = function(annotations) {
   return typeDiv;
 };
 
-AbstractExportPanel.prototype.createDualListbox = function(selectElement) {
+AbstractExportPanel.prototype.createDualListbox = function (selectElement) {
   return new DualListbox(selectElement, {
-    availableTitle : 'Available',
-    selectedTitle : 'Used',
-    addButtonText : '>',
-    removeButtonText : '<',
-    addAllButtonText : '>>',
-    removeAllButtonText : '<<'
+    availableTitle: 'Available',
+    selectedTitle: 'Used',
+    addButtonText: '>',
+    removeButtonText: '<',
+    addAllButtonText: '>>',
+    removeAllButtonText: '<<'
   });
 };
 
-AbstractExportPanel.prototype._createSelectTypeDiv = function(elementTypes) {
+AbstractExportPanel.prototype._createSelectTypeDiv = function (elementTypes) {
   var typeDiv = Functions.createElement({
-    type : "div",
-    name : "typeSelectDiv",
+    type: "div",
+    name: "typeSelectDiv",
   });
   typeDiv.appendChild(Functions.createElement({
-    type : "h4",
-    content : " TYPE:",
+    type: "h4",
+    content: " TYPE:",
   }));
   var choicesContainer = Functions.createElement({
-    type : "ul",
-    className : "minerva-checkbox-grid"
+    type: "ul",
+    className: "minerva-checkbox-grid"
   });
   typeDiv.appendChild(choicesContainer);
+  var processedNames = [];
   for (var i = 0; i < elementTypes.length; i++) {
     var elementType = elementTypes[i];
-    var row = Functions.createElement({
-      type : "li",
-      content : "<div class=\"checkbox\"><label> <input type=\"checkbox\" name=\"" + elementType + "\" value=\""
-          + elementType + "\" />" + elementType + "</label></div>"
-    });
-    choicesContainer.appendChild(row);
+    var name = elementType.name;
+    if (processedNames[name] === undefined) {
+      processedNames[name] = true;
+      var row = Functions.createElement({
+        type: "li",
+        content: "<div class=\"checkbox\"><label> <input type=\"checkbox\" name=\"" + name + "\" value=\"" + name + "\" />" + name + "</label></div>"
+      });
+      choicesContainer.appendChild(row);
+    }
   }
   choicesContainer.appendChild(Functions.createElement({
-    type : "li",
-    content : "<div class=\"checkbox\"><label> <input type=\"checkbox\" name=\"ALL\" value=\"ALL\" />ALL</label></div>"
+    type: "li",
+    content: "<div class=\"checkbox\"><label> <input type=\"checkbox\" name=\"ALL\" value=\"ALL\" />ALL</label></div>"
   }));
   return typeDiv;
 };
 
-AbstractExportPanel.prototype.getSelectedTypes = function() {
+AbstractExportPanel.prototype.getSelectedTypes = function () {
   var self = this;
 
   var div = $("div[name='typeSelectDiv']", $(self.getElement()))[0];
   var result = [];
   var selectedAll = false;
-  $(":checked", $(div)).each(function(index, element) {
+  $(":checked", $(div)).each(function (index, element) {
     if (element.value === "ALL") {
       selectedAll = true;
     }
     result.push(element.value);
   });
   if (selectedAll) {
-    return ServerConnector.getConfiguration().then(function(configuration) {
-      return configuration.getElementTypes();
+    return ServerConnector.getConfiguration().then(function (configuration) {
+      return configuration.getElementTypeNames();
     });
   }
 
   return Promise.resolve(result);
 };
 
-AbstractExportPanel.prototype.setMiriamTypesDualListbox = function(dualListbox) {
+AbstractExportPanel.prototype.setMiriamTypesDualListbox = function (dualListbox) {
   this._miriamTypesDualListbox = dualListbox;
 };
-AbstractExportPanel.prototype.getMiriamTypesDualListbox = function() {
+AbstractExportPanel.prototype.getMiriamTypesDualListbox = function () {
   return this._miriamTypesDualListbox;
 };
 
-AbstractExportPanel.prototype._createSelectColumnDiv = function(columnTypes) {
+AbstractExportPanel.prototype._createSelectColumnDiv = function (columnTypes) {
   var columnDiv = Functions.createElement({
-    type : "div",
-    name : "columnSelectDiv",
+    type: "div",
+    name: "columnSelectDiv",
   });
   columnDiv.appendChild(Functions.createElement({
-    type : "h4",
-    content : " COLUMN:",
+    type: "h4",
+    content: " COLUMN:",
   }));
   var choicesContainer = Functions.createElement({
-    type : "ul",
-    className : "minerva-checkbox-grid"
+    type: "ul",
+    className: "minerva-checkbox-grid"
   });
 
   columnDiv.appendChild(choicesContainer);
   for (var i = 0; i < columnTypes.length; i++) {
     var columnType = columnTypes[i];
     var row = Functions.createElement({
-      type : "li",
-      content : "<div class=\"checkbox\"><label> <input type=\"checkbox\" name=\"column_" + columnType.columnName
-          + "\" value=\"" + columnType.columnName + "\" />" + columnType.name + "</label></div>"
+      type: "li",
+      content: "<div class=\"checkbox\"><label> <input type=\"checkbox\" name=\"column_" + columnType.columnName
+      + "\" value=\"" + columnType.columnName + "\" />" + columnType.name + "</label></div>"
     });
     choicesContainer.appendChild(row);
   }
   choicesContainer.appendChild(Functions.createElement({
-    type : "li",
-    content : "<div class=\"checkbox\"><label> <input type=\"checkbox\" name=\"ALL\" value=\"ALL\" />ALL</label></div>"
+    type: "li",
+    content: "<div class=\"checkbox\"><label> <input type=\"checkbox\" name=\"ALL\" value=\"ALL\" />ALL</label></div>"
   }));
   return columnDiv;
 };
 
-AbstractExportPanel.prototype.getSelectedMiriamTypes = function() {
+AbstractExportPanel.prototype.getSelectedMiriamTypes = function () {
   var self = this;
-  return ServerConnector.getConfiguration().then(function(configuration) {
+  return ServerConnector.getConfiguration().then(function (configuration) {
     var selected = self.getMiriamTypesDualListbox().selected;
     var result = [];
     for (var i = 0; i < selected.length; i++) {
@@ -192,13 +197,13 @@ AbstractExportPanel.prototype.getSelectedMiriamTypes = function() {
   });
 };
 
-AbstractExportPanel.prototype.getSelectedColumns = function() {
+AbstractExportPanel.prototype.getSelectedColumns = function () {
   var self = this;
 
   var div = $("div[name='columnSelectDiv']", $(self.getElement()))[0];
   var selectedColumnMap = [];
   var selectedAll = false;
-  $(":checked", $(div)).each(function(index, element) {
+  $(":checked", $(div)).each(function (index, element) {
     if (element.value === "ALL") {
       selectedAll = true;
     }
@@ -221,10 +226,10 @@ AbstractExportPanel.prototype.getSelectedColumns = function() {
   return Promise.resolve(result);
 };
 
-AbstractExportPanel.prototype._getCompartmentNames = function() {
+AbstractExportPanel.prototype._getCompartmentNames = function () {
   var self = this;
   var compartments = [];
-  return self._getAllCompartments().then(function(result) {
+  return self._getAllCompartments().then(function (result) {
 
     var addedNames = [];
     for (var i = 0; i < result.length; i++) {
@@ -238,16 +243,16 @@ AbstractExportPanel.prototype._getCompartmentNames = function() {
   });
 };
 
-AbstractExportPanel.prototype.getModels = function() {
+AbstractExportPanel.prototype.getModels = function () {
   var self = this;
-  var models = [ self.getProject().getModel() ];
+  var models = [self.getProject().getModel()];
   for (var i = 0; i < self.getProject().getModel().getSubmodels().length; i++) {
     models.push(self.getProject().getModel().getSubmodels()[i]);
   }
   return models;
 };
 
-AbstractExportPanel.prototype._getAllCompartments = function() {
+AbstractExportPanel.prototype._getAllCompartments = function () {
   var self = this;
   var compartments = [];
 
@@ -258,7 +263,7 @@ AbstractExportPanel.prototype._getAllCompartments = function() {
     promises.push(models[i].getCompartments());
   }
 
-  return Promise.all(promises).then(function(result) {
+  return Promise.all(promises).then(function (result) {
     for (var i = 0; i < result.length; i++) {
       var modelCompartments = result[i];
       for (var j = 0; j < modelCompartments.length; j++) {
@@ -269,28 +274,28 @@ AbstractExportPanel.prototype._getAllCompartments = function() {
   });
 };
 
-AbstractExportPanel.prototype._createDownloadButton = function() {
+AbstractExportPanel.prototype._createDownloadButton = function () {
   var self = this;
   var downloadDiv = Functions.createElement({
-    type : "div",
-    name : "downloadDiv",
-    style : "clear:both; padding: 10px;",
+    type: "div",
+    name: "downloadDiv",
+    style: "clear:both; padding: 10px;",
   });
   var button = Functions.createElement({
-    type : "button",
-    name : "downloadButton",
-    content : " Download",
-    onclick : function() {
+    type: "button",
+    name: "downloadButton",
+    content: " Download",
+    onclick: function () {
       GuiConnector.showProcessing();
-      return self.createResponseString().then(function(result) {
-        var blob = new Blob([ result ], {
-          type : "text/plain;charset=utf-8"
+      return self.createResponseString().then(function (result) {
+        var blob = new Blob([result], {
+          type: "text/plain;charset=utf-8"
         });
         var FileSaver = require("file-saver");
         return FileSaver.saveAs(blob, self.getSaveFilename());
-      }).then(function() {
+      }).then(function () {
         GuiConnector.hideProcessing();
-      }, function(error) {
+      }, function (error) {
         GuiConnector.hideProcessing();
         GuiConnector.alert(error);
       });
@@ -301,28 +306,28 @@ AbstractExportPanel.prototype._createDownloadButton = function() {
   return downloadDiv;
 };
 
-AbstractExportPanel.prototype.getSaveFilename = function() {
+AbstractExportPanel.prototype.getSaveFilename = function () {
   var self = this;
   return self.getProject().getProjectId() + "-" + self.getPanelName() + ".txt";
 };
 
-AbstractExportPanel.prototype._createSelectIncludedCompartmentDiv = function() {
+AbstractExportPanel.prototype._createSelectIncludedCompartmentDiv = function () {
   var self = this;
   var typeDiv = Functions.createElement({
-    type : "div",
-    name : "includedCompartmentSelectDiv",
-    className : "minerva-export-dual-listbox-container",
+    type: "div",
+    name: "includedCompartmentSelectDiv",
+    className: "minerva-export-dual-listbox-container",
   });
   typeDiv.appendChild(Functions.createElement({
-    type : "h4",
-    content : " Included compartment/pathways:",
+    type: "h4",
+    content: " Included compartment/pathways:",
   }));
 
-  return self._getCompartmentNames().then(function(compartmentNames) {
+  return self._getCompartmentNames().then(function (compartmentNames) {
 
     var selectElement = Functions.createElement({
-      type : "select",
-      className : "minerva-multi-select",
+      type: "select",
+      className: "minerva-multi-select",
     });
     typeDiv.appendChild(selectElement);
 
@@ -339,23 +344,23 @@ AbstractExportPanel.prototype._createSelectIncludedCompartmentDiv = function() {
   });
 };
 
-AbstractExportPanel.prototype._createSelectExcludedCompartmentDiv = function() {
+AbstractExportPanel.prototype._createSelectExcludedCompartmentDiv = function () {
   var self = this;
   var typeDiv = Functions.createElement({
-    type : "div",
-    name : "excludedCompartmentSelectDiv",
-    className : "minerva-export-dual-listbox-container",
+    type: "div",
+    name: "excludedCompartmentSelectDiv",
+    className: "minerva-export-dual-listbox-container",
   });
   typeDiv.appendChild(Functions.createElement({
-    type : "h4",
-    content : " Excluded compartment/pathways:",
+    type: "h4",
+    content: " Excluded compartment/pathways:",
   }));
 
-  return self._getCompartmentNames().then(function(compartmentNames) {
+  return self._getCompartmentNames().then(function (compartmentNames) {
 
     var selectElement = Functions.createElement({
-      type : "select",
-      className : "minerva-multi-select",
+      type: "select",
+      className: "minerva-multi-select",
     });
     typeDiv.appendChild(selectElement);
 
@@ -372,14 +377,14 @@ AbstractExportPanel.prototype._createSelectExcludedCompartmentDiv = function() {
   });
 };
 
-AbstractExportPanel.prototype.setIncludedCompartmentsDualListbox = function(dualListbox) {
+AbstractExportPanel.prototype.setIncludedCompartmentsDualListbox = function (dualListbox) {
   this._includedCompartmentsDualListbox = dualListbox;
 };
-AbstractExportPanel.prototype.getIncludedCompartmentsDualListbox = function() {
+AbstractExportPanel.prototype.getIncludedCompartmentsDualListbox = function () {
   return this._includedCompartmentsDualListbox;
 };
 
-AbstractExportPanel.prototype.getSelectedIncludedCompartments = function() {
+AbstractExportPanel.prototype.getSelectedIncludedCompartments = function () {
   var self = this;
   var list = self.getIncludedCompartmentsDualListbox().selected;
   var names = [];
@@ -388,7 +393,7 @@ AbstractExportPanel.prototype.getSelectedIncludedCompartments = function() {
     var element = list[i];
     names[element.dataset.id] = true;
   }
-  return self._getAllCompartments().then(function(compartments) {
+  return self._getAllCompartments().then(function (compartments) {
     for (var i = 0; i < compartments.length; i++) {
       var compartment = compartments[i];
       if (names[compartment.getName()]) {
@@ -399,14 +404,14 @@ AbstractExportPanel.prototype.getSelectedIncludedCompartments = function() {
   });
 };
 
-AbstractExportPanel.prototype.setExcludedCompartmentsDualListbox = function(dualListbox) {
+AbstractExportPanel.prototype.setExcludedCompartmentsDualListbox = function (dualListbox) {
   this._excludedCompartmentsDualListbox = dualListbox;
 };
-AbstractExportPanel.prototype.getExcludedCompartmentsDualListbox = function() {
+AbstractExportPanel.prototype.getExcludedCompartmentsDualListbox = function () {
   return this._excludedCompartmentsDualListbox;
 };
 
-AbstractExportPanel.prototype.getSelectedExcludedCompartments = function() {
+AbstractExportPanel.prototype.getSelectedExcludedCompartments = function () {
   var self = this;
   var list = self.getExcludedCompartmentsDualListbox().selected;
   var names = [];
@@ -415,7 +420,7 @@ AbstractExportPanel.prototype.getSelectedExcludedCompartments = function() {
     var element = list[i];
     names[element.dataset.id] = true;
   }
-  return self._getAllCompartments().then(function(compartments) {
+  return self._getAllCompartments().then(function (compartments) {
     for (var i = 0; i < compartments.length; i++) {
       var compartment = compartments[i];
       if (names[compartment.getName()]) {
@@ -426,7 +431,7 @@ AbstractExportPanel.prototype.getSelectedExcludedCompartments = function() {
   });
 };
 
-AbstractExportPanel.prototype.createResponseHeader = function(columns, miriamTypes) {
+AbstractExportPanel.prototype.createResponseHeader = function (columns, miriamTypes) {
   var stringBuilder = [];
   var i;
   for (i = 0; i < columns.length; i++) {
diff --git a/frontend-js/src/main/js/minerva.js b/frontend-js/src/main/js/minerva.js
index deed136a3b0d68743e29305d3b3038694cf32e99..3e3ece2499c8e66f91f8e960b5f6c66503d1e808 100644
--- a/frontend-js/src/main/js/minerva.js
+++ b/frontend-js/src/main/js/minerva.js
@@ -298,7 +298,7 @@ function createResult(customMap) {
             options: {
               icon: identifiedElements[i].getIcon(),
               color: identifiedElements[i].getColor(),
-              opacity: identifiedElements[i].getOpacity(),
+              opacity: identifiedElements[i].getOpacity()
             }
           };
           result.push(row);
@@ -336,8 +336,8 @@ function createResult(customMap) {
       var promises = [];
       for (i = 0; i < models.length; i++) {
         promises.push(models[i].getAliases({
-          type: customMap.getConfiguration().getElementTypes(),
-          complete: true,
+          type: customMap.getConfiguration().getElementTypeNames(),
+          complete: true
         }));
       }
       return Promise.all(promises).then(function (aliasesByModel) {
@@ -427,7 +427,7 @@ function createResult(customMap) {
         throw new Error("Unknown modelId: " + params.modelId);
       }
       return submap.setZoom(params.zoom);
-    },
+    }
   };
 }
 
diff --git a/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js b/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js
index 209fd20b97e369a40fdc584c867db855aa3be2b4..5dd005df320989e2dc61ce82fd67950673784e34 100644
--- a/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js
+++ b/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js
@@ -43,7 +43,7 @@ describe('ElementExportPanel', function() {
 
       return ServerConnector.getConfiguration().then(function(result) {
         configuration = result;
-        elementTypes = configuration.getElementTypes();
+        elementTypes = configuration.getElementTypeNames();
         return ServerConnector.getProject();
       }).then(function(result) {
         project = result;
diff --git a/frontend-js/src/test/js/gui/export/NetworkExportPanel-test.js b/frontend-js/src/test/js/gui/export/NetworkExportPanel-test.js
index 1badab9af1c93d8f392d50ae969c9e3d34b91b29..814080ba54ae225f5ea084b2b717fef66daa599a 100644
--- a/frontend-js/src/test/js/gui/export/NetworkExportPanel-test.js
+++ b/frontend-js/src/test/js/gui/export/NetworkExportPanel-test.js
@@ -2,6 +2,8 @@
 
 /* exported logger */
 
+require("../../mocha-config");
+
 var NetworkExportPanel = require('../../../../main/js/gui/export/NetworkExportPanel');
 var logger = require('../../logger');
 
diff --git a/frontend-js/src/test/js/minerva-test.js b/frontend-js/src/test/js/minerva-test.js
index ace46e3e106afa218f01fb5261f6b27bf1ca8fc8..383ef3a60bc41283be90bdae720702046dd329fd 100644
--- a/frontend-js/src/test/js/minerva-test.js
+++ b/frontend-js/src/test/js/minerva-test.js
@@ -1,5 +1,7 @@
 "use strict";
 
+require("./mocha-config");
+
 var Helper = require('./helper');
 
 require("./mocha-config.js");
diff --git a/frontend-js/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID&
index 3021fe2f6d3bd325e8474c00089229085fb61a43..1fd5b097b6c6e6791eb1f3b22f1d66482b974805 100644
--- a/frontend-js/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID&
+++ b/frontend-js/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID&
@@ -1 +1 @@
-{"modelFormats":[{"handler":"lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser","extension":"xml","name":"CellDesigner SBML"},{"handler":"lcsb.mapviewer.converter.model.sbgnml.SbgnmlXmlConverter","extension":"sbgn","name":"SBGN-ML"}],"elementTypes":["Drug","Degraded","Phenotype","Gene","RNA","Unknown","Compartment","Antisense RNA","Ion","Simple molecule","Protein","Complex"],"modificationStateTypes":{"PHOSPHORYLATED":{"commonName":"phosphorylated","abbreviation":"P"},"METHYLATED":{"commonName":"methylated","abbreviation":"Me"},"PALMYTOYLATED":{"commonName":"palmytoylated","abbreviation":"Pa"},"ACETYLATED":{"commonName":"acetylated","abbreviation":"Ac"},"SULFATED":{"commonName":"sulfated","abbreviation":"S"},"GLYCOSYLATED":{"commonName":"glycosylated","abbreviation":"G"},"PRENYLATED":{"commonName":"prenylated","abbreviation":"Pr"},"UBIQUITINATED":{"commonName":"ubiquitinated","abbreviation":"Ub"},"PROTONATED":{"commonName":"protonated","abbreviation":"H"},"HYDROXYLATED":{"commonName":"hydroxylated","abbreviation":"OH"},"MYRISTOYLATED":{"commonName":"myristoylated","abbreviation":"My"},"UNKNOWN":{"commonName":"unknown","abbreviation":"?"},"EMPTY":{"commonName":"empty","abbreviation":""},"DONT_CARE":{"commonName":"don't care","abbreviation":"*"}},"miriamTypes":{"CHEMBL_TARGET":{"commonName":"ChEMBL target","uris":["urn:miriam:chembl.target"],"homepage":"https://www.ebi.ac.uk/chembldb/","registryIdentifier":"MIR:00000085"},"UNIPROT":{"commonName":"Uniprot","uris":["urn:miriam:uniprot"],"homepage":"http://www.uniprot.org/","registryIdentifier":"MIR:00000005"},"MI_R_BASE_MATURE_SEQUENCE":{"commonName":"miRBase Mature Sequence Database","uris":["urn:miriam:mirbase.mature"],"homepage":"http://www.mirbase.org/","registryIdentifier":"MIR:00000235"},"PFAM":{"commonName":"Protein Family Database","uris":["urn:miriam:pfam"],"homepage":"http://pfam.xfam.org//","registryIdentifier":"MIR:00000028"},"ENSEMBL_PLANTS":{"commonName":"Ensembl Plants","uris":["urn:miriam:ensembl.plant"],"homepage":"http://plants.ensembl.org/","registryIdentifier":"MIR:00000205"},"WIKIPEDIA":{"commonName":"Wikipedia (English)","uris":["urn:miriam:wikipedia.en"],"homepage":"http://en.wikipedia.org/wiki/Main_Page","registryIdentifier":"MIR:00000384"},"CHEBI":{"commonName":"Chebi","uris":["urn:miriam:obo.chebi","urn:miriam:chebi"],"homepage":"http://www.ebi.ac.uk/chebi/","registryIdentifier":"MIR:00000002"},"WIKIDATA":{"commonName":"Wikidata","uris":["urn:miriam:wikidata"],"homepage":"https://www.wikidata.org/","registryIdentifier":"MIR:00000549"},"REACTOME":{"commonName":"Reactome","uris":["urn:miriam:reactome"],"homepage":"http://www.reactome.org/","registryIdentifier":"MIR:00000018"},"EC":{"commonName":"Enzyme Nomenclature","uris":["urn:miriam:ec-code"],"homepage":"http://www.enzyme-database.org/","registryIdentifier":"MIR:00000004"},"UNIPROT_ISOFORM":{"commonName":"UniProt Isoform","uris":["urn:miriam:uniprot.isoform"],"homepage":"http://www.uniprot.org/","registryIdentifier":"MIR:00000388"},"OMIM":{"commonName":"Online Mendelian Inheritance in Man","uris":["urn:miriam:omim"],"homepage":"http://omim.org/","registryIdentifier":"MIR:00000016"},"DRUGBANK_TARGET_V4":{"commonName":"DrugBank Target v4","uris":["urn:miriam:drugbankv4.target"],"homepage":"http://www.drugbank.ca/targets","registryIdentifier":"MIR:00000528"},"MIR_TAR_BASE_MATURE_SEQUENCE":{"commonName":"miRTarBase Mature Sequence Database","uris":["urn:miriam:mirtarbase"],"homepage":"http://mirtarbase.mbc.nctu.edu.tw/","registryIdentifier":"MIR:00100739"},"CHEMBL_COMPOUND":{"commonName":"ChEMBL","uris":["urn:miriam:chembl.compound"],"homepage":"https://www.ebi.ac.uk/chembldb/","registryIdentifier":"MIR:00000084"},"KEGG_PATHWAY":{"commonName":"Kegg Pathway","uris":["urn:miriam:kegg.pathway"],"homepage":"http://www.genome.jp/kegg/pathway.html","registryIdentifier":"MIR:00000012"},"CAS":{"commonName":"Chemical Abstracts Service","uris":["urn:miriam:cas"],"homepage":"http://commonchemistry.org","registryIdentifier":"MIR:00000237"},"REFSEQ":{"commonName":"RefSeq","uris":["urn:miriam:refseq"],"homepage":"http://www.ncbi.nlm.nih.gov/projects/RefSeq/","registryIdentifier":"MIR:00000039"},"WORM_BASE":{"commonName":"WormBase","uris":["urn:miriam:wormbase"],"homepage":"http://wormbase.bio2rdf.org/fct","registryIdentifier":"MIR:00000027"},"MI_R_BASE_SEQUENCE":{"commonName":"miRBase Sequence Database","uris":["urn:miriam:mirbase"],"homepage":"http://www.mirbase.org/","registryIdentifier":"MIR:00000078"},"TAIR_LOCUS":{"commonName":"TAIR Locus","uris":["urn:miriam:tair.locus"],"homepage":"http://arabidopsis.org/index.jsp","registryIdentifier":"MIR:00000050"},"PHARM":{"commonName":"PharmGKB Pathways","uris":["urn:miriam:pharmgkb.pathways"],"homepage":"http://www.pharmgkb.org/","registryIdentifier":"MIR:00000089"},"PANTHER":{"commonName":"PANTHER Family","uris":["urn:miriam:panther.family","urn:miriam:panther"],"homepage":"http://www.pantherdb.org/","registryIdentifier":"MIR:00000060"},"TAXONOMY":{"commonName":"Taxonomy","uris":["urn:miriam:taxonomy"],"homepage":"http://www.ncbi.nlm.nih.gov/taxonomy/","registryIdentifier":"MIR:00000006"},"UNIGENE":{"commonName":"UniGene","uris":["urn:miriam:unigene"],"homepage":"http://www.ncbi.nlm.nih.gov/unigene","registryIdentifier":"MIR:00000346"},"HGNC":{"commonName":"HGNC","uris":["urn:miriam:hgnc"],"homepage":"http://www.genenames.org","registryIdentifier":"MIR:00000080"},"HGNC_SYMBOL":{"commonName":"HGNC Symbol","uris":["urn:miriam:hgnc.symbol"],"homepage":"http://www.genenames.org","registryIdentifier":"MIR:00000362"},"COG":{"commonName":"Clusters of Orthologous Groups","uris":["urn:miriam:cogs"],"homepage":"https://www.ncbi.nlm.nih.gov/COG/","registryIdentifier":"MIR:00000296"},"WIKIPATHWAYS":{"commonName":"WikiPathways","uris":["urn:miriam:wikipathways"],"homepage":"http://www.wikipathways.org/","registryIdentifier":"MIR:00000076"},"HMDB":{"commonName":"HMDB","uris":["urn:miriam:hmdb"],"homepage":"http://www.hmdb.ca/","registryIdentifier":"MIR:00000051"},"CHEMSPIDER":{"commonName":"ChemSpider","uris":["urn:miriam:chemspider"],"homepage":"http://www.chemspider.com//","registryIdentifier":"MIR:00000138"},"ENSEMBL":{"commonName":"Ensembl","uris":["urn:miriam:ensembl"],"homepage":"www.ensembl.org","registryIdentifier":"MIR:00000003"},"GO":{"commonName":"Gene Ontology","uris":["urn:miriam:obo.go","urn:miriam:go"],"homepage":"http://amigo.geneontology.org/amigo","registryIdentifier":"MIR:00000022"},"KEGG_REACTION":{"commonName":"Kegg Reaction","uris":["urn:miriam:kegg.reaction"],"homepage":"http://www.genome.jp/kegg/reaction/","registryIdentifier":"MIR:00000014"},"KEGG_ORTHOLOGY":{"commonName":"KEGG Orthology","uris":["urn:miriam:kegg.orthology"],"homepage":"http://www.genome.jp/kegg/ko.html","registryIdentifier":"MIR:00000116"},"PUBCHEM":{"commonName":"PubChem-compound","uris":["urn:miriam:pubchem.compound"],"homepage":"http://pubchem.ncbi.nlm.nih.gov/","registryIdentifier":"MIR:00000034"},"MESH_2012":{"commonName":"MeSH 2012","uris":["urn:miriam:mesh.2012","urn:miriam:mesh"],"homepage":"http://www.nlm.nih.gov/mesh/","registryIdentifier":"MIR:00000270"},"MGD":{"commonName":"Mouse Genome Database","uris":["urn:miriam:mgd"],"homepage":"http://www.informatics.jax.org/","registryIdentifier":"MIR:00000037"},"ENTREZ":{"commonName":"Entrez Gene","uris":["urn:miriam:ncbigene","urn:miriam:entrez.gene"],"homepage":"http://www.ncbi.nlm.nih.gov/gene","registryIdentifier":"MIR:00000069"},"PUBCHEM_SUBSTANCE":{"commonName":"PubChem-substance","uris":["urn:miriam:pubchem.substance"],"homepage":"http://pubchem.ncbi.nlm.nih.gov/","registryIdentifier":"MIR:00000033"},"CCDS":{"commonName":"Consensus CDS","uris":["urn:miriam:ccds"],"homepage":"http://www.ncbi.nlm.nih.gov/CCDS/","registryIdentifier":"MIR:00000375"},"KEGG_GENES":{"commonName":"Kegg Genes","uris":["urn:miriam:kegg.genes","urn:miriam:kegg.genes:hsa"],"homepage":"http://www.genome.jp/kegg/genes.html","registryIdentifier":"MIR:00000070"},"TOXICOGENOMIC_CHEMICAL":{"commonName":"Toxicogenomic Chemical","uris":["urn:miriam:ctd.chemical"],"homepage":"http://ctdbase.org/","registryIdentifier":"MIR:00000098"},"SGD":{"commonName":"Saccharomyces Genome Database","uris":["urn:miriam:sgd"],"homepage":"http://www.yeastgenome.org/","registryIdentifier":"MIR:00000023"},"KEGG_COMPOUND":{"commonName":"Kegg Compound","uris":["urn:miriam:kegg.compound"],"homepage":"http://www.genome.jp/kegg/ligand.html","registryIdentifier":"MIR:00000013"},"INTERPRO":{"commonName":"InterPro","uris":["urn:miriam:interpro"],"homepage":"http://www.ebi.ac.uk/interpro/","registryIdentifier":"MIR:00000011"},"UNKNOWN":{"commonName":"Unknown","uris":[],"homepage":null,"registryIdentifier":null},"DRUGBANK":{"commonName":"DrugBank","uris":["urn:miriam:drugbank"],"homepage":"http://www.drugbank.ca/","registryIdentifier":"MIR:00000102"},"PUBMED":{"commonName":"PubMed","uris":["urn:miriam:pubmed"],"homepage":"http://www.ncbi.nlm.nih.gov/PubMed/","registryIdentifier":"MIR:00000015"}},"imageFormats":[{"handler":"lcsb.mapviewer.converter.graphics.PngImageGenerator","extension":"png","name":"PNG image"},{"handler":"lcsb.mapviewer.converter.graphics.PdfImageGenerator","extension":"pdf","name":"PDF"},{"handler":"lcsb.mapviewer.converter.graphics.SvgImageGenerator","extension":"svg","name":"SVG image"}],"options":[{"idObject":9,"type":"EMAIL_ADDRESS","value":"your.account@domain.com"},{"idObject":10,"type":"EMAIL_LOGIN","value":"your@login"},{"idObject":11,"type":"EMAIL_PASSWORD","value":"email.secret.password"},{"idObject":13,"type":"EMAIL_IMAP_SERVER","value":"your.imap.domain.com"},{"idObject":12,"type":"EMAIL_SMTP_SERVER","value":"your.smtp.domain.com"},{"idObject":14,"type":"EMAIL_SMTP_PORT","value":"25"},{"idObject":6,"type":"DEFAULT_MAP","value":"sample"},{"idObject":4,"type":"LOGO_IMG","value":"udl.png"},{"idObject":3,"type":"LOGO_LINK","value":"http://wwwen.uni.lu/"},{"idObject":7,"type":"SEARCH_DISTANCE","value":"10"},{"idObject":1,"type":"REQUEST_ACCOUNT_EMAIL","value":"your.email@domain.com"},{"idObject":8,"type":"SEARCH_RESULT_NUMBER","value":"100"},{"idObject":2,"type":"GOOGLE_ANALYTICS_IDENTIFIER","value":""},{"idObject":5,"type":"LOGO_TEXT","value":"University of Luxembourg"},{"idObject":56,"type":"X_FRAME_DOMAIN","value":"http://localhost:8080/"},{"idObject":131,"type":"BIG_FILE_STORAGE_DIR","value":"minerva-big/"},{"idObject":138,"type":"LENGEND_FILE_1","value":"resources/images/legend_a.png"},{"idObject":139,"type":"LENGEND_FILE_2","value":"resources/images/legend_b.png"},{"idObject":140,"type":"LENGEND_FILE_3","value":"resources/images/legend_c.png"},{"idObject":141,"type":"LENGEND_FILE_4","value":"resources/images/legend_d.png"},{"idObject":142,"type":"USER_MANUAL_FILE","value":"resources/other/user_guide.pdf"},{"idObject":205,"type":"MIN_COLOR_VAL","value":"FF0000"},{"idObject":206,"type":"MAX_COLOR_VAL","value":"fbff00"},{"idObject":218,"type":"SIMPLE_COLOR_VAL","value":"00FF00"}],"privilegeTypes":{"VIEW_PROJECT":{"commonName":"View project","valueType":"boolean","objectType":"Project"},"LAYOUT_MANAGEMENT":{"commonName":"Manage layouts","valueType":"boolean","objectType":"Project"},"PROJECT_MANAGEMENT":{"commonName":"Map management","valueType":"boolean","objectType":null},"CUSTOM_LAYOUTS":{"commonName":"Custom layouts","valueType":"int","objectType":null},"ADD_MAP":{"commonName":"Add project","valueType":"boolean","objectType":null},"LAYOUT_VIEW":{"commonName":"View layout","valueType":"boolean","objectType":"Layout"},"MANAGE_GENOMES":{"commonName":"Manage genomes","valueType":"boolean","objectType":null},"EDIT_COMMENTS_PROJECT":{"commonName":"Manage comments","valueType":"boolean","objectType":"Project"},"CONFIGURATION_MANAGE":{"commonName":"Manage configuration","valueType":"boolean","objectType":null},"USER_MANAGEMENT":{"commonName":"User management","valueType":"boolean","objectType":null}},"overlayTypes":[{"name":"GENERIC"},{"name":"GENETIC_VARIANT"}],"reactionTypes":["Unknown reduced modulation","Reduced physical stimulation","Translation","State transition","Transcription","Unknown reduced trigger","Negative influence","Unknown positive influence","Positive influence","Unknown transition","Truncation","Reduced trigger","Boolean logic gate","Unknown reduced physical stimulation","Generic Reaction","Reduced modulation","Unknown negative influence","Heterodimer association","Dissociation","Known transition omitted","Transport"]}
\ No newline at end of file
+{"modelFormats":[{"handler":"lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser","extension":"xml","name":"CellDesigner SBML"},{"handler":"lcsb.mapviewer.converter.model.sbgnml.SbgnmlXmlConverter","extension":"sbgn","name":"SBGN-ML"}],"elementTypes":[{"name":"Ion","className":"lcsb.mapviewer.model.map.species.Element"},{"name":"Simple molecule","className":"lcsb.mapviewer.model.map.species.Element"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.species.Element"},{"name":"Degraded","className":"lcsb.mapviewer.model.map.species.Element"},{"name":"Complex","className":"lcsb.mapviewer.model.map.species.Element"},{"name":"Antisense RNA","className":"lcsb.mapviewer.model.map.species.Element"},{"name":"Protein","className":"lcsb.mapviewer.model.map.species.Element"},{"name":"Phenotype","className":"lcsb.mapviewer.model.map.species.Element"},{"name":"Gene","className":"lcsb.mapviewer.model.map.species.Element"},{"name":"RNA","className":"lcsb.mapviewer.model.map.species.Element"},{"name":"Drug","className":"lcsb.mapviewer.model.map.species.Element"},{"name":"Unknown","className":"lcsb.mapviewer.model.map.species.Element"}],"modificationStateTypes":{"PHOSPHORYLATED":{"commonName":"phosphorylated","abbreviation":"P"},"METHYLATED":{"commonName":"methylated","abbreviation":"Me"},"PALMYTOYLATED":{"commonName":"palmytoylated","abbreviation":"Pa"},"ACETYLATED":{"commonName":"acetylated","abbreviation":"Ac"},"SULFATED":{"commonName":"sulfated","abbreviation":"S"},"GLYCOSYLATED":{"commonName":"glycosylated","abbreviation":"G"},"PRENYLATED":{"commonName":"prenylated","abbreviation":"Pr"},"UBIQUITINATED":{"commonName":"ubiquitinated","abbreviation":"Ub"},"PROTONATED":{"commonName":"protonated","abbreviation":"H"},"HYDROXYLATED":{"commonName":"hydroxylated","abbreviation":"OH"},"MYRISTOYLATED":{"commonName":"myristoylated","abbreviation":"My"},"UNKNOWN":{"commonName":"unknown","abbreviation":"?"},"EMPTY":{"commonName":"empty","abbreviation":""},"DONT_CARE":{"commonName":"don't care","abbreviation":"*"}},"miriamTypes":{"CHEMBL_TARGET":{"commonName":"ChEMBL target","uris":["urn:miriam:chembl.target"],"homepage":"https://www.ebi.ac.uk/chembldb/","registryIdentifier":"MIR:00000085"},"UNIPROT":{"commonName":"Uniprot","uris":["urn:miriam:uniprot"],"homepage":"http://www.uniprot.org/","registryIdentifier":"MIR:00000005"},"MI_R_BASE_MATURE_SEQUENCE":{"commonName":"miRBase Mature Sequence Database","uris":["urn:miriam:mirbase.mature"],"homepage":"http://www.mirbase.org/","registryIdentifier":"MIR:00000235"},"PFAM":{"commonName":"Protein Family Database","uris":["urn:miriam:pfam"],"homepage":"http://pfam.xfam.org//","registryIdentifier":"MIR:00000028"},"ENSEMBL_PLANTS":{"commonName":"Ensembl Plants","uris":["urn:miriam:ensembl.plant"],"homepage":"http://plants.ensembl.org/","registryIdentifier":"MIR:00000205"},"WIKIPEDIA":{"commonName":"Wikipedia (English)","uris":["urn:miriam:wikipedia.en"],"homepage":"http://en.wikipedia.org/wiki/Main_Page","registryIdentifier":"MIR:00000384"},"CHEBI":{"commonName":"Chebi","uris":["urn:miriam:obo.chebi","urn:miriam:chebi"],"homepage":"http://www.ebi.ac.uk/chebi/","registryIdentifier":"MIR:00000002"},"WIKIDATA":{"commonName":"Wikidata","uris":["urn:miriam:wikidata"],"homepage":"https://www.wikidata.org/","registryIdentifier":"MIR:00000549"},"REACTOME":{"commonName":"Reactome","uris":["urn:miriam:reactome"],"homepage":"http://www.reactome.org/","registryIdentifier":"MIR:00000018"},"EC":{"commonName":"Enzyme Nomenclature","uris":["urn:miriam:ec-code"],"homepage":"http://www.enzyme-database.org/","registryIdentifier":"MIR:00000004"},"UNIPROT_ISOFORM":{"commonName":"UniProt Isoform","uris":["urn:miriam:uniprot.isoform"],"homepage":"http://www.uniprot.org/","registryIdentifier":"MIR:00000388"},"OMIM":{"commonName":"Online Mendelian Inheritance in Man","uris":["urn:miriam:omim"],"homepage":"http://omim.org/","registryIdentifier":"MIR:00000016"},"DRUGBANK_TARGET_V4":{"commonName":"DrugBank Target v4","uris":["urn:miriam:drugbankv4.target"],"homepage":"http://www.drugbank.ca/targets","registryIdentifier":"MIR:00000528"},"MIR_TAR_BASE_MATURE_SEQUENCE":{"commonName":"miRTarBase Mature Sequence Database","uris":["urn:miriam:mirtarbase"],"homepage":"http://mirtarbase.mbc.nctu.edu.tw/","registryIdentifier":"MIR:00100739"},"CHEMBL_COMPOUND":{"commonName":"ChEMBL","uris":["urn:miriam:chembl.compound"],"homepage":"https://www.ebi.ac.uk/chembldb/","registryIdentifier":"MIR:00000084"},"KEGG_PATHWAY":{"commonName":"Kegg Pathway","uris":["urn:miriam:kegg.pathway"],"homepage":"http://www.genome.jp/kegg/pathway.html","registryIdentifier":"MIR:00000012"},"CAS":{"commonName":"Chemical Abstracts Service","uris":["urn:miriam:cas"],"homepage":"http://commonchemistry.org","registryIdentifier":"MIR:00000237"},"REFSEQ":{"commonName":"RefSeq","uris":["urn:miriam:refseq"],"homepage":"http://www.ncbi.nlm.nih.gov/projects/RefSeq/","registryIdentifier":"MIR:00000039"},"WORM_BASE":{"commonName":"WormBase","uris":["urn:miriam:wormbase"],"homepage":"http://wormbase.bio2rdf.org/fct","registryIdentifier":"MIR:00000027"},"MI_R_BASE_SEQUENCE":{"commonName":"miRBase Sequence Database","uris":["urn:miriam:mirbase"],"homepage":"http://www.mirbase.org/","registryIdentifier":"MIR:00000078"},"TAIR_LOCUS":{"commonName":"TAIR Locus","uris":["urn:miriam:tair.locus"],"homepage":"http://arabidopsis.org/index.jsp","registryIdentifier":"MIR:00000050"},"PHARM":{"commonName":"PharmGKB Pathways","uris":["urn:miriam:pharmgkb.pathways"],"homepage":"http://www.pharmgkb.org/","registryIdentifier":"MIR:00000089"},"PANTHER":{"commonName":"PANTHER Family","uris":["urn:miriam:panther.family","urn:miriam:panther"],"homepage":"http://www.pantherdb.org/","registryIdentifier":"MIR:00000060"},"TAXONOMY":{"commonName":"Taxonomy","uris":["urn:miriam:taxonomy"],"homepage":"http://www.ncbi.nlm.nih.gov/taxonomy/","registryIdentifier":"MIR:00000006"},"UNIGENE":{"commonName":"UniGene","uris":["urn:miriam:unigene"],"homepage":"http://www.ncbi.nlm.nih.gov/unigene","registryIdentifier":"MIR:00000346"},"HGNC":{"commonName":"HGNC","uris":["urn:miriam:hgnc"],"homepage":"http://www.genenames.org","registryIdentifier":"MIR:00000080"},"HGNC_SYMBOL":{"commonName":"HGNC Symbol","uris":["urn:miriam:hgnc.symbol"],"homepage":"http://www.genenames.org","registryIdentifier":"MIR:00000362"},"COG":{"commonName":"Clusters of Orthologous Groups","uris":["urn:miriam:cogs"],"homepage":"https://www.ncbi.nlm.nih.gov/COG/","registryIdentifier":"MIR:00000296"},"WIKIPATHWAYS":{"commonName":"WikiPathways","uris":["urn:miriam:wikipathways"],"homepage":"http://www.wikipathways.org/","registryIdentifier":"MIR:00000076"},"HMDB":{"commonName":"HMDB","uris":["urn:miriam:hmdb"],"homepage":"http://www.hmdb.ca/","registryIdentifier":"MIR:00000051"},"CHEMSPIDER":{"commonName":"ChemSpider","uris":["urn:miriam:chemspider"],"homepage":"http://www.chemspider.com//","registryIdentifier":"MIR:00000138"},"ENSEMBL":{"commonName":"Ensembl","uris":["urn:miriam:ensembl"],"homepage":"www.ensembl.org","registryIdentifier":"MIR:00000003"},"GO":{"commonName":"Gene Ontology","uris":["urn:miriam:obo.go","urn:miriam:go"],"homepage":"http://amigo.geneontology.org/amigo","registryIdentifier":"MIR:00000022"},"KEGG_REACTION":{"commonName":"Kegg Reaction","uris":["urn:miriam:kegg.reaction"],"homepage":"http://www.genome.jp/kegg/reaction/","registryIdentifier":"MIR:00000014"},"KEGG_ORTHOLOGY":{"commonName":"KEGG Orthology","uris":["urn:miriam:kegg.orthology"],"homepage":"http://www.genome.jp/kegg/ko.html","registryIdentifier":"MIR:00000116"},"PUBCHEM":{"commonName":"PubChem-compound","uris":["urn:miriam:pubchem.compound"],"homepage":"http://pubchem.ncbi.nlm.nih.gov/","registryIdentifier":"MIR:00000034"},"MESH_2012":{"commonName":"MeSH 2012","uris":["urn:miriam:mesh.2012","urn:miriam:mesh"],"homepage":"http://www.nlm.nih.gov/mesh/","registryIdentifier":"MIR:00000270"},"MGD":{"commonName":"Mouse Genome Database","uris":["urn:miriam:mgd"],"homepage":"http://www.informatics.jax.org/","registryIdentifier":"MIR:00000037"},"ENTREZ":{"commonName":"Entrez Gene","uris":["urn:miriam:ncbigene","urn:miriam:entrez.gene"],"homepage":"http://www.ncbi.nlm.nih.gov/gene","registryIdentifier":"MIR:00000069"},"PUBCHEM_SUBSTANCE":{"commonName":"PubChem-substance","uris":["urn:miriam:pubchem.substance"],"homepage":"http://pubchem.ncbi.nlm.nih.gov/","registryIdentifier":"MIR:00000033"},"CCDS":{"commonName":"Consensus CDS","uris":["urn:miriam:ccds"],"homepage":"http://www.ncbi.nlm.nih.gov/CCDS/","registryIdentifier":"MIR:00000375"},"KEGG_GENES":{"commonName":"Kegg Genes","uris":["urn:miriam:kegg.genes","urn:miriam:kegg.genes:hsa"],"homepage":"http://www.genome.jp/kegg/genes.html","registryIdentifier":"MIR:00000070"},"TOXICOGENOMIC_CHEMICAL":{"commonName":"Toxicogenomic Chemical","uris":["urn:miriam:ctd.chemical"],"homepage":"http://ctdbase.org/","registryIdentifier":"MIR:00000098"},"SGD":{"commonName":"Saccharomyces Genome Database","uris":["urn:miriam:sgd"],"homepage":"http://www.yeastgenome.org/","registryIdentifier":"MIR:00000023"},"KEGG_COMPOUND":{"commonName":"Kegg Compound","uris":["urn:miriam:kegg.compound"],"homepage":"http://www.genome.jp/kegg/ligand.html","registryIdentifier":"MIR:00000013"},"INTERPRO":{"commonName":"InterPro","uris":["urn:miriam:interpro"],"homepage":"http://www.ebi.ac.uk/interpro/","registryIdentifier":"MIR:00000011"},"UNKNOWN":{"commonName":"Unknown","uris":[],"homepage":null,"registryIdentifier":null},"DRUGBANK":{"commonName":"DrugBank","uris":["urn:miriam:drugbank"],"homepage":"http://www.drugbank.ca/","registryIdentifier":"MIR:00000102"},"PUBMED":{"commonName":"PubMed","uris":["urn:miriam:pubmed"],"homepage":"http://www.ncbi.nlm.nih.gov/PubMed/","registryIdentifier":"MIR:00000015"}},"imageFormats":[{"handler":"lcsb.mapviewer.converter.graphics.PngImageGenerator","extension":"png","name":"PNG image"},{"handler":"lcsb.mapviewer.converter.graphics.PdfImageGenerator","extension":"pdf","name":"PDF"},{"handler":"lcsb.mapviewer.converter.graphics.SvgImageGenerator","extension":"svg","name":"SVG image"}],"options":[{"idObject":9,"type":"EMAIL_ADDRESS","value":"your.account@domain.com"},{"idObject":10,"type":"EMAIL_LOGIN","value":"your@login"},{"idObject":11,"type":"EMAIL_PASSWORD","value":"email.secret.password"},{"idObject":13,"type":"EMAIL_IMAP_SERVER","value":"your.imap.domain.com"},{"idObject":12,"type":"EMAIL_SMTP_SERVER","value":"your.smtp.domain.com"},{"idObject":14,"type":"EMAIL_SMTP_PORT","value":"25"},{"idObject":6,"type":"DEFAULT_MAP","value":"sample"},{"idObject":4,"type":"LOGO_IMG","value":"udl.png"},{"idObject":3,"type":"LOGO_LINK","value":"http://wwwen.uni.lu/"},{"idObject":7,"type":"SEARCH_DISTANCE","value":"10"},{"idObject":1,"type":"REQUEST_ACCOUNT_EMAIL","value":"your.email@domain.com"},{"idObject":8,"type":"SEARCH_RESULT_NUMBER","value":"100"},{"idObject":2,"type":"GOOGLE_ANALYTICS_IDENTIFIER","value":""},{"idObject":5,"type":"LOGO_TEXT","value":"University of Luxembourg"},{"idObject":56,"type":"X_FRAME_DOMAIN","value":"http://localhost:8080/"},{"idObject":131,"type":"BIG_FILE_STORAGE_DIR","value":"minerva-big/"},{"idObject":138,"type":"LEGEND_FILE_1","value":"resources/images/legend_a.png"},{"idObject":139,"type":"LEGEND_FILE_2","value":"resources/images/legend_b.png"},{"idObject":140,"type":"LEGEND_FILE_3","value":"resources/images/legend_c.png"},{"idObject":141,"type":"LEGEND_FILE_4","value":"resources/images/legend_d.png"},{"idObject":142,"type":"USER_MANUAL_FILE","value":"resources/other/user_guide.pdf"},{"idObject":205,"type":"MIN_COLOR_VAL","value":"FF0000"},{"idObject":206,"type":"MAX_COLOR_VAL","value":"fbff00"},{"idObject":218,"type":"SIMPLE_COLOR_VAL","value":"00FF00"}],"privilegeTypes":{"VIEW_PROJECT":{"commonName":"View project","valueType":"boolean","objectType":"Project"},"LAYOUT_MANAGEMENT":{"commonName":"Manage layouts","valueType":"boolean","objectType":"Project"},"PROJECT_MANAGEMENT":{"commonName":"Map management","valueType":"boolean","objectType":null},"CUSTOM_LAYOUTS":{"commonName":"Custom layouts","valueType":"int","objectType":null},"ADD_MAP":{"commonName":"Add project","valueType":"boolean","objectType":null},"LAYOUT_VIEW":{"commonName":"View layout","valueType":"boolean","objectType":"Layout"},"MANAGE_GENOMES":{"commonName":"Manage genomes","valueType":"boolean","objectType":null},"EDIT_COMMENTS_PROJECT":{"commonName":"Manage comments","valueType":"boolean","objectType":"Project"},"CONFIGURATION_MANAGE":{"commonName":"Manage configuration","valueType":"boolean","objectType":null},"USER_MANAGEMENT":{"commonName":"User management","valueType":"boolean","objectType":null}},"overlayTypes":[{"name":"GENERIC"},{"name":"GENETIC_VARIANT"}],"buildDate":"29/08/2017 18:52","reactionTypes":[{"name":"Unknown reduced modulation","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown reduced physical stimulation","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"State transition","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Translation","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Transport","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Heterodimer association","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Dissociation","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Positive influence","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Transcription","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown reduced trigger","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Reduced physical stimulation","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Negative influence","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Boolean logic gate","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Reduced trigger","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Truncation","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown transition","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown positive influence","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Known transition omitted","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Generic Reaction","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown negative influence","className":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Reduced modulation","className":"lcsb.mapviewer.model.map.reaction.Reaction"}],"version":"11.0.0"}
\ No newline at end of file
diff --git a/frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=id,elementId,modelId,type,removed,pinned,author,email&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=author,elementId,email,id,modelId,pinned,removed,type&token=MOCK_TOKEN_ID&
similarity index 100%
rename from frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=id,elementId,modelId,type,removed,pinned,author,email&token=MOCK_TOKEN_ID&
rename to frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=author,elementId,email,id,modelId,pinned,removed,type&token=MOCK_TOKEN_ID&
diff --git a/frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=id,elementId,modelId,type,icon,removed,pinned&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=elementId,icon,id,modelId,pinned,removed,type&token=MOCK_TOKEN_ID&
similarity index 100%
rename from frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=id,elementId,modelId,type,icon,removed,pinned&token=MOCK_TOKEN_ID&
rename to frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=elementId,icon,id,modelId,pinned,removed,type&token=MOCK_TOKEN_ID&
diff --git a/frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=id,elementId,modelId,type,icon,removed&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=elementId,icon,id,modelId,removed,type&token=MOCK_TOKEN_ID&
similarity index 100%
rename from frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=id,elementId,modelId,type,icon,removed&token=MOCK_TOKEN_ID&
rename to frontend-js/testFiles/apiCalls/projects/sample/comments/models/all/columns=elementId,icon,id,modelId,removed,type&token=MOCK_TOKEN_ID&
diff --git a/frontend-js/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,bounds,modelId&type=Drug,Complex,Phenotype,Gene,RNA,Unknown,Degraded,Antisense RNA,Ion,Simple molecule,Protein,Compartment&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,bounds,modelId&type=Antisense RNA,Compartment,Complex,Degraded,Drug,Gene,Ion,Phenotype,Protein,RNA,Simple molecule,Unknown&token=MOCK_TOKEN_ID&
similarity index 100%
rename from frontend-js/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,bounds,modelId&type=Drug,Complex,Phenotype,Gene,RNA,Unknown,Degraded,Antisense RNA,Ion,Simple molecule,Protein,Compartment&token=MOCK_TOKEN_ID&
rename to frontend-js/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,bounds,modelId&type=Antisense RNA,Compartment,Complex,Degraded,Drug,Gene,Ion,Phenotype,Protein,RNA,Simple molecule,Unknown&token=MOCK_TOKEN_ID&
diff --git a/frontend-js/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,modelId&type=Drug,Complex,Phenotype,Gene,RNA,Unknown,Degraded,Antisense RNA,Ion,Simple molecule,Protein,Compartment&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,modelId&type=Antisense RNA,Compartment,Complex,Degraded,Drug,Gene,Ion,Phenotype,Protein,RNA,Simple molecule,Unknown&token=MOCK_TOKEN_ID&
similarity index 100%
rename from frontend-js/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,modelId&type=Drug,Complex,Phenotype,Gene,RNA,Unknown,Degraded,Antisense RNA,Ion,Simple molecule,Protein,Compartment&token=MOCK_TOKEN_ID&
rename to frontend-js/testFiles/apiCalls/projects/sample/models/15781/bioEntities/elements/columns=id,modelId&type=Antisense RNA,Compartment,Complex,Degraded,Drug,Gene,Ion,Phenotype,Protein,RNA,Simple molecule,Unknown&token=MOCK_TOKEN_ID&
diff --git a/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java b/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java
index 8ff0f95344526a7e9e12cd455af360f510d71a1d..699a165978a232fed7df2c3f81ddfeb1d5c3340b 100644
--- a/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java
+++ b/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java
@@ -96,22 +96,22 @@ public enum ConfigurationElementType {
 	/**
 	 * File where legend 1/4 is stored.
 	 */
-	LENGEND_FILE_1("Legend 1 image file", "resources/images/legend_a.png", ConfigurationElementEditType.URL, false),
+	LEGEND_FILE_1("Legend 1 image file", "resources/images/legend_a.png", ConfigurationElementEditType.URL, false),
 
 	/**
 	 * File where legend 2/4 is stored.
 	 */
-	LENGEND_FILE_2("Legend 2 image file", "resources/images/legend_b.png", ConfigurationElementEditType.URL, false),
+	LEGEND_FILE_2("Legend 2 image file", "resources/images/legend_b.png", ConfigurationElementEditType.URL, false),
 
 	/**
 	 * File where legend 3/4 is stored.
 	 */
-	LENGEND_FILE_3("Legend 3 image file", "resources/images/legend_c.png", ConfigurationElementEditType.URL, false),
+	LEGEND_FILE_3("Legend 3 image file", "resources/images/legend_c.png", ConfigurationElementEditType.URL, false),
 
 	/**
 	 * File where legend 4/4 is stored.
 	 */
-	LENGEND_FILE_4("Legend 4 image file", "resources/images/legend_d.png", ConfigurationElementEditType.URL, false),
+	LEGEND_FILE_4("Legend 4 image file", "resources/images/legend_d.png", ConfigurationElementEditType.URL, false),
 
 	/**
 	 * File where legend 4/4 is stored.
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationController.java b/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationController.java
index 3346fc3cb1d41f5bdc40089a34072f8a47bf144b..1450e9a8bef1be8410e2425be86c9951ac9c9017 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationController.java
@@ -3,6 +3,8 @@ package lcsb.mapviewer.api.configuration;
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.servlet.ServletContext;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.CookieValue;
@@ -13,11 +15,21 @@ import org.springframework.web.bind.annotation.RestController;
 import lcsb.mapviewer.api.BaseController;
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.services.SecurityException;
+import lcsb.mapviewer.services.interfaces.IConfigurationService;
 
 @RestController
 public class ConfigurationController extends BaseController {
 	@Autowired
-	private ConfigurationRestImpl configurationController;
+	private ConfigurationRestImpl	configurationController;
+
+	@Autowired
+	private IConfigurationService	configurationService;
+
+	/**
+	 * Context used to determine deployment path.
+	 */
+	@Autowired
+	private ServletContext				context;
 
 	@RequestMapping(value = "/configuration/", method = { RequestMethod.GET }, produces = { MediaType.APPLICATION_JSON_VALUE })
 	public Map<String, Object> getOverlayTypes(@CookieValue(value = Configuration.AUTH_TOKEN) String token) throws SecurityException {
@@ -31,6 +43,8 @@ public class ConfigurationController extends BaseController {
 		result.put("miriamTypes", configurationController.getMiriamTypes(token));
 		result.put("modificationStateTypes", configurationController.getModificationStateTypes(token));
 		result.put("privilegeTypes", configurationController.getPrivilegeTypes(token));
+		result.put("version", configurationService.getSystemSvnVersion(context.getRealPath("/")));
+		result.put("buildDate", configurationService.getSystemBuild(context.getRealPath("/")));
 		return result;
 	}
 
@@ -51,4 +65,21 @@ public class ConfigurationController extends BaseController {
 		this.configurationController = configurationController;
 	}
 
+	/**
+	 * @return the configurationService
+	 * @see #configurationService
+	 */
+	public IConfigurationService getConfigurationService() {
+		return configurationService;
+	}
+
+	/**
+	 * @param configurationService
+	 *          the configurationService to set
+	 * @see #configurationService
+	 */
+	public void setConfigurationService(IConfigurationService configurationService) {
+		this.configurationService = configurationService;
+	}
+
 }
\ No newline at end of file
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java
index 5b74c890ebabd216e77e12815afe00aa7d30f994..1c7329d6a647cc6ffeafcd9ac033cf84898b0425 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java
@@ -134,14 +134,14 @@ public class ConfigurationRestImpl {
 		return result;
 	}
 
-	public Set<String> getElementTypes(String token) throws SecurityException {
+	public Set<Map<String, String>> getElementTypes(String token) throws SecurityException {
 		userService.getToken(token);
 
 		return getClassStringTypesList(Element.class);
 	}
 
-	private Set<String> getClassStringTypesList(Class<?> elementClass) {
-		Set<String> result = new HashSet<>();
+	private Set<Map<String, String>> getClassStringTypesList(Class<?> elementClass) {
+		Set<Map<String, String>> result = new HashSet<>();
 		ElementUtils elementUtils = new ElementUtils();
 		ClassTreeNode top = elementUtils.getAnnotatedElementClassTree();
 		Queue<ClassTreeNode> queue = new LinkedList<>();
@@ -153,12 +153,18 @@ public class ConfigurationRestImpl {
 			}
 			if (elementClass.isAssignableFrom(clazz.getClazz())) {
 				if (!Modifier.isAbstract(clazz.getClazz().getModifiers())) {
+					Map<String, String> row = new HashMap<>();
 					try {
+						row.put("className", elementClass.getName());
+						String name = null;
 						if (elementClass.isAssignableFrom(Reaction.class)) {
-							result.add(((BioEntity) (clazz.getClazz().getDeclaredConstructor().newInstance())).getStringType());
+							row.put("className", elementClass.getName());
+							name = ((BioEntity) (clazz.getClazz().getDeclaredConstructor().newInstance())).getStringType();
 						} else {
-							result.add(((BioEntity) (clazz.getClazz().getDeclaredConstructor(String.class).newInstance("id"))).getStringType());
+							name = ((BioEntity) (clazz.getClazz().getDeclaredConstructor(String.class).newInstance("id"))).getStringType();
 						}
+						row.put("name", name);
+						result.add(row);
 					} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException
 							| java.lang.SecurityException e) {
 						throw new RuntimeException(e);
@@ -169,7 +175,7 @@ public class ConfigurationRestImpl {
 		return result;
 	}
 
-	public Set<String> getReactionTypes(String token) throws SecurityException {
+	public Set<Map<String, String>> getReactionTypes(String token) throws SecurityException {
 		userService.getToken(token);
 
 		return getClassStringTypesList(Reaction.class);
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
index 621a0dd6d64839e716e89d2742381313bec10858..5b8e4672b56384b49e27ea69a1f509b94cd90894 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
@@ -94,6 +94,17 @@ public class UserController extends BaseController {
 		return userRest.updatePrivileges(token, login, data);
 	}
 
+	@RequestMapping(value = "/users/{login}:updatePreferences", method = { RequestMethod.PATCH }, produces = { MediaType.APPLICATION_JSON_VALUE })
+	public Map<String, Object> updatePreferences(//
+			@RequestBody String body, //
+			@CookieValue(value = Configuration.AUTH_TOKEN) String token, //
+			@PathVariable(value = "login") String login //
+	) throws SecurityException, JsonParseException, JsonMappingException, IOException, QueryException {
+		Map<String, Object> node = parseBody(body);
+		Map<String, Object> data = getData(node, "preferences");
+		return userRest.updatePreferences(token, login, data);
+	}
+
 	@RequestMapping(value = "/users/", method = { RequestMethod.GET }, produces = { MediaType.APPLICATION_JSON_VALUE })
 	public List<Map<String, Object>> getUsers(//
 			@CookieValue(value = Configuration.AUTH_TOKEN) String token, //
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/configuration/ConfigurationRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/configuration/ConfigurationRestImplTest.java
index 52b5c6aa884540de6efa5ed1602bf858750a62a2..fe90900409938f0ecef9997959c126b825a84572 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/configuration/ConfigurationRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/configuration/ConfigurationRestImplTest.java
@@ -76,9 +76,13 @@ public class ConfigurationRestImplTest extends RestTestFunctions {
 	@Test
 	public void testGetElementTypes() throws Exception {
 		try {
-			Set<String> list = configurationRestImpl.getElementTypes(token.getId());
+			Set<Map<String, String>> list = configurationRestImpl.getElementTypes(token.getId());
 			GenericProtein protein = new GenericProtein("id");
-			assertTrue(list.contains(protein.getStringType()));
+			boolean contains = false;
+			for (Map<String, String> object : list) {
+				contains |= (object.get("name").equals(protein.getStringType()));
+			}
+			assertTrue(contains);
 		} catch (Exception e) {
 			e.printStackTrace();
 			throw e;
@@ -88,9 +92,13 @@ public class ConfigurationRestImplTest extends RestTestFunctions {
 	@Test
 	public void testGetReactionTypes() throws Exception {
 		try {
-			Set<String> list = configurationRestImpl.getReactionTypes(token.getId());
-			StateTransitionReaction protein = new StateTransitionReaction();
-			assertTrue(list.contains(protein.getStringType()));
+			Set<Map<String, String>> list = configurationRestImpl.getReactionTypes(token.getId());
+			StateTransitionReaction reaction = new StateTransitionReaction();
+			boolean contains = false;
+			for (Map<String, String> object : list) {
+				contains |= (object.get("name").equals(reaction.getStringType()));
+			}
+			assertTrue(contains);
 		} catch (Exception e) {
 			e.printStackTrace();
 			throw e;
@@ -100,7 +108,7 @@ public class ConfigurationRestImplTest extends RestTestFunctions {
 	@Test
 	public void testGetMiriamTypes() throws Exception {
 		try {
-			Map<?,?> list = configurationRestImpl.getMiriamTypes(token.getId());
+			Map<?, ?> list = configurationRestImpl.getMiriamTypes(token.getId());
 			assertNotNull(list.get(MiriamType.PUBMED.name()));
 		} catch (Exception e) {
 			e.printStackTrace();
diff --git a/web/src/main/java/lcsb/mapviewer/bean/ConfigurationBean.java b/web/src/main/java/lcsb/mapviewer/bean/ConfigurationBean.java
index 7fcd49d3a7afc1cf58b49cb8666a2d3d4f06e846..b93fdd83be4beaa8cbf60a0da5a956f6af3e40ac 100644
--- a/web/src/main/java/lcsb/mapviewer/bean/ConfigurationBean.java
+++ b/web/src/main/java/lcsb/mapviewer/bean/ConfigurationBean.java
@@ -422,39 +422,39 @@ public class ConfigurationBean extends AbstractManagedBean implements Serializab
 	}
 
 	/**
-	 * Returns {@link ConfigurationElementType#LENGEND_FILE_1 legend file 1}.
+	 * Returns {@link ConfigurationElementType#LEGEND_FILE_1 legend file 1}.
 	 * 
-	 * @return {@link ConfigurationElementType#LENGEND_FILE_1 legend file 1}
+	 * @return {@link ConfigurationElementType#LEGEND_FILE_1 legend file 1}
 	 */
 	public String getLegendFile1() {
-		return valueMap.get(ConfigurationElementType.LENGEND_FILE_1);
+		return valueMap.get(ConfigurationElementType.LEGEND_FILE_1);
 	}
 
 	/**
-	 * Returns {@link ConfigurationElementType#LENGEND_FILE_2 legend file 2}.
+	 * Returns {@link ConfigurationElementType#LEGEND_FILE_2 legend file 2}.
 	 * 
-	 * @return {@link ConfigurationElementType#LENGEND_FILE_2 legend file 2}
+	 * @return {@link ConfigurationElementType#LEGEND_FILE_2 legend file 2}
 	 */
 	public String getLegendFile2() {
-		return valueMap.get(ConfigurationElementType.LENGEND_FILE_2);
+		return valueMap.get(ConfigurationElementType.LEGEND_FILE_2);
 	}
 
 	/**
-	 * Returns {@link ConfigurationElementType#LENGEND_FILE_3 legend file 3}.
+	 * Returns {@link ConfigurationElementType#LEGEND_FILE_3 legend file 3}.
 	 * 
-	 * @return {@link ConfigurationElementType#LENGEND_FILE_3 legend file 3}
+	 * @return {@link ConfigurationElementType#LEGEND_FILE_3 legend file 3}
 	 */
 	public String getLegendFile3() {
-		return valueMap.get(ConfigurationElementType.LENGEND_FILE_3);
+		return valueMap.get(ConfigurationElementType.LEGEND_FILE_3);
 	}
 
 	/**
-	 * Returns {@link ConfigurationElementType#LENGEND_FILE_4 legend file 4}.
+	 * Returns {@link ConfigurationElementType#LEGEND_FILE_4 legend file 4}.
 	 * 
-	 * @return {@link ConfigurationElementType#LENGEND_FILE_4 legend file 4}
+	 * @return {@link ConfigurationElementType#LEGEND_FILE_4 legend file 4}
 	 */
 	public String getLegendFile4() {
-		return valueMap.get(ConfigurationElementType.LENGEND_FILE_4);
+		return valueMap.get(ConfigurationElementType.LEGEND_FILE_4);
 	}
 
 	/**