diff --git a/editors/demo/config-overrides.js b/editors/demo/config-overrides.js
index 2886c1db5996e78feccf1f0966b7bd2d31f4c2fd..a787aa06f91aec96caa019ff69d8ddb018e224c1 100644
--- a/editors/demo/config-overrides.js
+++ b/editors/demo/config-overrides.js
@@ -15,10 +15,6 @@ module.exports = function override(config, env) {
         __dirname,
         '../../wax-prosemirror-services/index',
       ),
-      'wax-prosemirror-schema': path.resolve(
-        __dirname,
-        '../../wax-prosemirror-schema/index',
-      ),
     },
   };
   config.module = {
diff --git a/package.json b/package.json
index 5b66c8edf7ebbff154beb47ec56aee5a684fb200..5b5666585a8da5109d093fabc140e4c51d679fc1 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,6 @@
   "main": "index.js",
   "workspaces": [
     "wax-prosemirror-core",
-    "wax-prosemirror-schema",
     "wax-prosemirror-components",
     "wax-prosemirror-services",
     "editors/*"
diff --git a/wax-prosemirror-core/rollup.config.js b/wax-prosemirror-core/rollup.config.js
index ed7d01b1c9fd7aebfb88e0c62ef7a257ac227bbd..8d739e1e70f3370014fc922a2484df7d7b0a70b7 100644
--- a/wax-prosemirror-core/rollup.config.js
+++ b/wax-prosemirror-core/rollup.config.js
@@ -36,6 +36,5 @@ export default {
     'prop-types',
     'prosemirror-tables',
     'wax-prosemirror-services',
-    'wax-prosemirror-schema',
   ],
 };
diff --git a/wax-prosemirror-schema/.gitignore b/wax-prosemirror-schema/.gitignore
deleted file mode 100644
index b3e3ccb6b0ce3a90e1eb3f9e78da7924ea89f116..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/.gitignore
+++ /dev/null
@@ -1,25 +0,0 @@
-# dependencies
-/node_modules
-
-# testing
-/coverage
-
-# production
-/build
-
-# dist
-/dist
-
-# misc
-.DS_Store
-.env.local
-.env.development.local
-.env.test.local
-.env.production.local
-.directory
-
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-yarn.lock
-package-lock.json
diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js
deleted file mode 100644
index 581f1fe54983dd7df6f015119c260597804565cc..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/index.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-LIST OF SUPPORTED MARKS
-*/
-export { default as codeMark } from './src/marks/codeMark';
-export { default as strongMark } from './src/marks/strongMark';
-export { default as linkMark } from './src/marks/linkMark';
-export { default as emphasisMark } from './src/marks/emphasisMark';
-export { default as subscriptMark } from './src/marks/subscriptMark';
-export { default as superscriptMark } from './src/marks/superscriptMark';
-export { default as strikethroughMark } from './src/marks/strikethroughMark';
-export { default as underlineMark } from './src/marks/underlineMark';
-export { default as smallcapsMark } from './src/marks/smallcapsMark';
-export { default as sourceMark } from './src/marks/sourceMark';
-export { default as commentMark } from './src/marks/commentMark';
-export { default as mathSelectMark } from './src/marks/mathSelectMark';
-export { default as highlightMark } from './src/marks/highlightMark';
-export { default as customtagInlineMark } from './src/marks/customTagInlineMark';
-/*
-LIST OF TRACK CHANGES MARKS
-*/
-export { default as trackChangesMarks } from './src/marks/trackChangesMarks';
-
-/*
-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';
-/*
-LIST OF TRACK CHANGES NODES
-*/
-export { default as trackChangesNodes } from './src/nodes/trackChangesNodes';
diff --git a/wax-prosemirror-schema/package.json b/wax-prosemirror-schema/package.json
deleted file mode 100644
index 2fe6453c7d2567af3b3818281b30e06790ca6390..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "name": "wax-prosemirror-schema",
-  "author": "Christos Kokosias & Giannis Kopanas",
-  "version": "0.5.13",
-  "description": "Wax prosemirror schema",
-  "license": "MIT",
-  "main": "dist/index.js",
-  "files": [
-    "dist"
-  ],
-  "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1",
-    "build": "BABEL_ENV=production rollup -c"
-  },
-  "dependencies": {
-    "prosemirror-schema-list": "^1.1.6",
-    "prosemirror-tables": "^1.1.1",
-    "wax-prosemirror-core": "^0.5.13"
-  }
-}
diff --git a/wax-prosemirror-schema/rollup.config.js b/wax-prosemirror-schema/rollup.config.js
deleted file mode 100644
index 8e14947b400dfbe74aeef97a0f818ad6c42e130d..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/rollup.config.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import babel from 'rollup-plugin-babel';
-import commonjs from '@rollup/plugin-commonjs';
-import external from 'rollup-plugin-peer-deps-external';
-import css from 'rollup-plugin-import-css';
-import { terser } from 'rollup-plugin-terser';
-
-export default {
-  input: './index.js',
-  output: [
-    {
-      file: 'dist/index.js',
-      format: 'cjs',
-      sourcemap: false,
-    },
-  ],
-  plugins: [
-    css(),
-    external({
-      includeDependencies: true,
-    }),
-    babel({
-      exclude: 'node_modules/**',
-      runtimeHelpers: true,
-    }),
-    commonjs(),
-    terser(),
-  ],
-  external: ['uuid'],
-};
diff --git a/wax-prosemirror-schema/src/marks/codeMark.js b/wax-prosemirror-schema/src/marks/codeMark.js
deleted file mode 100644
index a9e6ab1ef818a09622c2a272826ba30ba38c3e65..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/src/marks/codeMark.js
+++ /dev/null
@@ -1,9 +0,0 @@
-const code = {
-  parseDOM: { tag: "code" },
-  toDOM(hook, next) {
-    hook.value = ["code", 0];
-    next();
-  }
-};
-
-export default code;
diff --git a/wax-prosemirror-schema/src/marks/sourceMark.js b/wax-prosemirror-schema/src/marks/sourceMark.js
deleted file mode 100644
index 7b87d7b462c8198a44b869292a83c97865cfb324..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/src/marks/sourceMark.js
+++ /dev/null
@@ -1,8 +0,0 @@
-const source = {
-  parseDOM: [{ tag: "cite" }],
-  toDOM() {
-    return ["cite", 0];
-  }
-};
-
-export default source;
diff --git a/wax-prosemirror-schema/src/marks/subscriptMark.js b/wax-prosemirror-schema/src/marks/subscriptMark.js
deleted file mode 100644
index ee7d7fc4a48543f2aa23af199cbe4e8531745de3..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/src/marks/subscriptMark.js
+++ /dev/null
@@ -1,10 +0,0 @@
-const subscript = {
-  excludes: "superscript",
-  parseDOM: [{ tag: "sub" }, { style: "vertical-align=sub" }],
-  toDOM(hook, next) {
-    hook.value = ["sub"];
-    next();
-  }
-};
-
-export default subscript;
diff --git a/wax-prosemirror-schema/src/marks/superscriptMark.js b/wax-prosemirror-schema/src/marks/superscriptMark.js
deleted file mode 100644
index 4e4bc5328a2d9ad11544b826c9254cff866cb24d..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/src/marks/superscriptMark.js
+++ /dev/null
@@ -1,10 +0,0 @@
-const superscript = {
-  excludes: "subscript",
-  parseDOM: [{ tag: "sup" }, { style: "vertical-align=super" }],
-  toDOM: (hook, next) => {
-    hook.value = ["sup"];
-    next();
-  }
-};
-
-export default superscript;
diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/index.js b/wax-prosemirror-schema/src/marks/trackChangesMarks/index.js
deleted file mode 100644
index 65843faf61d185a84596cbeda62975d1b0127ff1..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/src/marks/trackChangesMarks/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import insertionMark from "./insertionMark";
-import deletionMark from "./deletionMark";
-import formatChangeMark from "./formatChangeMark";
-
-export default {
-  format_change: formatChangeMark,
-  insertion: insertionMark,
-  deletion: deletionMark
-};
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-services/package.json b/wax-prosemirror-services/package.json
index 590b17ae1cb6016f2eddf44674a5f1a99f365831..919343c419d46cac0a56bb439f649ca4a507ef4c 100644
--- a/wax-prosemirror-services/package.json
+++ b/wax-prosemirror-services/package.json
@@ -32,8 +32,7 @@
     "use-deep-compare-effect": "^1.3.1",
     "uuid": "^7.0.3",
     "wax-prosemirror-components": "^0.5.13",
