diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js
index ff6b30a452862714692eca71df6e7d7ae76d8151..3ce70cf0a0055e0530e40059c3fcaffbfa80da38 100644
--- a/wax-prosemirror-schema/index.js
+++ b/wax-prosemirror-schema/index.js
@@ -1,26 +1,16 @@
 /*
 LIST OF SUPPORTED NODES
 */
-export { default as authorNode } from './src/nodes/authorNode';
-export { default as epigraphPoetryNode } from './src/nodes/epigraphPoetryNode';
-export { default as epigraphProseNode } from './src/nodes/epigraphProseNode';
-export { default as sourceNoteNode } from './src/nodes/sourceNoteNode';
-export { default as paragraphContNode } from './src/nodes/paragraphContNode';
-export { default as extractProseNode } from './src/nodes/extractProseNode';
-export { default as extractPoetryNode } from './src/nodes/extractPoetryNode';
-export { default as titleNode } from './src/nodes/titleNode';
 export { default as orderedListNode } from './src/nodes/orderedListNode';
 export { default as bulletListNode } from './src/nodes/bulletListNode';
 export { default as listItemNode } from './src/nodes/listItemNode';
-export { default as subTitleNode } from './src/nodes/subTitleNode';
 export { default as figureNode } from './src/nodes/figureNode';
 export { default as figureCaptionNode } from './src/nodes/figureCaptionNode';
 export { default as imageNode } from './src/nodes/imageNode';
-export { default as headingNode } from './src/nodes/headingNode';
-export { default as blockQuoteNode } from './src/nodes/blockQuoteNode';
 export { default as footNoteNode } from './src/nodes/footNoteNode';
 export { default as codeBlockNode } from './src/nodes/codeBlockNode';
 export { default as mathInlineNode } from './src/nodes/mathInlineNode';
 export { default as mathDisplayNode } from './src/nodes/mathDisplayNode';
 export { default as customBlockNode } from './src/nodes/customBlockNode';
+
 export { default as OenNodes } from './src/nodes/oenNodes';
