diff --git a/editors/demo/src/Editoria/Editoria.js b/editors/demo/src/Editoria/Editoria.js
index 5fa4de11075cc179bd514dfd0ef7b242cbf5456b..c6e78c65d83d1ef0a00175204df77b65496e2358 100644
--- a/editors/demo/src/Editoria/Editoria.js
+++ b/editors/demo/src/Editoria/Editoria.js
@@ -53,7 +53,7 @@ const Editoria = () => {
           layout={layout}
           onChange={debounce(source => {
             console.log(source);
-          }, 3000)}
+          }, 200)}
           onBlur={source => console.log(source)}
           user={user}
         />
diff --git a/editors/demo/src/Editors.js b/editors/demo/src/Editors.js
index 977ed5cc4dbf7c694157ede01a713d4b2f5b983e..fa52e35509b57dc1e5f1d06514566f8cc480bbe7 100644
--- a/editors/demo/src/Editors.js
+++ b/editors/demo/src/Editors.js
@@ -54,7 +54,7 @@ const Editors = () => {
       case 'ncbi':
         break;
       default:
-        return <HHMI />;
+        return <Editoria />;
     }
   };
 
diff --git a/wax-prosemirror-core/src/Wax.js b/wax-prosemirror-core/src/Wax.js
index e76225864f8965cff8ba4b86da2894059cffa94b..a312359990fbdb3b600a3935b35f36a44373c327 100644
--- a/wax-prosemirror-core/src/Wax.js
+++ b/wax-prosemirror-core/src/Wax.js
@@ -1,6 +1,5 @@
 /* eslint react/prop-types: 0 */
 import React, { useEffect, useState } from 'react';
-import debounce from 'lodash/debounce';
 import { each } from 'lodash';
 import { DOMSerializer } from 'prosemirror-model';
 
@@ -51,10 +50,10 @@ const Wax = props => {
   if (!application) return null;
   const WaxOnchange = onChange || (v => true);
 
-  const finalOnChange = schema => content => {
+  const finalOnChange = content => {
     /* HACK  alter toDOM of footnote, because of how PM treats inline nodes
       with content */
-
+    const { schema } = application.schema;
     const notes = [];
     each(schema.nodes, node => {
       if (node.groups.includes('notes')) notes.push(node);
@@ -62,10 +61,8 @@ const Wax = props => {
 
     if (notes.length > 0) {
       notes.forEach(note => {
-        const old = schema.nodes[note.name].spec.toDOM;
-        schema.nodes[note.name].spec.toDOM = node => {
+        schema.nodes.footnote.spec.toDOM = node => {
           // eslint-disable-next-line prefer-rest-params
-          old.apply(this);
           if (node) return [note.name, node.attrs, 0];
         };
       });
@@ -80,10 +77,8 @@ const Wax = props => {
 
     if (notes.length > 0) {
       notes.forEach(note => {
-        const old = schema.nodes[note.name].spec.toDOM;
-        schema.nodes[note.name].spec.toDOM = node => {
+        schema.nodes.footnote.spec.toDOM = node => {
           // eslint-disable-next-line prefer-rest-params
-          old.apply(this);
           if (node) return [note.name, node.attrs];
         };
       });
diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js
index f4749b4b34c97576b3a6e39bc52a7856677803a7..517051f11e283bb85bbe8bf5784c2598d297ce9b 100644
--- a/wax-prosemirror-core/src/WaxView.js
+++ b/wax-prosemirror-core/src/WaxView.js
@@ -130,11 +130,11 @@ export default props => {
     }
     if (targetFormat === 'JSON') {
       if (view.state.doc !== previousDoc || tr.getMeta('forceUpdate'))
-        props.onChange(schema)(state.doc.toJSON());
+        props.onChange(state.doc.toJSON());
     } else {
       // eslint-disable-next-line no-lonely-if
       if (view.state.doc !== previousDoc || tr.getMeta('forceUpdate'))
-        props.onChange(schema)(state.doc.content);
+        props.onChange(state.doc.content);
     }
   };
 
diff --git a/wax-prosemirror-schema/src/nodes/footNoteNode.js b/wax-prosemirror-schema/src/nodes/footNoteNode.js
index ab89aa79a54f3080f52944c39e286df3c4a637d3..c90c48dc6a8005206de1e3078159e87eb11705ec 100644
--- a/wax-prosemirror-schema/src/nodes/footNoteNode.js
+++ b/wax-prosemirror-schema/src/nodes/footNoteNode.js
@@ -7,9 +7,7 @@ const footnote = {
     id: { default: '' },
   },
   toDOM: node => {
-    if (node) {
-      return ['footnote', node.attrs];
-    }
+    return ['footnote', node.attrs];
   },
   parseDOM: [
     {