diff --git a/wax-questions-service/src/NumericalAnswerService/components/ExactAnswerComponent.js b/wax-questions-service/src/NumericalAnswerService/components/ExactAnswerComponent.js
index 070b6156956e6a8ad04fe804545de613414ce072..ac9002e361a9c300f467f9b166480420309c735d 100644
--- a/wax-questions-service/src/NumericalAnswerService/components/ExactAnswerComponent.js
+++ b/wax-questions-service/src/NumericalAnswerService/components/ExactAnswerComponent.js
@@ -1,5 +1,6 @@
 import React, { useRef, useState } from 'react';
 import styled from 'styled-components';
+import { DocumentHelpers } from 'wax-prosemirror-core';
 
 const AnswerContainer = styled.div`
   display: flex;
@@ -32,12 +33,19 @@ const ExactAnswerComponent = () => {
   const exactRef = useRef(null);
   const errorRef = useRef(null);
 
+  const onlyNumbers = value => {
+    return value
+      .replace(/[^0-9.]/g, '')
+      .replace(/(\..*?)\..*/g, '$1')
+      .replace(/^0[^.]/, '0');
+  };
+
   const onChangeExact = () => {
-    setExact(exactRef.current.value);
+    setExact(onlyNumbers(exactRef.current.value));
   };
 
   const onChangeError = () => {
-    setMarginError(errorRef.current.value);
+    setMarginError(onlyNumbers(errorRef.current.value));
   };
 
   return (
@@ -74,4 +82,15 @@ const ExactAnswerComponent = () => {
   );
 };
 
+const getNodes = view => {
+  const allNodes = DocumentHelpers.findBlockNodes(view.state.doc);
+  const numericalAnswerpContainerNodes = [];
+  allNodes.forEach(node => {
+    if (node.node.type.name === 'numerical_answer_container') {
+      numericalAnswerpContainerNodes.push(node);
+    }
+  });
+  return numericalAnswerpContainerNodes;
+};
+
 export default ExactAnswerComponent;
diff --git a/wax-questions-service/src/NumericalAnswerService/components/NumericalAnswerDropDownCompontent.js b/wax-questions-service/src/NumericalAnswerService/components/NumericalAnswerDropDownCompontent.js
index aad0a1c803b8454a53e42549d16b5ac9e7907ca7..a743a3949cf7a12e38bde23b3e83c400c790c29d 100644
--- a/wax-questions-service/src/NumericalAnswerService/components/NumericalAnswerDropDownCompontent.js
+++ b/wax-questions-service/src/NumericalAnswerService/components/NumericalAnswerDropDownCompontent.js
@@ -163,9 +163,10 @@ const NumericalAnswerDropDownCompontent = ({ nodeId }) => {
 
   const onChange = option => {
     context.setOption({ [nodeId]: { numericalAnswer: option.value } });
-    main.dispatch(main.state.tr.setMeta('addToHistory', false));
     setLabel(option.label);
     openCloseMenu();
+    activeView.dispatch(activeView.state.tr.setMeta('addToHistory', false));
+    activeView.focus();
   };
 
   const NumericalAnswerDropDown = useMemo(
diff --git a/wax-questions-service/src/NumericalAnswerService/components/PreciseAnswerComponent.js b/wax-questions-service/src/NumericalAnswerService/components/PreciseAnswerComponent.js
index 2ab9c1a5ff0467e798aac4b760c333fd2bd9c19d..38c34b2eabc0d492ddb1b027adaa1a44ae6c4027 100644
--- a/wax-questions-service/src/NumericalAnswerService/components/PreciseAnswerComponent.js
+++ b/wax-questions-service/src/NumericalAnswerService/components/PreciseAnswerComponent.js
@@ -1,5 +1,6 @@
 import React, { useRef, useState } from 'react';
 import styled from 'styled-components';
+import { DocumentHelpers } from 'wax-prosemirror-core';
 
 const AnswerContainer = styled.div`
   display: flex;
