diff --git a/wax-prosemirror-core/src/Wax.js b/wax-prosemirror-core/src/Wax.js
index bb3e37b3ed330312c00caf96b750790d2773fbde..cf035dba61e2605bf5b8e2881ba9486caad3c5b2 100644
--- a/wax-prosemirror-core/src/Wax.js
+++ b/wax-prosemirror-core/src/Wax.js
@@ -56,13 +56,14 @@ const Wax = forwardRef((props, innerViewRef) => {
   const [application, setApplication] = useState();
   const [WaxLayout, setWaxLayout] = useState(null);
   const configHash = createConfigWithHash(config);
-
+  console.log(configHash);
   useEffect(() => {
     const newApplication = createApplication(props);
     setApplication(newApplication);
     const Layout = newApplication.container.get('Layout');
     if (layout) Layout.setLayout(layout);
     setWaxLayout(Layout.layoutComponent);
+    setTimeout(() => {}, 100);
   }, [configHash]);
 
   const finalOnChange = content => {
@@ -78,6 +79,7 @@ const Wax = forwardRef((props, innerViewRef) => {
         autoFocus={autoFocus}
         browserSpellCheck={browserSpellCheck}
         className={className}
+        configHash={configHash}
         customValues={customValues}
         fileUpload={fileUpload}
         innerViewRef={innerViewRef}
diff --git a/wax-prosemirror-core/src/useWaxView.js b/wax-prosemirror-core/src/useWaxView.js
index b7005129277cdd0777c2fabe69af140eb35121e9..8844d350485884724101a6de97825c0ae4c30085 100644
--- a/wax-prosemirror-core/src/useWaxView.js
+++ b/wax-prosemirror-core/src/useWaxView.js
@@ -9,6 +9,7 @@ import helpers from './helpers/helpers';
 import './styles/styles.css';
 
 let previousDoc;
+let currentCofingHash;
 
 const useWaxView = props => {
   const {
@@ -18,6 +19,7 @@ const useWaxView = props => {
     autoFocus,
     user,
     innerViewRef,
+    configHash,
     targetFormat,
     serializer,
     scrollMargin,
@@ -58,17 +60,6 @@ const useWaxView = props => {
       attributes: {
         spellcheck: browserSpellCheck ? 'true' : 'false',
       },
-      handleDOMEvents: {
-        focus() {
-          // return udpateEditorContext(view);
-        },
-        mousedown: () => {
-          return udpateEditorContext(view);
-        },
-      },
-      handleKeyDown: () => {
-        return udpateEditorContext(view);
-      },
     });
 
     setWaxView(view);
@@ -90,17 +81,6 @@ const useWaxView = props => {
     return () => (view = null);
   }, []);
 
-  const udpateEditorContext = editorView => {
-    setTimeout(() => {
-      context.updateView(
-        {
-          main: editorView,
-        },
-        'main',
-      );
-    }, 50);
-  };
-
   useImperativeHandle(innerViewRef, () => ({
     getContent() {
       return helpers.getDocContent(schema, serializer, targetFormat, context);
@@ -108,24 +88,36 @@ const useWaxView = props => {
   }));
 
   const dispatchTransaction = transaction => {
-    const { TrackChange } = props;
-    const tr =
-      TrackChange && TrackChange.enabled
-        ? trackedTransaction(transaction, view.state, user, context)
-        : transaction;
+    if (currentCofingHash === configHash) {
+      const { TrackChange } = props;
+      const tr =
+        TrackChange && TrackChange.enabled
+          ? trackedTransaction(transaction, view.state, user, context)
+          : transaction;
 
-    if (!view) return;
+      if (!view) return;
 
-    previousDoc = view.state.doc;
-    const state = view.state.apply(tr);
-    view.updateState(state);
+      previousDoc = view.state.doc;
+      const state = view.state.apply(tr);
+      view.updateState(state);
 
-    context.setTransaction(transaction);
+      context.setTransaction(transaction);
 
-    const docContent =
-      targetFormat === 'JSON' ? state.doc.toJSON() : state.doc.content;
-    if (!previousDoc.eq(view.state.doc) || tr.getMeta('forceUpdate'))
-      onChange(docContent);
+      context.updateView(
+        {
+          main: view,
+        },
+        'main',
+      );
+
+      const docContent =
+        targetFormat === 'JSON' ? state.doc.toJSON() : state.doc.content;
+      if (!previousDoc.eq(view.state.doc) || tr.getMeta('forceUpdate'))
+        onChange(docContent);
+    }
+    setTimeout(() => {
+      currentCofingHash = configHash;
+    }, 100);
   };
 
   return WaxView;
diff --git a/wax-prosemirror-services/src/FullScreenService/components/FullScreenButton.js b/wax-prosemirror-services/src/FullScreenService/components/FullScreenButton.js
index c744d370f25d71f7b6a7e9ed79b468cf83f958a4..0a57885a91570a04a3f28060a9842e348500e743 100644
--- a/wax-prosemirror-services/src/FullScreenService/components/FullScreenButton.js
+++ b/wax-prosemirror-services/src/FullScreenService/components/FullScreenButton.js
@@ -15,7 +15,6 @@ const FullScreenButton = ({ view = {}, item }) => {
   const { state } = view;
 
   const handleMouseDown = e => {
-    context.updateView({}, 'main');
     e.preventDefault();
     Object.assign(options, { fullScreen: !options.fullScreen });
     activeView.dispatch(
diff --git a/wax-questions-service/src/NumericalAnswerService/components/NumericalAnswerDropDownCompontent.js b/wax-questions-service/src/NumericalAnswerService/components/NumericalAnswerDropDownCompontent.js
index 249bd2e58a67cccdbb42fa1398b36e9d3a3a71dd..c80ea7c78ab649822ac4b7a6d9f3d48f7fefdbe3 100644
--- a/wax-questions-service/src/NumericalAnswerService/components/NumericalAnswerDropDownCompontent.js
+++ b/wax-questions-service/src/NumericalAnswerService/components/NumericalAnswerDropDownCompontent.js
@@ -140,7 +140,6 @@ const NumericalAnswerDropDownCompontent = ({ node }) => {
 
   const onKeyDown = (e, index) => {
     e.preventDefault();
-    updateWaxView();
     // arrow down
     if (e.keyCode === 40) {
       if (index === itemRefs.current.length - 1) {
@@ -192,7 +191,6 @@ const NumericalAnswerDropDownCompontent = ({ node }) => {
   };
 
   const onChange = option => {
-    updateWaxView();
     context.setOption({ [node.attrs.id]: { numericalAnswer: option.value } });
     setLabel(option.label);
     openCloseMenu();
@@ -200,15 +198,6 @@ const NumericalAnswerDropDownCompontent = ({ node }) => {
     activeView.focus();
   };
 
-  const updateWaxView = () => {
-    context.updateView(
-      {
-        main: context.pmViews.main,
-      },
-      'main',
-    );
-  };
-
   const NumericalAnswerDropDown = useMemo(
     () => (
       <Wrapper disabled={isDisabled} ref={wrapperRef}>