-    "wax-prosemirror-core": "^0.5.13",
-    "wax-prosemirror-schema": "^0.5.13"
+    "wax-prosemirror-core": "^0.5.13"
   },
   "peerDependencies": {
     "react": "^16.13.1",
diff --git a/wax-prosemirror-services/rollup.config.js b/wax-prosemirror-services/rollup.config.js
index 2ce6aaafee7612f1b0547755b3e9991998f21663..2a6eb41aade290764eeddec14df86e3393b1c0d1 100644
--- a/wax-prosemirror-services/rollup.config.js
+++ b/wax-prosemirror-services/rollup.config.js
@@ -35,7 +35,6 @@ export default {
     'react',
     'react-dom',
     'react-dropdown',
-    'wax-prosemirror-schema',
     'lodash',
     'prosemirror-tables',
     'prosemirror-schema-list',
diff --git a/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
index d289f63c7d68ee6b30d281dfab9e08aad14cb4ee..29e342d4ece5d805d4cdd6676745c0359afc5d5b 100644
--- a/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
+++ b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { codeBlockNode } from 'wax-prosemirror-schema';
+import codeBlockNode from './schema/codeBlockNode';
 import highlightPlugin from './plugins/highlightPlugin';
 import CodeBlockTool from './CodeBlockTool';
 import './highlightStyles.css';
diff --git a/wax-prosemirror-schema/src/nodes/codeBlockNode.js b/wax-prosemirror-services/src/CodeBlockService/schema/codeBlockNode.js
similarity index 88%
rename from wax-prosemirror-schema/src/nodes/codeBlockNode.js
rename to wax-prosemirror-services/src/CodeBlockService/schema/codeBlockNode.js
index 888b9645b42fae5c11bb73ac36351326cb168dd1..1875dbbe4cdeee028448af7e16350b088f73c2e7 100644
--- a/wax-prosemirror-schema/src/nodes/codeBlockNode.js
+++ b/wax-prosemirror-services/src/CodeBlockService/schema/codeBlockNode.js
@@ -1,4 +1,4 @@
-const codeBlock = {
+const codeBlockNode = {
   content: 'text*',
   group: 'block',
   code: true,
@@ -21,4 +21,4 @@ const codeBlock = {
   },
 };
 
-export default codeBlock;
+export default codeBlockNode;
diff --git a/wax-prosemirror-services/src/CommentsService/CommentsService.js b/wax-prosemirror-services/src/CommentsService/CommentsService.js
index 149006cfdec6dd5fafb5b847dcb54bf1ba8831f6..b09dd1c9ddb07b8736733c5c50df835b162df9c2 100644
--- a/wax-prosemirror-services/src/CommentsService/CommentsService.js
+++ b/wax-prosemirror-services/src/CommentsService/CommentsService.js
@@ -1,6 +1,6 @@
 import { Service } from 'wax-prosemirror-core';
-import { commentMark } from 'wax-prosemirror-schema';
 import { RightArea, CommentBubbleComponent } from 'wax-prosemirror-components';
+import commentMark from './schema/commentMark';
 import CommentPlugin from './plugins/CommentPlugin';
 import CopyPasteCommentPlugin from './plugins/CopyPasteCommentPlugin';
 import './comments.css';
diff --git a/wax-prosemirror-schema/src/marks/commentMark.js b/wax-prosemirror-services/src/CommentsService/schema/commentMark.js
similarity index 94%
rename from wax-prosemirror-schema/src/marks/commentMark.js
rename to wax-prosemirror-services/src/CommentsService/schema/commentMark.js
index aee15bd8176590a1071f3fbfc869205d0f655114..15d92a34c466f8995036ddc979d136decacba9b7 100644
--- a/wax-prosemirror-schema/src/marks/commentMark.js
+++ b/wax-prosemirror-services/src/CommentsService/schema/commentMark.js
@@ -1,4 +1,4 @@
-const comment = {
+const commentMark = {
   attrs: {
     class: { default: 'comment' },
     id: { default: '' },
@@ -38,4 +38,4 @@ const comment = {
   },
 };
 
-export default comment;
+export default commentMark;
diff --git a/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockService.js b/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockService.js
index 0029b8e0da132332030e523bf5dd2bf15986be30..04a5aa6e059b4b7f8215a3367abfab521a6664d7 100644
--- a/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockService.js
+++ b/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { customBlockNode } from 'wax-prosemirror-schema';
+import customBlockNode from './schema/customBlockNode';
 import CustomTagBlockTool from './CustomTagBlockTool';
 
 class CustomTagBlockService extends Service {
diff --git a/wax-prosemirror-schema/src/nodes/customBlockNode.js b/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/schema/customBlockNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/customBlockNode.js
rename to wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/schema/customBlockNode.js
diff --git a/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js b/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js
index c10d644cf5535b930e0b781e9d751241e74286f5..a7da291b3d62976df2a9a865118380a7d58fbb28 100644
--- a/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js
+++ b/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js
@@ -1,6 +1,6 @@
 import { Service } from 'wax-prosemirror-core';
 import { CustomTagInlineOverlayComponent } from 'wax-prosemirror-components';
-import { customtagInlineMark } from 'wax-prosemirror-schema';
+import customtagInlineMark from './schema/customtagInlineMark';
 import CustomTagInlineTool from './CustomTagInlineTool';
 
 class CustomTagInlineService extends Service {
diff --git a/wax-prosemirror-schema/src/marks/customTagInlineMark.js b/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/schema/customtagInlineMark.js
similarity index 91%
rename from wax-prosemirror-schema/src/marks/customTagInlineMark.js
rename to wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/schema/customtagInlineMark.js
index 62acd1dd0c9a06f51ef53b3c832a5b03140bc143..6ce70f7f597225c5ea932ee8f14da3e3b831ca75 100644
--- a/wax-prosemirror-schema/src/marks/customTagInlineMark.js
+++ b/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/schema/customtagInlineMark.js
@@ -1,4 +1,4 @@
-const customtagInline = {
+const customtagInlineMark = {
   attrs: {
     class: { default: null },
     tags: [],
@@ -32,4 +32,4 @@ const customtagInline = {
   },
 };
 
-export default customtagInline;
+export default customtagInlineMark;
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/AuthorService.js b/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/AuthorService.js
index 4875bb1faac373cbaa74ff270cf3ba2717891b1e..8dd06711a7ea09fddd759c6645e53c4d764eb4a9 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/AuthorService.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/AuthorService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { authorNode } from 'wax-prosemirror-schema';
+import authorNode from './schema/authorNode';
 import Author from './Author';
 
 class AuthorService extends Service {
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/HighlightService/HightlightService.js b/wax-prosemirror-services/src/HighlightService/HightlightService.js
index d02531af7c89c3a6f0baf55354c044804de35e22..71a2b9db5c155e4c8acf184247d2385e4b078c9e 100644
--- a/wax-prosemirror-services/src/HighlightService/HightlightService.js
+++ b/wax-prosemirror-services/src/HighlightService/HightlightService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { highlightMark } from 'wax-prosemirror-schema';
+import highlightMark from './schema/highlightMark';
 import TextHighlightTool from './TextHighlightTool';
 
 export default class HighlightService extends Service {
diff --git a/wax-prosemirror-schema/src/marks/highlightMark.js b/wax-prosemirror-services/src/HighlightService/schema/highlightMark.js
similarity index 90%
rename from wax-prosemirror-schema/src/marks/highlightMark.js
rename to wax-prosemirror-services/src/HighlightService/schema/highlightMark.js
index 322c6031490321b3106be7cc2af5753c205a7741..58391d47206e159cb61b499c66b8f95f71e38ea4 100644
--- a/wax-prosemirror-schema/src/marks/highlightMark.js
+++ b/wax-prosemirror-services/src/HighlightService/schema/highlightMark.js
@@ -1,4 +1,4 @@
-const highlight = {
+const highlightMark = {
   attrs: {
     style: { default: null },
     class: { default: 'highlight' },
@@ -23,4 +23,4 @@ const highlight = {
   },
 };
 
-export default highlight;
+export default highlightMark;
diff --git a/wax-prosemirror-services/src/ImageService/ImageService.js b/wax-prosemirror-services/src/ImageService/ImageService.js
index a9c84709da6bbfcc2fdf6d2ecfbb0c2c0d347e60..e23e55aacb3daff37a58d3eef73a286c3a6b3548 100644
--- a/wax-prosemirror-services/src/ImageService/ImageService.js
+++ b/wax-prosemirror-services/src/ImageService/ImageService.js
@@ -1,9 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import {
-  imageNode,
-  figureCaptionNode,
-  figureNode,
-} from 'wax-prosemirror-schema';
+import { imageNode, figureCaptionNode, figureNode } from './schema';
 import PlaceHolderPlugin from './plugins/placeHolderPlugin';
 import captionPlugin from './plugins/captionPlugin';
 import Image from './Image';
diff --git a/wax-prosemirror-schema/src/nodes/figureCaptionNode.js b/wax-prosemirror-services/src/ImageService/schema/figureCaptionNode.js
similarity index 85%
rename from wax-prosemirror-schema/src/nodes/figureCaptionNode.js
rename to wax-prosemirror-services/src/ImageService/schema/figureCaptionNode.js
index d41612991e6ff17e807593554c9e584b1acbfd98..caac6098877e41cec96c64c3f6bb18a0669fcbc3 100644
--- a/wax-prosemirror-schema/src/nodes/figureCaptionNode.js
+++ b/wax-prosemirror-services/src/ImageService/schema/figureCaptionNode.js
@@ -1,4 +1,4 @@
-const figureCaption = {
+const figureCaptionNode = {
   content: 'inline*',
   group: 'figure',
   draggable: false,
@@ -21,4 +21,4 @@ const figureCaption = {
   ],
 };
 
-export default figureCaption;
+export default figureCaptionNode;
diff --git a/wax-prosemirror-schema/src/nodes/figureNode.js b/wax-prosemirror-services/src/ImageService/schema/figureNode.js
similarity index 75%
rename from wax-prosemirror-schema/src/nodes/figureNode.js
rename to wax-prosemirror-services/src/ImageService/schema/figureNode.js
index 951d91c299c4e6327d3a6fcc2e69bf76a015285a..d991f25d6843e88a379c368e94ff4d5f361b9320 100644
--- a/wax-prosemirror-schema/src/nodes/figureNode.js
+++ b/wax-prosemirror-services/src/ImageService/schema/figureNode.js
@@ -1,4 +1,4 @@
-const figure = {
+const figureNode = {
   content: 'image* figcaption{0,1}',
   group: 'block',
   marks: '',
@@ -8,4 +8,4 @@ const figure = {
   },
 };
 
-export default figure;
+export default figureNode;
diff --git a/wax-prosemirror-schema/src/nodes/imageNode.js b/wax-prosemirror-services/src/ImageService/schema/imageNode.js
similarity index 96%
rename from wax-prosemirror-schema/src/nodes/imageNode.js
rename to wax-prosemirror-services/src/ImageService/schema/imageNode.js
index 74d308592535a292d1c6affa6290a7fc47dc25f2..69a3b05be18b6b2191befb93ee518398f9c9ad19 100644
--- a/wax-prosemirror-schema/src/nodes/imageNode.js
+++ b/wax-prosemirror-services/src/ImageService/schema/imageNode.js
@@ -1,6 +1,6 @@
 // import { SchemaHelpers } from 'wax-prosemirror-core';
 
-const image = {
+const imageNode = {
   attrs: {
     id: { default: '' },
     src: {},
@@ -53,4 +53,4 @@ const image = {
   },
 };
 
-export default image;
+export default imageNode;
diff --git a/wax-prosemirror-services/src/ImageService/schema/index.js b/wax-prosemirror-services/src/ImageService/schema/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..72ee2146f4e33260c8087a1096b7303eac9cb1a4
--- /dev/null
+++ b/wax-prosemirror-services/src/ImageService/schema/index.js
@@ -0,0 +1,3 @@
+export { default as imageNode } from './imageNode';
+export { default as figureNode } from './figureNode';
+export { default as figureCaptionNode } from './figureCaptionNode';
diff --git a/wax-prosemirror-services/src/InlineAnnotations/CodeService/CodeService.js b/wax-prosemirror-services/src/InlineAnnotations/CodeService/CodeService.js
index 22343f06c776d474d39a159a07f6d81500fb6948..59f6d725414aed09090083aea9913a888806bf34 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/CodeService/CodeService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/CodeService/CodeService.js
@@ -1,6 +1,6 @@
 import { Service } from 'wax-prosemirror-core';
 import { toggleMark } from 'prosemirror-commands';
-import { codeMark } from 'wax-prosemirror-schema';
+import codeMark from './schema/codeMark';
 import Code from './Code';
 
 class CodeService extends Service {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/CodeService/schema/codeMark.js b/wax-prosemirror-services/src/InlineAnnotations/CodeService/schema/codeMark.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1b042ed62c93763b344c61b04c6e870105ca34a
--- /dev/null
+++ b/wax-prosemirror-services/src/InlineAnnotations/CodeService/schema/codeMark.js
@@ -0,0 +1,9 @@
+const codeMark = {
+  parseDOM: { tag: 'code' },
+  toDOM(hook, next) {
+    hook.value = ['code', 0];
+    next();
+  },
+};
+
+export default codeMark;
diff --git a/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/EmphasisService.js b/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/EmphasisService.js
index 48e3dac84c10ef89e27d17417fdac7e33c59547f..2bc7316d7bd185fbc293fbb8c3025e4f1eed7076 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/EmphasisService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/EmphasisService.js
@@ -1,6 +1,6 @@
 import { Service } from 'wax-prosemirror-core';
 import { toggleMark } from 'prosemirror-commands';
-import { emphasisMark } from 'wax-prosemirror-schema';
+import emphasisMark from './schema/emphasisMark';
 import Emphasis from './Emphasis';
 
 class EmphasisService extends Service {
diff --git a/wax-prosemirror-schema/src/marks/emphasisMark.js b/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/schema/emphasisMark.js
similarity index 73%
rename from wax-prosemirror-schema/src/marks/emphasisMark.js
rename to wax-prosemirror-services/src/InlineAnnotations/EmphasisService/schema/emphasisMark.js
index 25c6835c0b3c6dd3059a77c187749ef4c0eb49ad..9f5bc0aee3fb466188bd244a67b4b622fb3e7fee 100644
--- a/wax-prosemirror-schema/src/marks/emphasisMark.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/schema/emphasisMark.js
@@ -1,4 +1,4 @@
-const em = {
+const emphasisMark = {
   parseDOM: [{ tag: 'i' }, { tag: 'em' }, { style: 'font-style=italic' }],
   toDOM(hook, next) {
     hook.value = ['em', 0];
@@ -6,4 +6,4 @@ const em = {
   },
 };
 
-export default em;
+export default emphasisMark;
diff --git a/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCapsService.js b/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCapsService.js
index dcc5097f0774e32231ea684d660243a7c9b7f82e..9ac16008ad29e896b07cd5cc05720270021bc1ec 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCapsService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCapsService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { smallcapsMark } from 'wax-prosemirror-schema';
+import smallcapsMark from './schema/smallcapsMark';
 import SmallCaps from './SmallCaps';
 
 class SmallCapsService extends Service {
diff --git a/wax-prosemirror-schema/src/marks/smallcapsMark.js b/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/schema/smallcapsMark.js
similarity index 87%
rename from wax-prosemirror-schema/src/marks/smallcapsMark.js
rename to wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/schema/smallcapsMark.js
index bdf73f6f7f08c7ca817cd6cd20e1ec16d08bf90a..df19d67bdfe3fbbaa4a42c156b9fe94db253c4e5 100644
--- a/wax-prosemirror-schema/src/marks/smallcapsMark.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/schema/smallcapsMark.js
@@ -1,4 +1,4 @@
-const smallcaps = {
+const smallcapsMark = {
   attrs: {
     class: { default: 'small-caps' },
   },
@@ -20,4 +20,4 @@ const smallcaps = {
   },
 };
 
-export default smallcaps;
+export default smallcapsMark;
diff --git a/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThroughService.js b/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThroughService.js
index f0bb9a51424c363745542eafaa72c7706781704e..1784d570a35e85e302f6a19222b2f1fe32bcc3cd 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThroughService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThroughService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { strikethroughMark } from 'wax-prosemirror-schema';
+import strikethroughMark from './schema/strikethroughMark';
 import StrikeThrough from './StrikeThrough';
 
 class StrikeThroughService extends Service {
diff --git a/wax-prosemirror-schema/src/marks/strikethroughMark.js b/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/schema/strikethroughMark.js
similarity index 89%
rename from wax-prosemirror-schema/src/marks/strikethroughMark.js
rename to wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/schema/strikethroughMark.js
index 0f77448935135503030acec2e74f662cd59e572c..18aa35bbc486c8903eab8231a4377ea14c14d988 100644
--- a/wax-prosemirror-schema/src/marks/strikethroughMark.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/schema/strikethroughMark.js
@@ -1,4 +1,4 @@
-const strikethrough = {
+const strikethroughMark = {
   attrs: {
     class: { default: 'strikethrough' },
     style: { default: 'text-decoration:line-through' },
@@ -23,4 +23,4 @@ const strikethrough = {
   },
 };
 
-export default strikethrough;
+export default strikethroughMark;
diff --git a/wax-prosemirror-services/src/InlineAnnotations/StrongService/StrongService.js b/wax-prosemirror-services/src/InlineAnnotations/StrongService/StrongService.js
index 11ba9ec3b023fbf3bd5f6395d6e7fd86c3284a10..3f8a7d9416ecb8d872c5474c9197d372614afbd4 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/StrongService/StrongService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/StrongService/StrongService.js
@@ -1,6 +1,6 @@
 import { Service } from 'wax-prosemirror-core';
 import { toggleMark } from 'prosemirror-commands';
-import { strongMark } from 'wax-prosemirror-schema';
+import strongMark from './schema/strongMark';
 import Strong from './Strong';
 import './strong.css';
 
diff --git a/wax-prosemirror-schema/src/marks/strongMark.js b/wax-prosemirror-services/src/InlineAnnotations/StrongService/schema/strongMark.js
similarity index 90%
rename from wax-prosemirror-schema/src/marks/strongMark.js
rename to wax-prosemirror-services/src/InlineAnnotations/StrongService/schema/strongMark.js
index e1fc8ea10cb4d8796a9a275513869770ef9bb524..1f7a64ffcdb1372526b478f14e2c8854d1e235c9 100644
--- a/wax-prosemirror-schema/src/marks/strongMark.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/StrongService/schema/strongMark.js
@@ -1,4 +1,4 @@
-const strong = {
+const strongMark = {
   parseDOM: [
     { tag: 'strong' },
     // This works around a Google Docs misbehavior where
@@ -15,4 +15,4 @@ const strong = {
   },
 };
 
-export default strong;
+export default strongMark;
diff --git a/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/SubscriptService.js b/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/SubscriptService.js
index f8496c1f4676515b1b5b00bbacfab6ab9bed194b..27a600424a61703bb9940b35ded61a96c0ab92f7 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/SubscriptService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/SubscriptService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { subscriptMark } from 'wax-prosemirror-schema';
+import subscriptMark from './schema/subscriptMark';
 import Subscript from './Subscript';
 import './subscript.css';
 
diff --git a/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/schema/subscriptMark.js b/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/schema/subscriptMark.js
new file mode 100644
index 0000000000000000000000000000000000000000..675fb57129bec6c083caadfe14a2dfcceeca1288
--- /dev/null
+++ b/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/schema/subscriptMark.js
@@ -0,0 +1,10 @@
+const subscriptMark = {
+  excludes: 'superscript',
+  parseDOM: [{ tag: 'sub' }, { style: 'vertical-align=sub' }],
+  toDOM(hook, next) {
+    hook.value = ['sub'];
+    next();
+  },
+};
+
+export default subscriptMark;
diff --git a/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/SuperscriptService.js b/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/SuperscriptService.js
index 6d6637efb87d8baa877b5c0bc1bc0cd2ebb99ae9..462e702adb93950898c6a65ed81958294ca4292b 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/SuperscriptService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/SuperscriptService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { superscriptMark } from 'wax-prosemirror-schema';
+import superscriptMark from './schema/superscriptMark';
 import Superscript from './Superscript';
 import './superscript.css';
 
diff --git a/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/schema/superscriptMark.js b/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/schema/superscriptMark.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed53294644e410b1f4fbbfb2c2642f4f39c1fe57
--- /dev/null
+++ b/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/schema/superscriptMark.js
@@ -0,0 +1,10 @@
+const superscriptMark = {
+  excludes: 'subscript',
+  parseDOM: [{ tag: 'sup' }, { style: 'vertical-align=super' }],
+  toDOM: (hook, next) => {
+    hook.value = ['sup'];
+    next();
+  },
+};
+
+export default superscriptMark;
diff --git a/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/UnderlineService.js b/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/UnderlineService.js
index d9ca47959fd208660ee137fc1d383d7aabfba3f8..b175116ae141817dd205d1f6bdaf3baa45ed802f 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/UnderlineService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/UnderlineService.js
@@ -1,6 +1,6 @@
 import { Service } from 'wax-prosemirror-core';
 import { toggleMark } from 'prosemirror-commands';
-import { underlineMark } from 'wax-prosemirror-schema';
+import underlineMark from './schema/underlineMark';
 import Underline from './Underline';
 
 class UnderlineService extends Service {
diff --git a/wax-prosemirror-schema/src/marks/underlineMark.js b/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/schema/underlineMark.js
similarity index 73%
rename from wax-prosemirror-schema/src/marks/underlineMark.js
rename to wax-prosemirror-services/src/InlineAnnotations/UnderlineService/schema/underlineMark.js
index 3e4a135686d4a47b03d9d88ac3c97d74e2c1104e..3c06aff03fabde2f83c1f4672c44d6e2e75e2cf7 100644
--- a/wax-prosemirror-schema/src/marks/underlineMark.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/schema/underlineMark.js
@@ -1,4 +1,4 @@
-const underline = {
+const underlineMark = {
   parseDOM: [{ tag: 'u' }],
   toDOM: (hook, next) => {
     // eslint-disable-next-line no-param-reassign
@@ -7,4 +7,4 @@ const underline = {
   },
 };
 
-export default underline;
+export default underlineMark;
diff --git a/wax-prosemirror-services/src/LinkService/LinkService.js b/wax-prosemirror-services/src/LinkService/LinkService.js
index 8701739c48eb0a657b080e2844542828827f01f5..4a64c1779d9621a64ef7d6b98860080a4739a355 100644
--- a/wax-prosemirror-services/src/LinkService/LinkService.js
+++ b/wax-prosemirror-services/src/LinkService/LinkService.js
@@ -1,6 +1,6 @@
 import { Service } from 'wax-prosemirror-core';
 import { LinkComponent } from 'wax-prosemirror-components';
-import { linkMark } from 'wax-prosemirror-schema';
+import linkMark from './schema/linkMark';
 import LinkTool from './LinkTool';
 import linkRule from './LinkInputRule';
 
diff --git a/wax-prosemirror-schema/src/marks/linkMark.js b/wax-prosemirror-services/src/LinkService/schema/linkMark.js
similarity index 94%
rename from wax-prosemirror-schema/src/marks/linkMark.js
rename to wax-prosemirror-services/src/LinkService/schema/linkMark.js
index 291fe66716ec95ac259d91ebf9a090d7e9dcf7ee..96323befad5195b8792cf60c2f46567083f9b660 100644
--- a/wax-prosemirror-schema/src/marks/linkMark.js
+++ b/wax-prosemirror-services/src/LinkService/schema/linkMark.js
@@ -1,4 +1,4 @@
-const link = {
+const linkMark = {
   attrs: {
     href: { default: null },
     rel: { default: '' },
@@ -29,4 +29,4 @@ const link = {
   },
 };
 
-export default link;
+export default linkMark;
diff --git a/wax-prosemirror-services/src/ListsService/BulletListService/BulletListService.js b/wax-prosemirror-services/src/ListsService/BulletListService/BulletListService.js
index a7f0b906db9cec0345b60bbbb2b7a89562c257cd..5c1c9e4f37bd27e402ec846883cdf9c78a73f2f2 100644
--- a/wax-prosemirror-services/src/ListsService/BulletListService/BulletListService.js
+++ b/wax-prosemirror-services/src/ListsService/BulletListService/BulletListService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { bulletListNode } from 'wax-prosemirror-schema';
+import bulletListNode from './schema/bulletListNode';
 import BulletList from './BulletList';
 
 class BulletListService extends Service {
diff --git a/wax-prosemirror-schema/src/nodes/bulletListNode.js b/wax-prosemirror-services/src/ListsService/BulletListService/schema/bulletListNode.js
similarity index 91%
rename from wax-prosemirror-schema/src/nodes/bulletListNode.js
rename to wax-prosemirror-services/src/ListsService/BulletListService/schema/bulletListNode.js
index 004190914b6c1bce22060c71497a0172592f510f..13b437a268763a549580595ba7217e386b5e9708 100644
--- a/wax-prosemirror-schema/src/nodes/bulletListNode.js
+++ b/wax-prosemirror-services/src/ListsService/BulletListService/schema/bulletListNode.js
@@ -1,6 +1,6 @@
 import { SchemaHelpers } from 'wax-prosemirror-core';
 
-const bulletlist = {
+const bulletListNode = {
   group: 'block',
   content: 'list_item+',
   attrs: {
@@ -27,4 +27,4 @@ const bulletlist = {
   },
 };
 
-export default bulletlist;
+export default bulletListNode;
diff --git a/wax-prosemirror-services/src/ListsService/ListItemService/ListItemService.js b/wax-prosemirror-services/src/ListsService/ListItemService/ListItemService.js
index 973b7508605e34721b1facc8769ecccbe3c81ba5..3ea0b7594fec69780b776e6ce5ea49ce3b140ff4 100644
--- a/wax-prosemirror-services/src/ListsService/ListItemService/ListItemService.js
+++ b/wax-prosemirror-services/src/ListsService/ListItemService/ListItemService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { listItemNode } from 'wax-prosemirror-schema';
+import listItemNode from './schema/listItemNode';
 
 class ListItemService extends Service {
   register() {
diff --git a/wax-prosemirror-schema/src/nodes/listItemNode.js b/wax-prosemirror-services/src/ListsService/ListItemService/schema/listItemNode.js
similarity index 92%
rename from wax-prosemirror-schema/src/nodes/listItemNode.js
rename to wax-prosemirror-services/src/ListsService/ListItemService/schema/listItemNode.js
index af393fd802ace098dd651de2bd630a8982d25772..fefea9264c154fb58b1ab8cef1d2a19e2ec913b4 100644
--- a/wax-prosemirror-schema/src/nodes/listItemNode.js
+++ b/wax-prosemirror-services/src/ListsService/ListItemService/schema/listItemNode.js
@@ -1,7 +1,7 @@
 /* eslint-disable camelcase */
 import { SchemaHelpers } from 'wax-prosemirror-core';
 
-const list_item = {
+const listItemNode = {
   content: 'paragraph block*',
   attrs: {
     track: { default: [] },
@@ -28,4 +28,4 @@ const list_item = {
   defining: true,
 };
 
-export default list_item;
+export default listItemNode;
diff --git a/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedListService.js b/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedListService.js
index 1d519e9efe6ede9538bf3efea770d6b78e6cd87c..70b64715a99932588c595239e9a0379f88388a47 100644
--- a/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedListService.js
+++ b/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedListService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { orderedListNode } from 'wax-prosemirror-schema';
+import orderedListNode from './schema/orderedListNode';
 import OrderedList from './OrderedList';
 
 class OrderedListService extends Service {
diff --git a/wax-prosemirror-schema/src/nodes/orderedListNode.js b/wax-prosemirror-services/src/ListsService/OrderedListService/schema/orderedListNode.js
similarity index 93%
rename from wax-prosemirror-schema/src/nodes/orderedListNode.js
rename to wax-prosemirror-services/src/ListsService/OrderedListService/schema/orderedListNode.js
index b693d7aa55712e7f8d6ff4be1eaee85b6213bc87..e7cb66d50599df713c58182f3550a5955a45e5ca 100644
--- a/wax-prosemirror-schema/src/nodes/orderedListNode.js
+++ b/wax-prosemirror-services/src/ListsService/OrderedListService/schema/orderedListNode.js
@@ -1,6 +1,6 @@
 import { SchemaHelpers } from 'wax-prosemirror-core';
 
-const orderedlist = {
+const orderedListNode = {
   group: 'block',
   content: 'list_item+',
   attrs: {
@@ -34,4 +34,4 @@ const orderedlist = {
   },
 };
 
-export default orderedlist;
+export default orderedListNode;
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/MathService/MathService.js b/wax-prosemirror-services/src/MathService/MathService.js
index 5e5e9da0139025dd5184b8597340bf44caf4f96c..4a753c133e49e5dc5898d55dba1b215985be2965 100644
--- a/wax-prosemirror-services/src/MathService/MathService.js
+++ b/wax-prosemirror-services/src/MathService/MathService.js
@@ -1,9 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import {
-  mathDisplayNode,
-  mathInlineNode,
-  mathSelectMark,
-} from 'wax-prosemirror-schema';
+import { mathDisplayNode, mathInlineNode, mathSelectMark } from './schema';
 import mathPlugin from './plugins/math-plugin';
 import mathSelectPlugin from './plugins/math-select';
 import inlineInputRule from './InlineInputRule';
diff --git a/wax-prosemirror-services/src/MathService/schema/index.js b/wax-prosemirror-services/src/MathService/schema/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..d9a991a5436a7ef68ef75624aac276af7c060f00
--- /dev/null
+++ b/wax-prosemirror-services/src/MathService/schema/index.js
@@ -0,0 +1,3 @@
+export { default as mathInlineNode } from './mathInlineNode';
+export { default as mathDisplayNode } from './mathDisplayNode';
+export { default as mathSelectMark } from './mathSelectMark';
diff --git a/wax-prosemirror-schema/src/nodes/mathDisplayNode.js b/wax-prosemirror-services/src/MathService/schema/mathDisplayNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/mathDisplayNode.js
rename to wax-prosemirror-services/src/MathService/schema/mathDisplayNode.js
diff --git a/wax-prosemirror-schema/src/nodes/mathInlineNode.js b/wax-prosemirror-services/src/MathService/schema/mathInlineNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/mathInlineNode.js
rename to wax-prosemirror-services/src/MathService/schema/mathInlineNode.js
diff --git a/wax-prosemirror-schema/src/marks/mathSelectMark.js b/wax-prosemirror-services/src/MathService/schema/mathSelectMark.js
similarity index 100%
rename from wax-prosemirror-schema/src/marks/mathSelectMark.js
rename to wax-prosemirror-services/src/MathService/schema/mathSelectMark.js
diff --git a/wax-prosemirror-services/src/NoteService/NoteService.js b/wax-prosemirror-services/src/NoteService/NoteService.js
index 02448a2ccaf4a448860c05fd4aeaf03c90ef1723..597dbb17bdbd1381e0b443658c380564f62a51bf 100644
--- a/wax-prosemirror-services/src/NoteService/NoteService.js
+++ b/wax-prosemirror-services/src/NoteService/NoteService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { footNoteNode } from 'wax-prosemirror-schema';
+import footNoteNode from './schema/footNoteNode';
 import Note from './Note';
 import NoteComponent from './NoteComponent';
 import './note.css';
diff --git a/wax-prosemirror-schema/src/nodes/footNoteNode.js b/wax-prosemirror-services/src/NoteService/schema/footNoteNode.js
similarity index 86%
rename from wax-prosemirror-schema/src/nodes/footNoteNode.js
rename to wax-prosemirror-services/src/NoteService/schema/footNoteNode.js
index c90c48dc6a8005206de1e3078159e87eb11705ec..a4ccd9b41b9ac4398eee2dcfd49d7014983e78d1 100644
--- a/wax-prosemirror-schema/src/nodes/footNoteNode.js
+++ b/wax-prosemirror-services/src/NoteService/schema/footNoteNode.js
@@ -1,4 +1,4 @@
-const footnote = {
+const footNoteNode = {
   group: 'notes inline',
   content: 'inline*',
   inline: true,
@@ -21,4 +21,4 @@ const footnote = {
   ],
 };
 
-export default footnote;
+export default footNoteNode;
diff --git a/wax-prosemirror-services/src/OENContainersService/OENContainersService.js b/wax-prosemirror-services/src/OENContainersService/OENContainersService.js
index d8f6d16b1c390b387aaa708d924c7d4260db0011..f5498c498b5dcd96a39c8caac98c0c69c065044b 100644
--- a/wax-prosemirror-services/src/OENContainersService/OENContainersService.js
+++ b/wax-prosemirror-services/src/OENContainersService/OENContainersService.js
@@ -1,5 +1,5 @@
 import { Service } from 'wax-prosemirror-core';
-import { OenNodes } from 'wax-prosemirror-schema';
+import OenNodes from './schema';
 import OENContainersTool from './OENContainersTool';
 import OENAsideLongToolCaseStudy from './OENAsideLongToolCaseStudy';
 import OENAsideLongToolBiography from './OENAsideLongToolBiography';
diff --git a/wax-prosemirror-schema/src/nodes/oenNodes/OenAsideNode.js b/wax-prosemirror-services/src/OENContainersService/schema/OenAsideNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/oenNodes/OenAsideNode.js
rename to wax-prosemirror-services/src/OENContainersService/schema/OenAsideNode.js
diff --git a/wax-prosemirror-schema/src/nodes/oenNodes/OenContainerNode.js b/wax-prosemirror-services/src/OENContainersService/schema/OenContainerNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/oenNodes/OenContainerNode.js
rename to wax-prosemirror-services/src/OENContainersService/schema/OenContainerNode.js
diff --git a/wax-prosemirror-schema/src/nodes/oenNodes/OenSectionNode.js b/wax-prosemirror-services/src/OENContainersService/schema/OenSectionNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/oenNodes/OenSectionNode.js
rename to wax-prosemirror-services/src/OENContainersService/schema/OenSectionNode.js
diff --git a/wax-prosemirror-schema/src/nodes/oenNodes/index.js b/wax-prosemirror-services/src/OENContainersService/schema/index.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/oenNodes/index.js
rename to wax-prosemirror-services/src/OENContainersService/schema/index.js
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-schema/src/nodes/extractPoetryNode.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/schema/extractPoetryNode.js
similarity index 88%
rename from wax-prosemirror-schema/src/nodes/extractPoetryNode.js
rename to wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/schema/extractPoetryNode.js
index 55228cd55cabdea63738536da8e6abeda3893ead..aaa69508d89469563e38c227e959bf7be2e9635b 100644
--- a/wax-prosemirror-schema/src/nodes/extractPoetryNode.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/schema/extractPoetryNode.js
@@ -1,4 +1,4 @@
-const extractPoetry = {
+const extractPoetryNode = {
   content: 'inline*',
   group: 'block',
   priority: 0,
@@ -24,4 +24,4 @@ const extractPoetry = {
   },
 };
 
-export default extractPoetry;
+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;
diff --git a/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js b/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js
index 96665e883643269e352187c888681fcdb1c9ea30..6f08f53b483e3f78810e5890000915819889bc46 100644
--- a/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js
+++ b/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js
@@ -1,5 +1,6 @@
 import { Service } from 'wax-prosemirror-core';
-import { trackChangesMarks, trackChangesNodes } from 'wax-prosemirror-schema';
+import trackChangesNodes from './schema/trackChangesNodes';
+import trackChangesMarks from './schema/trackChangesMarks';
 import TrackChangePlugin from './plugins/TrackChangePlugin';
 import HideShowPlugin from './plugins/HideShowPlugin';
 import TrackChangeServices from './index';
diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/deletionMark.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesMarks/deletionMark.js
similarity index 100%
rename from wax-prosemirror-schema/src/marks/trackChangesMarks/deletionMark.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesMarks/deletionMark.js
diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesMarks/formatChangeMark.js
similarity index 100%
rename from wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesMarks/formatChangeMark.js
diff --git a/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesMarks/index.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesMarks/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..b25a87e8b58b6b01e8752e72b68439946337e26b
--- /dev/null
+++ b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesMarks/index.js
@@ -0,0 +1,9 @@
+import insertionMark from './insertionMark';
+import deletionMark from './deletionMark';
+import formatChangeMark from './formatChangeMark';
+
+export default {
+  format_change: formatChangeMark,
+  insertion: insertionMark,
+  deletion: deletionMark,
+};
diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/insertionMark.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesMarks/insertionMark.js
similarity index 100%
rename from wax-prosemirror-schema/src/marks/trackChangesMarks/insertionMark.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesMarks/insertionMark.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/authorTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/authorTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/bulletListTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/bulletListTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/bulletListTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/bulletListTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/customBlockTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/customBlockTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/customBlockTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/customBlockTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphPoetryTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/epigraphPoetryTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphPoetryTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/epigraphPoetryTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphProseTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/epigraphProseTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphProseTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/epigraphProseTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractPoetryTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/extractPoetryTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/extractPoetryTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/extractPoetryTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractProseTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/extractProseTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/extractProseTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/extractProseTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/headingTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/headingTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/headingTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/headingTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/imageTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/imageTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/imageTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/imageTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/index.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/index.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/index.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/index.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/listItemTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/listItemTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/listItemTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/listItemTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/orderedListTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/orderedListTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/orderedListTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/orderedListTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/paragraphContTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/paragraphContTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/paragraphContTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/paragraphContTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/sourceNoteTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/sourceNoteTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/sourceNoteTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/sourceNoteTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/subTitleTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/subTitleTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/subTitleTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/subTitleTrackNode.js
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/titleTrackNode.js b/wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/titleTrackNode.js
similarity index 100%
rename from wax-prosemirror-schema/src/nodes/trackChangesNodes/titleTrackNode.js
rename to wax-prosemirror-services/src/TrackChangeService/schema/trackChangesNodes/titleTrackNode.js