@@ -30,8 +31,15 @@ const PreciseAnswerComponent = () => {
 
   const preciseRef = useRef(null);
 
+  const onlyNumbers = value => {
+    return value
+      .replace(/[^0-9.]/g, '')
+      .replace(/(\..*?)\..*/g, '$1')
+      .replace(/^0[^.]/, '0');
+  };
+
   const onChangePrecice = () => {
-    setPrecise(preciseRef.current.value);
+    setPrecise(onlyNumbers(preciseRef.current.value));
   };
 
   return (
@@ -54,4 +62,15 @@ const PreciseAnswerComponent = () => {
   );
 };
 
+const getNodes = view => {
+  const allNodes = DocumentHelpers.findBlockNodes(view.state.doc);
+  const numericalAnswerpContainerNodes = [];
+  allNodes.forEach(node => {
+    if (node.node.type.name === 'numerical_answer_container') {
+      numericalAnswerpContainerNodes.push(node);
+    }
+  });
+  return numericalAnswerpContainerNodes;
+};
+
 export default PreciseAnswerComponent;
diff --git a/wax-questions-service/src/NumericalAnswerService/components/RangeAnswerComponent.js b/wax-questions-service/src/NumericalAnswerService/components/RangeAnswerComponent.js
index 8b98b87a1f4e5e00fc6b57fa247bec302df202f8..c0be1d170700256d4802da681aa4527e6cd51e93 100644
--- a/wax-questions-service/src/NumericalAnswerService/components/RangeAnswerComponent.js
+++ b/wax-questions-service/src/NumericalAnswerService/components/RangeAnswerComponent.js
@@ -1,5 +1,6 @@
 import React, { useRef, useState } from 'react';
 import styled from 'styled-components';
+import { DocumentHelpers } from 'wax-prosemirror-core';
 
 const AnswerContainer = styled.div`
   display: flex;
@@ -32,12 +33,19 @@ const RangeAnswerComponent = () => {
   const minRef = useRef(null);
   const maxRef = useRef(null);
 
+  const onlyNumbers = value => {
+    return value
+      .replace(/[^0-9.]/g, '')
+      .replace(/(\..*?)\..*/g, '$1')
+      .replace(/^0[^.]/, '0');
+  };
+
   const onChangeMin = () => {
-    setMinValue(minRef.current.value);
+    setMinValue(onlyNumbers(minRef.current.value));
   };
 
   const onChangeMax = () => {
-    setMaxValue(maxRef.current.value);
+    setMaxValue(onlyNumbers(maxRef.current.value));
   };
 
   return (
@@ -74,4 +82,15 @@ const RangeAnswerComponent = () => {
   );
 };
 
+const getNodes = view => {
+  const allNodes = DocumentHelpers.findBlockNodes(view.state.doc);
+  const numericalAnswerpContainerNodes = [];
+  allNodes.forEach(node => {
+    if (node.node.type.name === 'numerical_answer_container') {
+      numericalAnswerpContainerNodes.push(node);
+    }
+  });
+  return numericalAnswerpContainerNodes;
+};
+
 export default RangeAnswerComponent;
diff --git a/wax-questions-service/src/NumericalAnswerService/schema/NumericalAnswerContainerNode.js b/wax-questions-service/src/NumericalAnswerService/schema/NumericalAnswerContainerNode.js
index a98ec716b4e15bcdefe16103d1288006e0136d81..b110d5f2431a6416dfaaf7a37aef3cd7d53a4e84 100644
--- a/wax-questions-service/src/NumericalAnswerService/schema/NumericalAnswerContainerNode.js
+++ b/wax-questions-service/src/NumericalAnswerService/schema/NumericalAnswerContainerNode.js
@@ -4,6 +4,7 @@ const NumericalAnswerContainerNode = {
     class: { default: 'numerical-answer' },
     feedback: { default: '' },
     answerType: { default: '' },
+    answers: { default: [] },
   },
   group: 'block questions',
   atom: true,
@@ -13,15 +14,26 @@ const NumericalAnswerContainerNode = {
       tag: 'div.numerical-answer',
       getAttrs(dom) {
         return {
+          answers: JSON.parse(dom.getAttribute('answers')),
           id: dom.getAttribute('id'),
           class: dom.getAttribute('class'),
           feedback: dom.getAttribute('feedback'),
+          answerType: dom.getAttribute('answerType'),
         };
       },
     },
   ],
   toDOM(node) {
-    return ['div', node.attrs, 0];
+    return [
+      'div',
+      {
+        id: node.attrs.id,
+        class: node.attrs.class,
+        answers: JSON.stringify(node.attrs.answers),
+        feedback: node.attrs.feedback,
+        answerType: node.attrs.answerType,
+      },
+    ];
   },
 };