diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParser.java
index 917ca54b971a73596161c3d9ccde1298dd572528..9031ca2f6a0f237b1db99e2f7af6686a7668edc4 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParser.java
@@ -22,7 +22,9 @@ public class FunctionXmlParser extends XmlParser {
     if (mathDefinition == null) {
       throw new InvalidXmlSchemaException("Function " + functionId + " doesn't contain MathML definition (math node)");
     }
-    result.setDefinition(nodeToString(mathDefinition).replace(" xmlns=\"http://www.w3.org/1998/Math/MathML\"", ""));
+    String definition = "<math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
+        + nodeToString(mathDefinition).replace(" xmlns=\"http://www.w3.org/1998/Math/MathML\"", "") + "</math>";
+    result.setDefinition(definition);
     result.setArguments(parseArgumentsFromMath(mathDefinition, functionId));
 
     return result;
@@ -47,9 +49,7 @@ public class FunctionXmlParser extends XmlParser {
     result.append("id=\"" + fun.getElementId() + "\" ");
     result.append("name=\"" + fun.getName() + "\" ");
     result.append(">\n");
-    result.append("<math xmlns=\"http://www.w3.org/1998/Math/MathML\">");    
     result.append(fun.getDefinition());
-    result.append("</math>\n");
     result.append("</functionDefinition>\n");
     return result.toString();
   }
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParserTest.java
index 34eaac74cbbc8c1d39621ff60fa0f6e3f76d2ecc..35cc01fa9379bb09814aa1b5b53a860291a2f709 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParserTest.java
@@ -26,6 +26,7 @@ public class FunctionXmlParserTest extends CellDesignerTestFunctions {
     assertNotNull(fun);
     assertEquals(fun.getFunctionId(), "function_id");
     assertEquals(fun.getName(), "Function name");
+    assertTrue("math node is not present", fun.getDefinition().indexOf("math") >= 0);
     assertTrue(fun.getDefinition().indexOf("lambda") >= 0);
     assertTrue(fun.getDefinition().indexOf("apply") >= 0);
   }
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionExporter.java
index 1ef4edfa9b7d1806171388d4aa2b8d662582610d..d534a4ff112caeb06a213da946ef85614015e333 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionExporter.java
@@ -25,8 +25,7 @@ public class SbmlFunctionExporter {
     FunctionDefinition result = new FunctionDefinition();
     result.setName(unit.getName());
     String definition = unit.getDefinition();
-    definition = definition.replace(" xmlns=\"http://www.sbml.org/sbml/level2/version4\"", "");
-    definition = "<math xmlns=\"http://www.w3.org/1998/Math/MathML\">" + definition + "</math>";
+    definition = definition.replace("lambda xmlns=\"http://www.sbml.org/sbml/level2/version4\"", "lambda");
     result.setMath(ASTNode.parseMathML(definition));
     result.setId(unit.getFunctionId());
     return result;
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionParser.java
index c2facb4d7c10f6cf97fd17ddbddcacd3f546b88c..cb2550ba4c62cdc9937fcfcb92179f7276c6fbad 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionParser.java
@@ -26,7 +26,9 @@ public class SbmlFunctionParser extends SbmlBioEntityParser {
       result.setName(unitDefinition.getName());
       Node node = super.getXmlDocumentFromString(unitDefinition.getMath().toMathML());
       Node mathDefinition = getNode("math", node);
-      result.setDefinition(super.nodeToString(mathDefinition));
+      String definition = "<math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
+          + nodeToString(mathDefinition).replace(" xmlns=\"http://www.w3.org/1998/Math/MathML\"", "") + "</math>";
+      result.setDefinition(definition);
       result.setArguments(parseArgumentsFromMath(mathDefinition, result.getFunctionId()));
       return result;
     } catch (InvalidXmlSchemaException e) {
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparator.java
index 15f90d66f8b719dc2e4931e7b7ede0c43c830254..03c5f71cd18d12f4095c0e0a1718468546d701bd 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparator.java
@@ -26,7 +26,7 @@ public class SbmlFunctionComparator extends Comparator<SbmlFunction> {
       return stringComparator.compare(arg0.getName(), arg1.getName());
     }
 
-    if (stringComparator.compare(arg0.getDefinition(), arg1.getDefinition()) != 0) {
+    if (stringComparator.compare(arg0.getDefinition(), arg1.getDefinition(), true) != 0) {
       logger.debug("definition different");
       logger.debug(arg0.getDefinition());
       logger.debug(arg1.getDefinition());
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImpl.java
index 975151ba926b10d101b21d6dacfb95faeefb830d..aa0214b288ce1f00c16212c016a47f60f510c544 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImpl.java
@@ -1,16 +1,20 @@
 package lcsb.mapviewer.api.projects.models.functions;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.xml.transform.TransformerException;
+
 import org.apache.log4j.Logger;
 import org.springframework.transaction.annotation.Transactional;
 
 import lcsb.mapviewer.api.BaseRestImpl;
 import lcsb.mapviewer.api.ObjectNotFoundException;
 import lcsb.mapviewer.api.QueryException;
+import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 import lcsb.mapviewer.model.map.kinetics.SbmlFunction;
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.services.SecurityException;
@@ -44,6 +48,11 @@ public class FunctionsRestImpl extends BaseRestImpl {
     result.put("functionId", function.getFunctionId());
     result.put("name", function.getName());
     result.put("definition", function.getDefinition());
+    try {
+      result.put("mathMlPresentation", super.mathMLToPresentationML(function.getDefinition()));
+    } catch (IOException | InvalidXmlSchemaException | TransformerException e) {
+      logger.error("Problems with transforming kinetics", e);
+    }
     result.put("arguments", function.getArguments());
     return result;
   }