diff --git a/wax-prosemirror-schema/src/nodes/headingNode.js b/wax-prosemirror-schema/src/nodes/headingNode.js
deleted file mode 100644
index b876438c3e7ca713325afac25529a0de69f0dc4d..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/src/nodes/headingNode.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/* eslint-disable no-param-reassign */
-const heading = {
-  attrs: {
-    level: { default: 2 },
-  },
-  content: 'inline*',
-  group: 'block',
-  defining: true,
-  parseDOM: [
-    {
-      tag: 'h2',
-      attrs: { level: 2 },
-    },
-    {
-      tag: 'h3',
-      attrs: { level: 3 },
-    },
-    {
-      tag: 'h4',
-      attrs: { level: 4 },
-    },
-  ],
-  toDOM(hook, next) {
-    const attrs = {};
-    hook.value = [`h${hook.node.attrs.level}`, attrs, 0];
-    next();
-  },
-};
-
-export default heading;
diff --git a/wax-prosemirror-schema/src/nodes/paragraphContNode.js b/wax-prosemirror-schema/src/nodes/paragraphContNode.js
deleted file mode 100644
index 08e09467a84c68ffd8af26a595bc637b93d7adf8..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/src/nodes/paragraphContNode.js
+++ /dev/null
@@ -1,27 +0,0 @@
-const paragraphCont = {
-  content: "inline*",
-  group: "block",
-  priority: 0,
-  defining: true,
-  attrs: {
-    class: { default: "paragraph-cont" }
-  },
-  parseDOM: [
-    {
-      tag: "p.paragraph-cont",
-      getAttrs(hook, next) {
-        Object.assign(hook, {
-          class: hook.dom.getAttribute("class")
-        });
-        next();
-      }
-    }
-  ],
-  toDOM(hook, next) {
-    const attrs = { class: hook.node.attrs.class };
-    hook.value = ["p", attrs, 0];
-    next();
-  }
-};
-
-export default paragraphCont;
diff --git a/wax-prosemirror-schema/src/nodes/authorNode.js b/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/schema/authorNode.js
similarity index 90%
rename from wax-prosemirror-schema/src/nodes/authorNode.js
rename to wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/schema/authorNode.js
index ceff388df662a3bc73a5e7fa23f362cd533cce0c..9c8cf01b0cafde4dd35e3ed3f2e44fbe166e220c 100644
--- a/wax-prosemirror-schema/src/nodes/authorNode.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/schema/authorNode.js
@@ -1,4 +1,4 @@
-const author = {
+const authorNode = {
   content: 'inline*',
   group: 'block',
   priority: 0,
@@ -24,4 +24,4 @@ const author = {
   },
 };
 
-export default author;
+export default authorNode;
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js
index 19bad11b08f3157bae39423d28f5f5a2eafc576d..4f4f7ff5af7949b4ddc2c69cd70bf0a3b42e801a 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { epigraphPoetryNode } from 'wax-prosemirror-schema';
+import epigraphPoetryNode from './schema/epigraphPoetryNode';
 import EpigraphPoetry from './EpigraphPoetry';
 
 class EpigraphPoetryService extends Service {
diff --git a/wax-prosemirror-schema/src/nodes/epigraphPoetryNode.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/schema/epigraphPoetryNode.js
similarity index 88%
rename from wax-prosemirror-schema/src/nodes/epigraphPoetryNode.js
rename to wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/schema/epigraphPoetryNode.js
index e3bea1e30aafda1ed8dcc28b7d1e13f66c9537bd..a626f53dd0d1430d9e11d12e132d294d09600b05 100644
--- a/wax-prosemirror-schema/src/nodes/epigraphPoetryNode.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/schema/epigraphPoetryNode.js
@@ -1,4 +1,4 @@
-const epigraphPoetry = {
+const epigraphPoetryNode = {
   content: 'inline*',
   group: 'block',
   priority: 0,
@@ -24,4 +24,4 @@ const epigraphPoetry = {
   },
 };
 
-export default epigraphPoetry;
+export default epigraphPoetryNode;
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js
index 192e6b72b8e8236820a33b9f9fc183f37765cdef..e710671cad9bbcedbbd1056d5324c5f22a1357d3 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { epigraphProseNode } from 'wax-prosemirror-schema';
+import epigraphProseNode from './schema/epigraphProseNode';
 import EpigraphProse from './EpigraphProse';
 
 class EpigraphProseService extends Service {
diff --git a/wax-prosemirror-schema/src/nodes/epigraphProseNode.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/schema/epigraphProseNode.js
similarity index 88%
rename from wax-prosemirror-schema/src/nodes/epigraphProseNode.js
rename to wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/schema/epigraphProseNode.js
index 328ed0846ad8060a80633260d2a2a49c1175db2f..d2e03dd477b015371ade0c29f64c84847a96288e 100644
--- a/wax-prosemirror-schema/src/nodes/epigraphProseNode.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/schema/epigraphProseNode.js
@@ -1,4 +1,4 @@
-const epigraphProse = {
+const epigraphProseNode = {
   content: 'inline*',
   group: 'block',
   priority: 0,
@@ -24,4 +24,4 @@ const epigraphProse = {
   },
 };
 
-export default epigraphProse;
+export default epigraphProseNode;
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js
index 4014b0038f22de779f15393d7dab1111acc03052..6da7e53ed7a74029de054f4667adf3a575e28df4 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { subTitleNode } from 'wax-prosemirror-schema';
+import subTitleNode from './schema/subTitleNode';
 import SubTitle from './SubTitle';
 
 class SubTitleService extends Service {
diff --git a/wax-prosemirror-schema/src/nodes/subTitleNode.js b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/schema/subTitleNode.js
similarity index 89%
rename from wax-prosemirror-schema/src/nodes/subTitleNode.js
rename to wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/schema/subTitleNode.js
index 2356004cfdec37710d59e20859265a0d22868235..e188aeaf5723fdb37764a77e80e2263c6f7c1615 100644
--- a/wax-prosemirror-schema/src/nodes/subTitleNode.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/schema/subTitleNode.js
@@ -1,4 +1,4 @@
-const subtitle = {
+const subTitleNode = {
   content: 'inline*',
   group: 'block',
   priority: 0,
@@ -24,4 +24,4 @@ const subtitle = {
   },
 };
 
-export default subtitle;
+export default subTitleNode;
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js
index 67644481eb5236b44cd7ff9f5e035f37b159341f..238fb30cebf57f10c6ff57314d25fdd09c0e61df 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { titleNode } from 'wax-prosemirror-schema';
+import titleNode from './schema/titleNode';
 import Title from './Title';
 
 class TitleService extends Service {
diff --git a/wax-prosemirror-schema/src/nodes/titleNode.js b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/schema/titleNode.js
similarity index 88%
rename from wax-prosemirror-schema/src/nodes/titleNode.js
rename to wax-prosemirror-services/src/DisplayBlockLevel/TitleService/schema/titleNode.js
index ee57cf95e0a03a0d724dae0d10f6925f7cd5aa4d..f03bfa092dcdd55f0b966a9383bf6229898cf0a7 100644
--- a/wax-prosemirror-schema/src/nodes/titleNode.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/schema/titleNode.js
@@ -1,4 +1,4 @@
-const title = {
+const titleNode = {
   attrs: {
     level: { default: 1 },
   },
@@ -19,4 +19,4 @@ const title = {
   },
 };
 
-export default title;
+export default titleNode;
diff --git a/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js b/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js
index 77a27ccd10b86ee4c0c31d0f2ed87f73e7252a9d..21e525157cf85ee3323fc28a6c992d58707dcf4d 100644
--- a/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js
+++ b/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js
@@ -125,6 +125,7 @@ export default ({ node, view, getPos }) => {
   const [optionText, setOptionText] = useState('');
   const [addingOption, setAddingOption] = useState(false);
   const addOptionRef = useRef(null);
+  const addOptionBtnRef = useRef(null);
 
   const customProps = main.props.customValues;
 
@@ -134,6 +135,19 @@ export default ({ node, view, getPos }) => {
 
   const readOnly = !isEditable;
 
+  useEffect(() => {
+    const listener = event => {
+      if (event.code === 'Enter') {
+        event.preventDefault();
+        addOptionBtnRef.current.click();
+      }
+    };
+    addOptionBtnRef.current.addEventListener('keydown', listener);
+    return () => {
+      addOptionBtnRef.current.removeEventListener('keydown', listener);
+    };
+  }, []);
+
   useEffect(() => {
     const allNodes = getNodes(main);
 
@@ -246,7 +260,7 @@ export default ({ node, view, getPos }) => {
                   type="text"
                   value={optionText}
                 />
-                <button onClick={addOption} type="button">
+                <button onClick={addOption} ref={addOptionBtnRef} type="button">
                   Add Option
                 </button>
               </AddOption>
diff --git a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js
index 4bf42c506573dcd4f46e8fb7c1df39fb8e0024f3..e1b053302a8ed43e906933ebdd0286f1329ebcd5 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { blockQuoteNode } from 'wax-prosemirror-schema';
+import blockQuoteNode from './schema/blockQuoteNode';
 import BlockQuote from './BlockQuote';
 import './blockQuote.css';
 
diff --git a/wax-prosemirror-schema/src/nodes/blockQuoteNode.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/schema/blockQuoteNode.js
similarity index 72%
rename from wax-prosemirror-schema/src/nodes/blockQuoteNode.js
rename to wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/schema/blockQuoteNode.js
index 9ffb0e76ebaca850745cdf18a24017be6883b158..86b5a76759ecbce06d2c79179c7a5c9c56e0c260 100644
--- a/wax-prosemirror-schema/src/nodes/blockQuoteNode.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/schema/blockQuoteNode.js
@@ -1,4 +1,4 @@
-const blockquote = {
+const blockQuoteNode = {
   content: 'block+',
   group: 'block',
   defining: true,
@@ -8,4 +8,4 @@ const blockquote = {
   },
 };
 
-export default blockquote;
+export default blockQuoteNode;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js
index d2243b6045c738bc2a3f6f4af091df75014fadda..46209a3e47f15c90807cf70f7e048fac79d16ccb 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { extractPoetryNode } from 'wax-prosemirror-schema';
+import extractPoetryNode from './schema/extractPoetryNode';
 import ExtractPoetry from './ExtractPoetry';
 
 class ExtractPoetryService extends Service {
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/schema/extractPoetryNode.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/schema/extractPoetryNode.js
new file mode 100644
index 0000000000000000000000000000000000000000..aaa69508d89469563e38c227e959bf7be2e9635b
--- /dev/null
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/schema/extractPoetryNode.js
@@ -0,0 +1,27 @@
+const extractPoetryNode = {
+  content: 'inline*',
+  group: 'block',
+  priority: 0,
+  defining: true,
+  attrs: {
+    class: { default: 'extract-poetry' },
+  },
+  parseDOM: [
+    {
+      tag: 'p.extract-poetry',
+      getAttrs(hook, next) {
+        Object.assign(hook, {
+          class: hook.dom.getAttribute('class'),
+        });
+        next();
+      },
+    },
+  ],
+  toDOM(hook, next) {
+    const attrs = { class: hook.node.attrs.class };
+    hook.value = ['p', attrs, 0];
+    next();
+  },
+};
+
+export default extractPoetryNode;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js
index 38469d807a1a203aba26e7bba64b1efcd673932f..dc2d94d461056f0c5c529022131f6de612ad83a1 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { extractProseNode } from 'wax-prosemirror-schema';
+import extractProseNode from './schema/extractProseNode';
 import ExtractProse from './ExtractProse';
 
 class ExtractProseService extends Service {
diff --git a/wax-prosemirror-schema/src/nodes/extractProseNode.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/schema/extractProseNode.js
similarity index 88%
rename from wax-prosemirror-schema/src/nodes/extractProseNode.js
rename to wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/schema/extractProseNode.js
index deea5977161b410697653a65eb85e46195dd2894..ca159752816ffe64891e035527c4102e2f092c12 100644
--- a/wax-prosemirror-schema/src/nodes/extractProseNode.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/schema/extractProseNode.js
@@ -1,4 +1,4 @@
-const extractProse = {
+const extractProseNode = {
   content: 'inline*',
   group: 'block',
   priority: 0,
@@ -24,4 +24,4 @@ const extractProse = {
   },
 };
 
-export default extractProse;
+export default extractProseNode;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js
index 456b57cab56a6f6db0d9f0cad9e519c3352e38b5..91ac808e62ff2eec795815266fb4d87a67d8689c 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { paragraphContNode } from 'wax-prosemirror-schema';
+import paragraphContNode from './schema/paragraphContNode';
 import ParagraphContinued from './ParagraphContinued';
 
 class ParagraphContinuedService extends Service {
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/schema/paragraphContNode.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/schema/paragraphContNode.js
new file mode 100644
index 0000000000000000000000000000000000000000..c45b9546a78ac668999c6cafa008af1932e1aad6
--- /dev/null
+++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/schema/paragraphContNode.js
@@ -0,0 +1,27 @@
+const paragraphContNode = {
+  content: 'inline*',
+  group: 'block',
+  priority: 0,
+  defining: true,
+  attrs: {
+    class: { default: 'paragraph-cont' },
+  },
+  parseDOM: [
+    {
+      tag: 'p.paragraph-cont',
+      getAttrs(hook, next) {
+        Object.assign(hook, {
+          class: hook.dom.getAttribute('class'),
+        });
+        next();
+      },
+    },
+  ],
+  toDOM(hook, next) {
+    const attrs = { class: hook.node.attrs.class };
+    hook.value = ['p', attrs, 0];
+    next();
+  },
+};
+
+export default paragraphContNode;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js
index 00aea726593d411fc6ecc67eea68ad2b9f0f901b..47b113139b5869125a902e681f2c5ac12e7f17ac 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { sourceNoteNode } from 'wax-prosemirror-schema';
+import sourceNoteNode from './schema/sourceNoteNode';
 import SourceNote from './SourceNote';
 
 class SourceNoteService extends Service {
diff --git a/wax-prosemirror-schema/src/nodes/sourceNoteNode.js b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/schema/sourceNoteNode.js
similarity index 89%
rename from wax-prosemirror-schema/src/nodes/sourceNoteNode.js
rename to wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/schema/sourceNoteNode.js
index b530ec83588bfda28764c67d8c053e9898167668..6b244c979e1aa31033fcfc63ddee386aa8eae163 100644
--- a/wax-prosemirror-schema/src/nodes/sourceNoteNode.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/schema/sourceNoteNode.js
@@ -1,4 +1,4 @@
-const sourceNote = {
+const sourceNoteNode = {
   content: 'inline*',
   group: 'block',
   priority: 0,
@@ -24,4 +24,4 @@ const sourceNote = {
   },
 };
 
-export default sourceNote;
+export default sourceNoteNode;