diff --git a/editors/demo/config-overrides.js b/editors/demo/config-overrides.js
index 65649eb40b24b3f3a3194472bc2bb26eccc256f2..da69381446be659fddff43c4ae77a2cd6f6084a5 100644
--- a/editors/demo/config-overrides.js
+++ b/editors/demo/config-overrides.js
@@ -23,10 +23,6 @@ module.exports = function override(config, env) {
         __dirname,
         '../../wax-prosemirror-schema/index',
       ),
-      'wax-prosemirror-utilities': path.resolve(
-        __dirname,
-        '../../wax-prosemirror-utilities/index',
-      ),
     },
   };
   config.module = {
diff --git a/editors/demo/src/Editoria/config/config.js b/editors/demo/src/Editoria/config/config.js
index d1b3bd87ccf373e643c66b70692d64da77cfdbd0..3a8e29965a5aebaa601be2f6808f328594646ccc 100644
--- a/editors/demo/src/Editoria/config/config.js
+++ b/editors/demo/src/Editoria/config/config.js
@@ -45,7 +45,7 @@ import {
   CustomTagService,
 } from 'wax-prosemirror-services';
 
-import { EditoriaSchema } from 'wax-prosemirror-utilities';
+import { EditoriaSchema } from 'wax-prosemirror-core';
 
 import invisibles, {
   space,
diff --git a/editors/demo/src/Editoria/config/configMobile.js b/editors/demo/src/Editoria/config/configMobile.js
index 64ff3e489af4c88cddfcf62c5811ce434b150b20..af8c777cc01a94c47c8389740141f2af45c0a4b3 100644
--- a/editors/demo/src/Editoria/config/configMobile.js
+++ b/editors/demo/src/Editoria/config/configMobile.js
@@ -36,7 +36,7 @@ import {
   CustomTagService,
 } from 'wax-prosemirror-services';
 
-import { DefaultSchema } from 'wax-prosemirror-utilities';
+import { DefaultSchema } from 'wax-prosemirror-core';
 
 import invisibles, {
   space,
diff --git a/editors/demo/src/Editoria/layout/EditoriaLayout.js b/editors/demo/src/Editoria/layout/EditoriaLayout.js
index 6eea3a0c1225c8039cae0ab412ebdd3ee6bb1d65..1842efbce29d0c48f46b65c1a4aed54935eb91fd 100644
--- a/editors/demo/src/Editoria/layout/EditoriaLayout.js
+++ b/editors/demo/src/Editoria/layout/EditoriaLayout.js
@@ -1,8 +1,11 @@
 import React, { useContext, useState, useCallback, useEffect } from 'react';
 import styled, { css, ThemeProvider } from 'styled-components';
 import PanelGroup from 'react-panelgroup';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
-import { WaxContext, ComponentPlugin } from 'wax-prosemirror-core';
+import {
+  WaxContext,
+  ComponentPlugin,
+  DocumentHelpers,
+} from 'wax-prosemirror-core';
 import { grid, th } from '@pubsweet/ui-toolkit';
 import { cokoTheme } from '../theme';
 import EditorElements from './EditorElements';
diff --git a/editors/demo/src/Editoria/layout/EditoriaMobileLayout.js b/editors/demo/src/Editoria/layout/EditoriaMobileLayout.js
index 7cda592c3793204aa1a4972139afb46432b839e6..4cbc98f4b13f40ddb1b5f5eb9d361b1dbc970c2f 100644
--- a/editors/demo/src/Editoria/layout/EditoriaMobileLayout.js
+++ b/editors/demo/src/Editoria/layout/EditoriaMobileLayout.js
@@ -1,8 +1,11 @@
 import React, { useContext, useState, useCallback, useEffect } from 'react';
 import styled, { css, ThemeProvider } from 'styled-components';
 import PanelGroup from 'react-panelgroup';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
-import { WaxContext, ComponentPlugin } from 'wax-prosemirror-core';
+import {
+  WaxContext,
+  ComponentPlugin,
+  DocumentHelpers,
+} from 'wax-prosemirror-core';
 
 import { grid, th } from '@pubsweet/ui-toolkit';
 import { cokoTheme } from '../theme';
diff --git a/editors/demo/src/HHMI/HHMI.js b/editors/demo/src/HHMI/HHMI.js
index 2b562b31325db1591767e853b2675f6131a2025d..a232017d224a2e7f00137867d29435d4ec89bb56 100644
--- a/editors/demo/src/HHMI/HHMI.js
+++ b/editors/demo/src/HHMI/HHMI.js
@@ -170,7 +170,7 @@ const Hhmi = () => {
         value={content}
         readonly={readOnly}
         layout={HhmiLayout}
-        // onChange={source => console.log(source)}
+        onChange={source => console.log(source)}
       />
     </>
   );
diff --git a/editors/demo/src/HHMI/config/config.js b/editors/demo/src/HHMI/config/config.js
index 738b2002d1f5fc013282eb751f113bcec7a02093..7b6e1d98e2dc8136f820e0a43b05d727353dc45d 100644
--- a/editors/demo/src/HHMI/config/config.js
+++ b/editors/demo/src/HHMI/config/config.js
@@ -32,7 +32,7 @@ import {
   MultipleDropDownToolGroupService,
 } from 'wax-prosemirror-services';
 
-import { DefaultSchema } from 'wax-prosemirror-utilities';
+import { DefaultSchema } from 'wax-prosemirror-core';
 import invisibles, { hardBreak } from '@guardian/prosemirror-invisibles';
 
 export default {
diff --git a/editors/demo/src/NCBI/config/configEnter.js b/editors/demo/src/NCBI/config/configEnter.js
index 2bf14ef69232d33be7016a124206222d0a894957..5b9ae803c71e27f6b3aa2105290897cd264d0837 100644
--- a/editors/demo/src/NCBI/config/configEnter.js
+++ b/editors/demo/src/NCBI/config/configEnter.js
@@ -1,4 +1,4 @@
-import { DefaultSchema } from 'wax-prosemirror-utilities';
+import { DefaultSchema } from 'wax-prosemirror-core';
 import {
   InlineAnnotationsService,
   AnnotationToolGroupService,
diff --git a/editors/demo/src/NCBI/config/configMini.js b/editors/demo/src/NCBI/config/configMini.js
index 7d9fa1e434532a8c7c53953b7c709c3071ee9b8b..fa3b786b475bfae0d7793c6f8bb1950b94bbcbf2 100644
--- a/editors/demo/src/NCBI/config/configMini.js
+++ b/editors/demo/src/NCBI/config/configMini.js
@@ -1,4 +1,4 @@
-import { DefaultSchema } from 'wax-prosemirror-utilities';
+import { DefaultSchema } from 'wax-prosemirror-core';
 import {
   InlineAnnotationsService,
   AnnotationToolGroupService,
diff --git a/editors/demo/src/OEN/config/config.js b/editors/demo/src/OEN/config/config.js
index 251f0010cae155aeb16793c1e8e7db4f0632840c..6133d9c4b5a5189118e06a4fdefb66b7e06b888f 100644
--- a/editors/demo/src/OEN/config/config.js
+++ b/editors/demo/src/OEN/config/config.js
@@ -49,7 +49,7 @@ import {
   OENAsideToolGroupService,
 } from 'wax-prosemirror-services';
 
-import { EditoriaSchema } from 'wax-prosemirror-utilities';
+import { EditoriaSchema } from 'wax-prosemirror-core';
 
 import invisibles, {
   space,
diff --git a/editors/demo/src/OEN/layout/OenLayout.js b/editors/demo/src/OEN/layout/OenLayout.js
index 10533097ad3b3ede2a739daf5a0e2b928ca07510..c2101786a0c20991680f1333e8cf9e9c5691527e 100644
--- a/editors/demo/src/OEN/layout/OenLayout.js
+++ b/editors/demo/src/OEN/layout/OenLayout.js
@@ -1,8 +1,11 @@
 import React, { useContext, useState, useCallback, useEffect } from 'react';
 import styled, { css, ThemeProvider } from 'styled-components';
 import PanelGroup from 'react-panelgroup';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
-import { WaxContext, ComponentPlugin } from 'wax-prosemirror-core';
+import {
+  WaxContext,
+  ComponentPlugin,
+  DocumentHelpers,
+} from 'wax-prosemirror-core';
 import { grid, th } from '@pubsweet/ui-toolkit';
 import { cokoTheme } from '../theme';
 import EditorElements from './EditorElements';
diff --git a/lerna-debug.log b/lerna-debug.log
index 1dd842896fd064efbcd70e743dbeff1f3d7669ae..de5f6878a0e4b9ae1b36cf7ad7e39aaa87ffe492 100644
--- a/lerna-debug.log
+++ b/lerna-debug.log
@@ -1,64 +1,23 @@
-0 silly input [ 'build' ]
+0 silly input [ 'clean' ]
 1 silly flags {
 1 silly flags   _: [ 'run' ],
 1 silly flags   'reject-cycles': false,
 1 silly flags   rejectCycles: false,
-1 silly flags   script: 'build',
+1 silly flags   parallel: true,
+1 silly flags   script: 'clean',
 1 silly flags   args: []
 1 silly flags }
 2 verbose rootPath /home/chris/workspace/wax-prosemirror
 3 info version 2.11.0
 4 silly existsSync /home/chris/workspace/wax-prosemirror/VERSION
-5 silly initialize attempt
-6 warn ECYCLE Encountered a cycle in the dependency graph.This may cause instability! Packages in cycle are: "wax-prosemirror-core", "wax-prosemirror-components", "wax-prosemirror-plugins", "wax-prosemirror-services"
-7 silly packages [ 'wax-prosemirror-core' ]
-8 silly initialize success
-9 silly execute attempt
-10 silly runScriptInDir build [] wax-prosemirror-utilities
-11 silly getExecOpts {
-11 silly getExecOpts   cwd: '/home/chris/workspace/wax-prosemirror/wax-prosemirror-utilities'
-11 silly getExecOpts }
-12 silly runScriptInDir build [] wax-prosemirror-schema
-13 silly getExecOpts { cwd: '/home/chris/workspace/wax-prosemirror/wax-prosemirror-schema' }
-14 silly runScriptInDir build [] wax-prosemirror-core
-15 silly getExecOpts { cwd: '/home/chris/workspace/wax-prosemirror/wax-prosemirror-core' }
-16 silly runScriptInDir build [] wax-prosemirror-components
-17 silly getExecOpts {
-17 silly getExecOpts   cwd: '/home/chris/workspace/wax-prosemirror/wax-prosemirror-components'
-17 silly getExecOpts }
-18 silly runScriptInDir build [] wax-prosemirror-plugins
-19 silly getExecOpts {
-19 silly getExecOpts   cwd: '/home/chris/workspace/wax-prosemirror/wax-prosemirror-plugins'
-19 silly getExecOpts }
-20 silly runScriptInDir build [] wax-prosemirror-services
-21 silly getExecOpts {
-21 silly getExecOpts   cwd: '/home/chris/workspace/wax-prosemirror/wax-prosemirror-services'
-21 silly getExecOpts }
-22 error build Errored while running script in 'wax-prosemirror-services'
-23 error execute callback with error
-24 error Error: Command failed: yarn run build
-24 error loaded rollup.config.js with warnings
-24 error (!) Unused external imports
-24 error terser imported from external module 'rollup-plugin-terser' but never used
-24 error
-24 error index.js → dist/index.js...
-24 error Browserslist: caniuse-lite is outdated. Please run:
-24 error npx browserslist@latest --update-db
-24 error [!] Error: Could not resolve './highlightStyles' from src/CodeBlockService/CodeBlockService.js
-24 error Error: Could not resolve './highlightStyles' from src/CodeBlockService/CodeBlockService.js
-24 error     at error (/home/chris/workspace/wax-prosemirror/node_modules/rollup/dist/shared/rollup.js:5171:30)
-24 error     at ModuleLoader.handleResolveId (/home/chris/workspace/wax-prosemirror/node_modules/rollup/dist/shared/rollup.js:17864:24)
-24 error     at /home/chris/workspace/wax-prosemirror/node_modules/rollup/dist/shared/rollup.js:17856:22
-24 error     at async Promise.all (index 5)
-24 error     at ModuleLoader.fetchStaticDependencies (/home/chris/workspace/wax-prosemirror/node_modules/rollup/dist/shared/rollup.js:17854:34)
-24 error     at async Promise.all (index 0)
-24 error     at ModuleLoader.fetchModule (/home/chris/workspace/wax-prosemirror/node_modules/rollup/dist/shared/rollup.js:17831:9)
-24 error     at async Promise.all (index 20)
-24 error     at ModuleLoader.fetchStaticDependencies (/home/chris/workspace/wax-prosemirror/node_modules/rollup/dist/shared/rollup.js:17854:34)
-24 error     at async Promise.all (index 0)
-24 error
-24 error error Command failed with exit code 1.
-24 error $ BABEL_ENV=production rollup -c
-24 error info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
-24 error
-24 error     at /home/chris/workspace/wax-prosemirror/node_modules/lerna/node_modules/execa/index.js:236:11
+5 error EPACKAGES Errored while collecting packages and package graph
+6 error JSONError: Unexpected token } in JSON at position 1160 while parsing near '...hema": "^0.5.13",  },  "peerDependenci...' in wax-prosemirror-services/package.json
+6 error     at module.exports (/home/chris/workspace/wax-prosemirror/node_modules/load-json-file/node_modules/parse-json/index.js:26:19)
+6 error     at parse (/home/chris/workspace/wax-prosemirror/node_modules/load-json-file/index.js:8:29)
+6 error     at Function.module.exports.sync (/home/chris/workspace/wax-prosemirror/node_modules/load-json-file/index.js:11:29)
+6 error     at Function.module.exports.sync (/home/chris/workspace/wax-prosemirror/node_modules/read-pkg/index.js:40:25)
+6 error     at /home/chris/workspace/wax-prosemirror/node_modules/lerna/lib/PackageUtilities.js:138:47
+6 error     at Array.forEach (<anonymous>)
+6 error     at /home/chris/workspace/wax-prosemirror/node_modules/lerna/lib/PackageUtilities.js:132:86
+6 error     at Array.forEach (<anonymous>)
+6 error     at Function.getPackages (/home/chris/workspace/wax-prosemirror/node_modules/lerna/lib/PackageUtilities.js:131:22)
diff --git a/package.json b/package.json
index 3010f538a0a9297a574d143a310b257bb9fa0037..c781e23ab31b7db95e4cc6fab33eeca4d0815469 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,6 @@
     "wax-prosemirror-core",
     "wax-prosemirror-schema",
     "wax-prosemirror-components",
-    "wax-prosemirror-utilities",
     "wax-prosemirror-plugins",
     "wax-prosemirror-services",
     "editors/*"
diff --git a/wax-prosemirror-components/package.json b/wax-prosemirror-components/package.json
index 64beeacaa7824ae2764279b19fa7ee580fa9697d..fe813ee2e58d6c4737d16a9200ea9da780062dfd 100644
--- a/wax-prosemirror-components/package.json
+++ b/wax-prosemirror-components/package.json
@@ -26,8 +26,7 @@
     "styled-components": "^5.3.0",
     "use-deep-compare-effect": "^1.3.1",
     "uuid": "^7.0.3",
-    "wax-prosemirror-core": "^0.5.13",
-    "wax-prosemirror-utilities": "^0.5.13"
+    "wax-prosemirror-core": "^0.5.13"
   },
   "peerDependencies": {
     "react": "^16.13.1",
diff --git a/wax-prosemirror-components/rollup.config.js b/wax-prosemirror-components/rollup.config.js
index 764ee9b4a4198e7c0d99c64b96359d4f09960ea6..8a3042b510d3f59a25481e6b22763b5e1d0de38e 100644
--- a/wax-prosemirror-components/rollup.config.js
+++ b/wax-prosemirror-components/rollup.config.js
@@ -10,7 +10,7 @@ export default {
     {
       file: 'dist/index.js',
       format: 'cjs',
-      sourcemap: true,
+      sourcemap: false,
     },
   ],
   plugins: [
diff --git a/wax-prosemirror-components/src/components/EditorInfo/CounterInfo/EditorInfoTool.js b/wax-prosemirror-components/src/components/EditorInfo/CounterInfo/EditorInfoTool.js
index 6460d9682a12f7953ec29ff752455a9f0123b319..79212d0eec0c1cda325e62c62fab75527b6f79bf 100644
--- a/wax-prosemirror-components/src/components/EditorInfo/CounterInfo/EditorInfoTool.js
+++ b/wax-prosemirror-components/src/components/EditorInfo/CounterInfo/EditorInfoTool.js
@@ -9,8 +9,7 @@ import React, {
 import styled from 'styled-components';
 import { grid, override } from '@pubsweet/ui-toolkit';
 import { v4 as uuidv4 } from 'uuid';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import MenuButton from '../../../ui/buttons/MenuButton';
 import useOnClickOutside from '../../../helpers/useOnClickOutside';
 
diff --git a/wax-prosemirror-components/src/components/TitleButton.js b/wax-prosemirror-components/src/components/TitleButton.js
index 546255f9f67328681d49cacae81b1b80b0391f23..ef271206f364e75f781e3419d84ec31e58153934 100644
--- a/wax-prosemirror-components/src/components/TitleButton.js
+++ b/wax-prosemirror-components/src/components/TitleButton.js
@@ -1,7 +1,6 @@
 /* eslint react/prop-types: 0 */
 import React, { useContext, useMemo, useEffect } from 'react';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import MenuButton from '../ui/buttons/MenuButton';
 
 const TitleButton = ({ view = {}, item }) => {
diff --git a/wax-prosemirror-components/src/components/comments/CommentBubbleComponent.js b/wax-prosemirror-components/src/components/comments/CommentBubbleComponent.js
index bb0c95d1331ce0ccc25724d04badd4fa6ed219ba..d434951f10cc766a830b60e431a976cb4747df27 100644
--- a/wax-prosemirror-components/src/components/comments/CommentBubbleComponent.js
+++ b/wax-prosemirror-components/src/components/comments/CommentBubbleComponent.js
@@ -1,7 +1,6 @@
 /* eslint react/prop-types: 0 */
 import React, { useLayoutEffect, useContext } from 'react';
-import { Commands, DocumentHelpers } from 'wax-prosemirror-utilities';
-import { WaxContext } from 'wax-prosemirror-core';
+import { WaxContext, Commands, DocumentHelpers } from 'wax-prosemirror-core';
 import CommentBubble from '../../ui/comments/CommentBubble';
 
 const CommentBubbleComponent = ({
diff --git a/wax-prosemirror-components/src/components/comments/ConnectedComment.js b/wax-prosemirror-components/src/components/comments/ConnectedComment.js
index afa1840320c1c7737abff65212d82605c78e1104..2d8174aa0f6c6f79a476bca99e6d258a4b10da0b 100644
--- a/wax-prosemirror-components/src/components/comments/ConnectedComment.js
+++ b/wax-prosemirror-components/src/components/comments/ConnectedComment.js
@@ -3,8 +3,7 @@ import React, { useContext, useMemo, useState, useEffect } from 'react';
 import { TextSelection } from 'prosemirror-state';
 import { last, maxBy } from 'lodash';
 import styled from 'styled-components';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
-import { WaxContext } from 'wax-prosemirror-core';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import CommentBox from '../../ui/comments/CommentBox';
 
 const ConnectedCommentStyled = styled.div`
diff --git a/wax-prosemirror-components/src/components/findAndReplace/ExpandedFindAndReplaceComponent.js b/wax-prosemirror-components/src/components/findAndReplace/ExpandedFindAndReplaceComponent.js
index cb908ed4d9a3f740c3c0919cd0e8c0a06d5adcf9..ba02c7dea2cc92fc4939cb2ecd15eac287058ca9 100644
--- a/wax-prosemirror-components/src/components/findAndReplace/ExpandedFindAndReplaceComponent.js
+++ b/wax-prosemirror-components/src/components/findAndReplace/ExpandedFindAndReplaceComponent.js
@@ -1,8 +1,7 @@
 /* eslint react/prop-types: 0 */
 import React, { useState, useRef, useContext, useEffect } from 'react';
 import { each, eachRight } from 'lodash';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import styled from 'styled-components';
 import { grid, th } from '@pubsweet/ui-toolkit';
 import Icon from '../../helpers/Icon';
diff --git a/wax-prosemirror-components/src/components/findAndReplace/helpers.js b/wax-prosemirror-components/src/components/findAndReplace/helpers.js
index 5aee17bcde206c7f092b7115ce79b85c6d5dd19e..8608573616c8382183a1550f6a58fbf212c07ed6 100644
--- a/wax-prosemirror-components/src/components/findAndReplace/helpers.js
+++ b/wax-prosemirror-components/src/components/findAndReplace/helpers.js
@@ -1,5 +1,5 @@
 import { each } from 'lodash';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { DocumentHelpers } from 'wax-prosemirror-core';
 import { TextSelection } from 'prosemirror-state';
 
 const getMatchesByView = (views, searchValue, matchCase) => {
diff --git a/wax-prosemirror-components/src/components/images/ImageUpload.js b/wax-prosemirror-components/src/components/images/ImageUpload.js
index 9371fbd4dad737b6af87674a96f221f05a969fd1..0cde24a0d0a052d5040a9147692468a49a9c48b2 100644
--- a/wax-prosemirror-components/src/components/images/ImageUpload.js
+++ b/wax-prosemirror-components/src/components/images/ImageUpload.js
@@ -1,9 +1,8 @@
 /* eslint react/prop-types: 0 */
 import React, { useContext, useRef, useMemo } from 'react';
-import { WaxContext } from 'wax-prosemirror-core';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import { TextSelection } from 'prosemirror-state';
 import styled from 'styled-components';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
 import MenuButton from '../../ui/buttons/MenuButton';
 import insertImage from './Upload';
 
diff --git a/wax-prosemirror-components/src/components/link/LinkComponent.js b/wax-prosemirror-components/src/components/link/LinkComponent.js
index a5e05f0e1d1861c22eaca9f2afa0ad8f858b6540..d1c126957698d08e4a1df182867aa52cddbe5288 100644
--- a/wax-prosemirror-components/src/components/link/LinkComponent.js
+++ b/wax-prosemirror-components/src/components/link/LinkComponent.js
@@ -2,8 +2,7 @@
 import React, { useRef, useEffect, useState, useContext } from 'react';
 import styled from 'styled-components';
 import { grid, th, override } from '@pubsweet/ui-toolkit';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 
 const Wrapper = styled.div`
   background: #fff;
diff --git a/wax-prosemirror-components/src/components/rightArea/RightArea.js b/wax-prosemirror-components/src/components/rightArea/RightArea.js
index c852b700efd6145cf15e3bf20385b691c78dabc1..3147319c2808ab8f4ec9070fbcf90fd36a0b870a 100644
--- a/wax-prosemirror-components/src/components/rightArea/RightArea.js
+++ b/wax-prosemirror-components/src/components/rightArea/RightArea.js
@@ -3,8 +3,7 @@ import { Mark } from 'prosemirror-model';
 import React, { useContext, useState, useMemo, useCallback } from 'react';
 import useDeepCompareEffect from 'use-deep-compare-effect';
 import { each, uniqBy, sortBy } from 'lodash';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import BoxList from './BoxList';
 
 export default ({ area }) => {
diff --git a/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js b/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js
index 7193c658e82d6c8e1367b4fc67868bf912c94346..9b2ccdde28b4c2dc66b214e29e6ce0779a907d62 100644
--- a/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js
+++ b/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js
@@ -1,8 +1,7 @@
 /* eslint react/prop-types: 0 */
 import React, { useContext, useMemo, useState, useEffect } from 'react';
 import styled from 'styled-components';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
-import { WaxContext } from 'wax-prosemirror-core';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import { last, maxBy } from 'lodash';
 import { TextSelection } from 'prosemirror-state';
 import TrackChangesBox from './TrackChangesBox';
diff --git a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
index 38554a98ff033e35e0473ade81e5b674c5450e22..6706193995a9ddc6ecf23cbea5e50715d2c71a0c 100644
--- a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
+++ b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
@@ -3,9 +3,8 @@
 import React, { useContext, useState } from 'react';
 import styled from 'styled-components';
 import { grid } from '@pubsweet/ui-toolkit';
-import { each, eachRight } from 'lodash';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
-import { WaxContext } from 'wax-prosemirror-core';
+import { each } from 'lodash';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import MenuButton from '../../ui/buttons/MenuButton';
 import Icon from '../../helpers/Icon';
 
diff --git a/wax-prosemirror-core/index.js b/wax-prosemirror-core/index.js
index 87baa280e2c2b9c63879649e67ba05a193f1f46f..292f57b0c09251afcd88de6d3294d19eb64fa043 100644
--- a/wax-prosemirror-core/index.js
+++ b/wax-prosemirror-core/index.js
@@ -1,5 +1,30 @@
-export { default as Service } from './src/Service';
+/* Cotext & ComponentPlugin */
 export { WaxContext, useInjection } from './src/WaxContext';
 export { PortalContext } from './src/PortalContext';
 export { default as ComponentPlugin } from './src/ComponentPlugin';
+
+/* UTILITIES */
+export { default as SchemaHelpers } from './src/utilities/schema/SchemaHelpers';
+export { default as DocumentHelpers } from './src/utilities/document/DocumentHelpers';
+export { default as Commands } from './src/utilities/commands/Commands';
+export { default as DefaultSchema } from './src/utilities/schema/DefaultSchema';
+export { default as EditoriaSchema } from './src/utilities/schema/EditoriaSchema';
+export { default as Middleware } from './src/utilities/lib/Middleware';
+export { default as ToolGroup } from './src/utilities/lib/ToolGroup';
+export { default as Tools } from './src/utilities/lib/Tools';
+
+/* Service Class */
+export { default as Service } from './src/Service';
+
+/* Base Services */
+export { default as LayoutService } from './src/config/defaultServices/LayoutService/LayoutService';
+export { default as PortalService } from './src/config/defaultServices/PortalService/PortalService';
+export { default as MenuService } from './src/config/defaultServices/MenuService/MenuService';
+export { default as OverlayService } from './src/config/defaultServices/OverlayService/OverlayService';
+export { default as RulesService } from './src/config/defaultServices/RulesService/RulesService';
+export { default as SchemaService } from './src/config/defaultServices/SchemaService/SchemaService';
+export { default as ShortCutsService } from './src/config/defaultServices/ShortCutsService/ShortCutsService';
+export { default as QuestionsNodeView } from './src/utilities/lib/helpers/QuestionsNodeView';
+
+/* Editor */
 export { default as Wax } from './src/Wax';
diff --git a/wax-prosemirror-core/package.json b/wax-prosemirror-core/package.json
index ae12905575a416a83e52896f3ef9b6d786b9c96d..0dc7af203154d0741b2157881f4d008c269a1e51 100644
--- a/wax-prosemirror-core/package.json
+++ b/wax-prosemirror-core/package.json
@@ -29,10 +29,10 @@
     "prosemirror-state": "1.3.3",
     "prosemirror-transform": "1.3.4",
     "prosemirror-view": "1.23.7",
+    "prosemirror-schema-list": "^1.1.6",
     "reflect-metadata": "^0.1.13",
     "styled-components": "^5.3.0",
-    "uuid": "^7.0.3",
-    "wax-prosemirror-utilities": "^0.5.13"
+    "uuid": "^7.0.3"
   },
   "devDependencies": {
     "mocha": "^3.4.2",
diff --git a/wax-prosemirror-core/rollup.config.js b/wax-prosemirror-core/rollup.config.js
index 56fdd11466f16d27882dca008db19b7594866745..ed7d01b1c9fd7aebfb88e0c62ef7a257ac227bbd 100644
--- a/wax-prosemirror-core/rollup.config.js
+++ b/wax-prosemirror-core/rollup.config.js
@@ -10,7 +10,7 @@ export default {
     {
       file: 'dist/index.js',
       format: 'cjs',
-      sourcemap: true,
+      sourcemap: false,
     },
   ],
   plugins: [
diff --git a/wax-prosemirror-core/src/Application.js b/wax-prosemirror-core/src/Application.js
index 33d89fade7127e2d947b0524e4f32bfbc06b0997..ef7f4f8a3a5ca5e6dffe6111ff04026cfe808090 100644
--- a/wax-prosemirror-core/src/Application.js
+++ b/wax-prosemirror-core/src/Application.js
@@ -1,5 +1,5 @@
 import { Container } from 'inversify';
-import 'reflect-metadata';
+// import 'reflect-metadata';
 import deepmerge from 'deepmerge';
 import Config from './config/Config';
 import defaultConfig from './config/defaultConfig';
diff --git a/wax-prosemirror-core/src/Wax.js b/wax-prosemirror-core/src/Wax.js
index 97b73c65c58cbe4da758fe5745f69b86393167d3..13c2da41586f73bbd5fc5ad4dc34a06525ee166d 100644
--- a/wax-prosemirror-core/src/Wax.js
+++ b/wax-prosemirror-core/src/Wax.js
@@ -1,7 +1,7 @@
 /* eslint react/prop-types: 0 */
 import React, { useEffect, useState, forwardRef } from 'react';
 import { DOMSerializer } from 'prosemirror-model';
-import { DefaultSchema } from 'wax-prosemirror-utilities';
+import DefaultSchema from './utilities/schema/DefaultSchema';
 import WaxProvider from './WaxContext';
 import PortalProvider from './PortalContext';
 import Application from './Application';
diff --git a/wax-prosemirror-core/src/config/defaultConfig.js b/wax-prosemirror-core/src/config/defaultConfig.js
index 9871d85c86fd400eaa553af519e8b35b1efb9624..8b5f98f721ab61fd2f13294ee4d803b9a4c87463 100644
--- a/wax-prosemirror-core/src/config/defaultConfig.js
+++ b/wax-prosemirror-core/src/config/defaultConfig.js
@@ -1,13 +1,10 @@
-/* eslint-disable import/no-extraneous-dependencies */
-import {
-  SchemaService,
-  MenuService,
-  RulesService,
-  ShortCutsService,
-  LayoutService,
-  OverlayService,
-  PortalService,
-} from 'wax-prosemirror-services';
+import SchemaService from './defaultServices/SchemaService/SchemaService';
+import RulesService from './defaultServices/RulesService/RulesService';
+import ShortCutsService from './defaultServices/ShortCutsService/ShortCutsService';
+import LayoutService from './defaultServices/LayoutService/LayoutService';
+import PortalService from './defaultServices/PortalService/PortalService';
+import MenuService from './defaultServices/MenuService/MenuService';
+import OverlayService from './defaultServices/OverlayService/OverlayService';
 
 export default () => ({
   services: [
diff --git a/wax-prosemirror-services/src/LayoutService/DefaultLayout/DefaultLayout.js b/wax-prosemirror-core/src/config/defaultServices/LayoutService/DefaultLayout/DefaultLayout.js
similarity index 100%
rename from wax-prosemirror-services/src/LayoutService/DefaultLayout/DefaultLayout.js
rename to wax-prosemirror-core/src/config/defaultServices/LayoutService/DefaultLayout/DefaultLayout.js
diff --git a/wax-prosemirror-services/src/LayoutService/Layout.js b/wax-prosemirror-core/src/config/defaultServices/LayoutService/Layout.js
similarity index 100%
rename from wax-prosemirror-services/src/LayoutService/Layout.js
rename to wax-prosemirror-core/src/config/defaultServices/LayoutService/Layout.js
diff --git a/wax-prosemirror-core/src/config/defaultServices/LayoutService/LayoutService.js b/wax-prosemirror-core/src/config/defaultServices/LayoutService/LayoutService.js
new file mode 100644
index 0000000000000000000000000000000000000000..7d6affbbe980db9b671a9fb12423da057a0e3306
--- /dev/null
+++ b/wax-prosemirror-core/src/config/defaultServices/LayoutService/LayoutService.js
@@ -0,0 +1,10 @@
+import { Service } from 'wax-prosemirror-core';
+import Layout from './Layout';
+
+export default class LayoutService extends Service {
+  name = 'LayoutService';
+
+  register() {
+    this.container.bind('Layout').to(Layout).inSingletonScope();
+  }
+}
diff --git a/wax-prosemirror-services/src/LayoutService/components/LayoutFactory.js b/wax-prosemirror-core/src/config/defaultServices/LayoutService/components/LayoutFactory.js
similarity index 100%
rename from wax-prosemirror-services/src/LayoutService/components/LayoutFactory.js
rename to wax-prosemirror-core/src/config/defaultServices/LayoutService/components/LayoutFactory.js
diff --git a/wax-prosemirror-services/src/LayoutService/components/componentPlugin.js b/wax-prosemirror-core/src/config/defaultServices/LayoutService/components/componentPlugin.js
similarity index 100%
rename from wax-prosemirror-services/src/LayoutService/components/componentPlugin.js
rename to wax-prosemirror-core/src/config/defaultServices/LayoutService/components/componentPlugin.js
diff --git a/wax-prosemirror-services/src/MenuService/Menu.js b/wax-prosemirror-core/src/config/defaultServices/MenuService/Menu.js
similarity index 92%
rename from wax-prosemirror-services/src/MenuService/Menu.js
rename to wax-prosemirror-core/src/config/defaultServices/MenuService/Menu.js
index aa4d67a40eaadf9e445147084fad97ecff8f5b32..f838448cc9126cd0bcf88d10b2cdb2c25dbee3b2 100644
--- a/wax-prosemirror-services/src/MenuService/Menu.js
+++ b/wax-prosemirror-core/src/config/defaultServices/MenuService/Menu.js
@@ -1,7 +1,6 @@
 import React, { useMemo, useContext } from 'react';
 import { injectable } from 'inversify';
-import { WaxContext } from 'wax-prosemirror-core';
-import ToolGroup from '../lib/ToolGroup';
+import { WaxContext, ToolGroup } from 'wax-prosemirror-core';
 import MenuWrapper from './MenuWrapper';
 
 @injectable()
diff --git a/wax-prosemirror-services/src/MenuService/MenuCollection.js b/wax-prosemirror-core/src/config/defaultServices/MenuService/MenuCollection.js
similarity index 100%
rename from wax-prosemirror-services/src/MenuService/MenuCollection.js
rename to wax-prosemirror-core/src/config/defaultServices/MenuService/MenuCollection.js
diff --git a/wax-prosemirror-services/src/MenuService/MenuService.js b/wax-prosemirror-core/src/config/defaultServices/MenuService/MenuService.js
similarity index 94%
rename from wax-prosemirror-services/src/MenuService/MenuService.js
rename to wax-prosemirror-core/src/config/defaultServices/MenuService/MenuService.js
index d4a3e8350188444540ce6734a0fe2bbcc1a7ed9e..48f93faa4576d93dcdee9a40d37d01bf1b626cf2 100644
--- a/wax-prosemirror-services/src/MenuService/MenuService.js
+++ b/wax-prosemirror-core/src/config/defaultServices/MenuService/MenuService.js
@@ -1,10 +1,11 @@
+import { Service } from 'wax-prosemirror-core';
 import { isPlainObject, isFunction } from 'lodash';
-import Service from '../Service';
 import Menu from './Menu';
 import MenuCollection from './MenuCollection';
 
 class MenuService extends Service {
   name = 'MenuService';
+
   boot() {
     if (this.app.config.get('config.MenuService') === undefined) return false;
     const { menus } = this.container.get('MenuCollection');
@@ -23,7 +24,7 @@ class MenuService extends Service {
       });
     });
 
-    /*create MenuCollection of Menus */
+    /* create MenuCollection of Menus */
     this.container.bind('MenuCollection').to(MenuCollection).inSingletonScope();
 
     /* create factory of tools */
diff --git a/wax-prosemirror-services/src/MenuService/MenuWrapper.js b/wax-prosemirror-core/src/config/defaultServices/MenuService/MenuWrapper.js
similarity index 100%
rename from wax-prosemirror-services/src/MenuService/MenuWrapper.js
rename to wax-prosemirror-core/src/config/defaultServices/MenuService/MenuWrapper.js
diff --git a/wax-prosemirror-services/src/OverlayService/OverlayComponent.js b/wax-prosemirror-core/src/config/defaultServices/OverlayService/OverlayComponent.js
similarity index 100%
rename from wax-prosemirror-services/src/OverlayService/OverlayComponent.js
rename to wax-prosemirror-core/src/config/defaultServices/OverlayService/OverlayComponent.js
diff --git a/wax-prosemirror-services/src/OverlayService/OverlayService.js b/wax-prosemirror-core/src/config/defaultServices/OverlayService/OverlayService.js
similarity index 90%
rename from wax-prosemirror-services/src/OverlayService/OverlayService.js
rename to wax-prosemirror-core/src/config/defaultServices/OverlayService/OverlayService.js
index 128917f931e1068b0a9e38f906e8dee749a8abfc..02596a84804c993e9017529aed4d24a2ab4b8503 100644
--- a/wax-prosemirror-services/src/OverlayService/OverlayService.js
+++ b/wax-prosemirror-core/src/config/defaultServices/OverlayService/OverlayService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import OverlayComponent from './OverlayComponent';
 
 export default class OverlayService extends Service {
diff --git a/wax-prosemirror-services/src/OverlayService/usePosition.js b/wax-prosemirror-core/src/config/defaultServices/OverlayService/usePosition.js
similarity index 96%
rename from wax-prosemirror-services/src/OverlayService/usePosition.js
rename to wax-prosemirror-core/src/config/defaultServices/OverlayService/usePosition.js
index e01b067c4cd9cfca7105d969df9a07f364c152e6..f7368a16e18705e2c992c9eed489ffb78f2227a5 100644
--- a/wax-prosemirror-services/src/OverlayService/usePosition.js
+++ b/wax-prosemirror-core/src/config/defaultServices/OverlayService/usePosition.js
@@ -1,7 +1,7 @@
 import { useState, useContext, useLayoutEffect, useCallback } from 'react';
 import { isObject } from 'lodash';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext } from '../../../WaxContext';
+import DocumentHelpers from '../../../utilities/document/DocumentHelpers';
 
 const defaultOverlay = {
   left: null,
diff --git a/wax-prosemirror-services/src/PortalService/AbstractNodeView.js b/wax-prosemirror-core/src/config/defaultServices/PortalService/AbstractNodeView.js
similarity index 100%
rename from wax-prosemirror-services/src/PortalService/AbstractNodeView.js
rename to wax-prosemirror-core/src/config/defaultServices/PortalService/AbstractNodeView.js
diff --git a/wax-prosemirror-services/src/PortalService/PortalService.js b/wax-prosemirror-core/src/config/defaultServices/PortalService/PortalService.js
similarity index 94%
rename from wax-prosemirror-services/src/PortalService/PortalService.js
rename to wax-prosemirror-core/src/config/defaultServices/PortalService/PortalService.js
index abd1a7d814a68dd75e27a98fe942039f62313994..e48c30a76294afd308dbd5031e5b6ed3df9de83f 100644
--- a/wax-prosemirror-services/src/PortalService/PortalService.js
+++ b/wax-prosemirror-core/src/config/defaultServices/PortalService/PortalService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import PortalComponent from './components/PortalComponent';
 import PortalPlugin from './portalPlugin';
 import Portals from './Portals';
diff --git a/wax-prosemirror-services/src/PortalService/Portals.js b/wax-prosemirror-core/src/config/defaultServices/PortalService/Portals.js
similarity index 100%
rename from wax-prosemirror-services/src/PortalService/Portals.js
rename to wax-prosemirror-core/src/config/defaultServices/PortalService/Portals.js
diff --git a/wax-prosemirror-services/src/PortalService/components/PortalComponent.js b/wax-prosemirror-core/src/config/defaultServices/PortalService/components/PortalComponent.js
similarity index 100%
rename from wax-prosemirror-services/src/PortalService/components/PortalComponent.js
rename to wax-prosemirror-core/src/config/defaultServices/PortalService/components/PortalComponent.js
diff --git a/wax-prosemirror-services/src/PortalService/portalPlugin.js b/wax-prosemirror-core/src/config/defaultServices/PortalService/portalPlugin.js
similarity index 100%
rename from wax-prosemirror-services/src/PortalService/portalPlugin.js
rename to wax-prosemirror-core/src/config/defaultServices/PortalService/portalPlugin.js
diff --git a/wax-prosemirror-services/src/RulesService/Rules.js b/wax-prosemirror-core/src/config/defaultServices/RulesService/Rules.js
similarity index 100%
rename from wax-prosemirror-services/src/RulesService/Rules.js
rename to wax-prosemirror-core/src/config/defaultServices/RulesService/Rules.js
diff --git a/wax-prosemirror-services/src/RulesService/RulesService.js b/wax-prosemirror-core/src/config/defaultServices/RulesService/RulesService.js
similarity index 92%
rename from wax-prosemirror-services/src/RulesService/RulesService.js
rename to wax-prosemirror-core/src/config/defaultServices/RulesService/RulesService.js
index 92e8d7f48a87fd724b861719c8f58405adddaa63..8cb6cfb4006011428a18a9e88ccb9b8214a07f1d 100644
--- a/wax-prosemirror-services/src/RulesService/RulesService.js
+++ b/wax-prosemirror-core/src/config/defaultServices/RulesService/RulesService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import Rules from './Rules';
 
 export default class RulesService extends Service {
diff --git a/wax-prosemirror-services/src/SchemaService/Mark.js b/wax-prosemirror-core/src/config/defaultServices/SchemaService/Mark.js
similarity index 97%
rename from wax-prosemirror-services/src/SchemaService/Mark.js
rename to wax-prosemirror-core/src/config/defaultServices/SchemaService/Mark.js
index 8d1cd43e7f51869a9d67a5c5b5f1a88d46bf3681..268f68395eadb6ff77413aef71035db98fa45d2a 100644
--- a/wax-prosemirror-services/src/SchemaService/Mark.js
+++ b/wax-prosemirror-core/src/config/defaultServices/SchemaService/Mark.js
@@ -1,7 +1,7 @@
 /* eslint-disable no-underscore-dangle */
+import { Middleware } from 'wax-prosemirror-core';
 import { isPlainObject } from 'lodash';
 import ParseRule from './ParseRule';
-import Middleware from '../lib/Middleware';
 
 export default class Mark {
   name = '';
diff --git a/wax-prosemirror-services/src/SchemaService/Node.js b/wax-prosemirror-core/src/config/defaultServices/SchemaService/Node.js
similarity index 97%
rename from wax-prosemirror-services/src/SchemaService/Node.js
rename to wax-prosemirror-core/src/config/defaultServices/SchemaService/Node.js
index 8fa643f92d8d870c99b6acaae8a72f600831df1e..095d2bb02c230137a080f6f3e82180a90a1874ba 100644
--- a/wax-prosemirror-services/src/SchemaService/Node.js
+++ b/wax-prosemirror-core/src/config/defaultServices/SchemaService/Node.js
@@ -1,7 +1,7 @@
 /* eslint-disable no-underscore-dangle */
+import { Middleware } from 'wax-prosemirror-core';
 import { isPlainObject } from 'lodash';
 import ParseRule from './ParseRule';
-import Middleware from '../lib/Middleware';
 
 export default class Node {
   name = '';
diff --git a/wax-prosemirror-services/src/SchemaService/ParseRule.js b/wax-prosemirror-core/src/config/defaultServices/SchemaService/ParseRule.js
similarity index 88%
rename from wax-prosemirror-services/src/SchemaService/ParseRule.js
rename to wax-prosemirror-core/src/config/defaultServices/SchemaService/ParseRule.js
index 4b9ec92ee1e230aa3d189de2baf7cb766340fb8c..250f3ea7b53d8aa72e2576f4249c67b3dbb9398e 100644
--- a/wax-prosemirror-services/src/SchemaService/ParseRule.js
+++ b/wax-prosemirror-core/src/config/defaultServices/SchemaService/ParseRule.js
@@ -1,5 +1,5 @@
-import { omit } from "lodash";
-import Middleware from "../lib/Middleware";
+import { Middleware } from 'wax-prosemirror-core';
+import { omit } from 'lodash';
 
 export default class ParseRule {
   tag = null;
@@ -44,7 +44,7 @@ export default class ParseRule {
         exporter.go({ dom }, hook => {
           hooks = hook;
         });
-        return omit(hooks, ["dom"]);
+        return omit(hooks, ['dom']);
       };
     }
 
diff --git a/wax-prosemirror-services/src/SchemaService/Schema.js b/wax-prosemirror-core/src/config/defaultServices/SchemaService/Schema.js
similarity index 100%
rename from wax-prosemirror-services/src/SchemaService/Schema.js
rename to wax-prosemirror-core/src/config/defaultServices/SchemaService/Schema.js
diff --git a/wax-prosemirror-services/src/SchemaService/SchemaService.js b/wax-prosemirror-core/src/config/defaultServices/SchemaService/SchemaService.js
similarity index 92%
rename from wax-prosemirror-services/src/SchemaService/SchemaService.js
rename to wax-prosemirror-core/src/config/defaultServices/SchemaService/SchemaService.js
index 2676d320c5bab6e267a96a6db89175149a60d18a..2a82bc0eee115101cea78cd3e5b629ec35c02e31 100644
--- a/wax-prosemirror-services/src/SchemaService/SchemaService.js
+++ b/wax-prosemirror-core/src/config/defaultServices/SchemaService/SchemaService.js
@@ -1,8 +1,8 @@
+import { Service } from 'wax-prosemirror-core';
 import { each } from 'lodash';
-import Service from '../Service';
 import Schema from './Schema';
-import Node from './Node';
-import Mark from './Mark';
+// import Node from './Node';
+// import Mark from './Mark';
 
 export default class SchemaService extends Service {
   name = 'SchemaService';
diff --git a/wax-prosemirror-services/src/ShortCutsService/ShortCuts.js b/wax-prosemirror-core/src/config/defaultServices/ShortCutsService/ShortCuts.js
similarity index 96%
rename from wax-prosemirror-services/src/ShortCutsService/ShortCuts.js
rename to wax-prosemirror-core/src/config/defaultServices/ShortCutsService/ShortCuts.js
index 187fd9fd8df4f1fe5153d1648a27b787f321744a..6de6c6fe69190d8fa25aeecfb67d4fa6b3dfaf39 100644
--- a/wax-prosemirror-services/src/ShortCutsService/ShortCuts.js
+++ b/wax-prosemirror-core/src/config/defaultServices/ShortCutsService/ShortCuts.js
@@ -1,11 +1,8 @@
 import { injectable } from 'inversify';
 import { keymap } from 'prosemirror-keymap';
 import { undo, redo } from 'prosemirror-history';
-import { Commands, DocumentHelpers } from 'wax-prosemirror-utilities';
-
 import { splitListItem } from 'prosemirror-schema-list';
 import { NodeSelection, TextSelection } from 'prosemirror-state';
-
 import {
   baseKeymap,
   chainCommands,
@@ -15,6 +12,8 @@ import {
   selectNodeBackward,
   deleteSelection,
 } from 'prosemirror-commands';
+import Commands from '../../../utilities/commands/Commands';
+import DocumentHelpers from '../../../utilities/document/DocumentHelpers';
 
 const backSpace = chainCommands(
   deleteSelection,
diff --git a/wax-prosemirror-services/src/ShortCutsService/ShortCutsService.js b/wax-prosemirror-core/src/config/defaultServices/ShortCutsService/ShortCutsService.js
similarity index 90%
rename from wax-prosemirror-services/src/ShortCutsService/ShortCutsService.js
rename to wax-prosemirror-core/src/config/defaultServices/ShortCutsService/ShortCutsService.js
index 48513e80866fe42a952fdadf5558fdb673612a02..fc16808b6b3c59338144d0089996f8590caf0f2f 100644
--- a/wax-prosemirror-services/src/ShortCutsService/ShortCutsService.js
+++ b/wax-prosemirror-core/src/config/defaultServices/ShortCutsService/ShortCutsService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import ShortCuts from './ShortCuts';
 
 export default class ShortCutsService extends Service {
diff --git a/wax-prosemirror-utilities/src/commands/Commands.js b/wax-prosemirror-core/src/utilities/commands/Commands.js
similarity index 100%
rename from wax-prosemirror-utilities/src/commands/Commands.js
rename to wax-prosemirror-core/src/utilities/commands/Commands.js
diff --git a/wax-prosemirror-utilities/src/document/DocumentHelpers.js b/wax-prosemirror-core/src/utilities/document/DocumentHelpers.js
similarity index 100%
rename from wax-prosemirror-utilities/src/document/DocumentHelpers.js
rename to wax-prosemirror-core/src/utilities/document/DocumentHelpers.js
diff --git a/wax-prosemirror-services/src/lib/Middleware.js b/wax-prosemirror-core/src/utilities/lib/Middleware.js
similarity index 87%
rename from wax-prosemirror-services/src/lib/Middleware.js
rename to wax-prosemirror-core/src/utilities/lib/Middleware.js
index 25e8831120deacbd087d9e3eb371bf7a0f743c33..7bec012936a00d26e8e74266b21cb75c6f443137 100644
--- a/wax-prosemirror-services/src/lib/Middleware.js
+++ b/wax-prosemirror-core/src/utilities/lib/Middleware.js
@@ -2,14 +2,14 @@ export default class Middleware {
   constructor() {
     // Array prototype last
     if (!Array.prototype.last) {
-      Array.prototype.last = function() {
+      Array.prototype.last = function () {
         return this[this.length - 1];
       };
     }
 
     // Array prototype reduceOneRight
     if (!Array.prototype.reduceOneRight) {
-      Array.prototype.reduceOneRight = function() {
+      Array.prototype.reduceOneRight = function () {
         return this.slice(0, -1);
       };
     }
@@ -21,7 +21,7 @@ export default class Middleware {
         let _next = args.last();
         fn.apply(this, [
           ...args.reduceOneRight(),
-          _next.bind.apply(_next, [null, ...args.reduceOneRight()])
+          _next.bind.apply(_next, [null, ...args.reduceOneRight()]),
         ]);
       }))(this.go);
   }
diff --git a/wax-prosemirror-services/src/lib/ToolGroup.js b/wax-prosemirror-core/src/utilities/lib/ToolGroup.js
similarity index 93%
rename from wax-prosemirror-services/src/lib/ToolGroup.js
rename to wax-prosemirror-core/src/utilities/lib/ToolGroup.js
index f13a9f9b465f7385ef4cbba88fe06632a965fa96..2a5e51b390427a4b6473d8f4660489538697ae0d 100644
--- a/wax-prosemirror-services/src/lib/ToolGroup.js
+++ b/wax-prosemirror-core/src/utilities/lib/ToolGroup.js
@@ -1,12 +1,13 @@
 /* eslint-disable no-underscore-dangle */
 import React, { useMemo } from 'react';
-import { injectable } from 'inversify';
+import { injectable, inject } from 'inversify';
 import { ToolGroupComponent, ToolGroups } from 'wax-prosemirror-components';
 import { v4 as uuidv4 } from 'uuid';
 import { isEmpty } from 'lodash';
+import 'reflect-metadata';
 
 @injectable()
-export default class ToolGroup {
+class ToolGroup {
   _config = {};
   title = '';
   _tools = [];
@@ -82,3 +83,5 @@ export default class ToolGroup {
     return MemorizedToolGroupComponent;
   }
 }
+
+export default ToolGroup;
diff --git a/wax-prosemirror-services/src/lib/Tools.js b/wax-prosemirror-core/src/utilities/lib/Tools.js
similarity index 100%
rename from wax-prosemirror-services/src/lib/Tools.js
rename to wax-prosemirror-core/src/utilities/lib/Tools.js
diff --git a/wax-prosemirror-services/src/lib/helpers/QuestionsNodeView.js b/wax-prosemirror-core/src/utilities/lib/helpers/QuestionsNodeView.js
similarity index 92%
rename from wax-prosemirror-services/src/lib/helpers/QuestionsNodeView.js
rename to wax-prosemirror-core/src/utilities/lib/helpers/QuestionsNodeView.js
index e776a218e80854c0c15243c34c42f1a7e9b28c87..1c38f0507cedc199196717d12e0b767972133503 100644
--- a/wax-prosemirror-services/src/lib/helpers/QuestionsNodeView.js
+++ b/wax-prosemirror-core/src/utilities/lib/helpers/QuestionsNodeView.js
@@ -1,4 +1,4 @@
-import AbstractNodeView from '../../PortalService/AbstractNodeView';
+import AbstractNodeView from '../../../config/defaultServices/PortalService/AbstractNodeView';
 
 export default class QuestionsNodeView extends AbstractNodeView {
   constructor(
diff --git a/wax-prosemirror-utilities/src/schema/DefaultSchema.js b/wax-prosemirror-core/src/utilities/schema/DefaultSchema.js
similarity index 100%
rename from wax-prosemirror-utilities/src/schema/DefaultSchema.js
rename to wax-prosemirror-core/src/utilities/schema/DefaultSchema.js
diff --git a/wax-prosemirror-utilities/src/schema/EditoriaSchema.js b/wax-prosemirror-core/src/utilities/schema/EditoriaSchema.js
similarity index 100%
rename from wax-prosemirror-utilities/src/schema/EditoriaSchema.js
rename to wax-prosemirror-core/src/utilities/schema/EditoriaSchema.js
diff --git a/wax-prosemirror-utilities/src/schema/SchemaHelpers.js b/wax-prosemirror-core/src/utilities/schema/SchemaHelpers.js
similarity index 100%
rename from wax-prosemirror-utilities/src/schema/SchemaHelpers.js
rename to wax-prosemirror-core/src/utilities/schema/SchemaHelpers.js
diff --git a/wax-prosemirror-plugins/rollup.config.js b/wax-prosemirror-plugins/rollup.config.js
index 760bad33b90b1b3d08d454d2a3cd94707b2fe234..839209de9af23cfb44222a83b539625b3cebb143 100644
--- a/wax-prosemirror-plugins/rollup.config.js
+++ b/wax-prosemirror-plugins/rollup.config.js
@@ -10,7 +10,7 @@ export default {
     {
       file: 'dist/index.js',
       format: 'cjs',
-      sourcemap: true,
+      sourcemap: false,
     },
   ],
   plugins: [
diff --git a/wax-prosemirror-plugins/src/comments/CommentPlugin.js b/wax-prosemirror-plugins/src/comments/CommentPlugin.js
index 5b292dd7648d34722c2c152790c19c53a9e54243..3989ab3591e8f44935012e11dc35d2e8daa065e1 100644
--- a/wax-prosemirror-plugins/src/comments/CommentPlugin.js
+++ b/wax-prosemirror-plugins/src/comments/CommentPlugin.js
@@ -3,7 +3,7 @@
 import { minBy, maxBy, last } from 'lodash';
 import { Plugin, PluginKey } from 'prosemirror-state';
 import { Decoration, DecorationSet } from 'prosemirror-view';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { DocumentHelpers } from 'wax-prosemirror-core';
 
 const commentPlugin = new PluginKey('commentPlugin');
 
diff --git a/wax-prosemirror-plugins/src/comments/CopyPasteCommentPlugin.js b/wax-prosemirror-plugins/src/comments/CopyPasteCommentPlugin.js
index d246d34ab19b3f877f41b3a93e9614de97c1c81c..6f515582c8c23165c738ed558415a7ed6f0a98cb 100644
--- a/wax-prosemirror-plugins/src/comments/CopyPasteCommentPlugin.js
+++ b/wax-prosemirror-plugins/src/comments/CopyPasteCommentPlugin.js
@@ -2,7 +2,7 @@
 import { forEach, each } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
 import { Plugin, PluginKey } from 'prosemirror-state';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { DocumentHelpers } from 'wax-prosemirror-core';
 
 const copyPasteCommentPugin = new PluginKey('copyPasteCommentPugin');
 
diff --git a/wax-prosemirror-plugins/src/findAndReplace/FindAndReplacePlugin.js b/wax-prosemirror-plugins/src/findAndReplace/FindAndReplacePlugin.js
index 08adf1df78b893a91932f464e5ed1174cd62d357..662a33f0fa47d1208044e5c7ac7643b39bd84f12 100644
--- a/wax-prosemirror-plugins/src/findAndReplace/FindAndReplacePlugin.js
+++ b/wax-prosemirror-plugins/src/findAndReplace/FindAndReplacePlugin.js
@@ -1,6 +1,6 @@
 import { Plugin, PluginKey } from 'prosemirror-state';
 import { Decoration, DecorationSet } from 'prosemirror-view';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { DocumentHelpers } from 'wax-prosemirror-core';
 
 const findAndReplacePlugin = new PluginKey('findAndReplacePlugin');
 
diff --git a/wax-prosemirror-plugins/src/trackChanges/FindSelectedChanges.js b/wax-prosemirror-plugins/src/trackChanges/FindSelectedChanges.js
index 14f24e8723b208abd40416d70f214c6fe1c68864..91cc07aea34ccaeba90dde16be4bdc6a89dd3f28 100644
--- a/wax-prosemirror-plugins/src/trackChanges/FindSelectedChanges.js
+++ b/wax-prosemirror-plugins/src/trackChanges/FindSelectedChanges.js
@@ -1,4 +1,4 @@
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { DocumentHelpers } from 'wax-prosemirror-core';
 
 const findSelectedChanges = state => {
   const { selection } = state;
diff --git a/wax-prosemirror-plugins/src/trackChanges/HideShowPlugin.js b/wax-prosemirror-plugins/src/trackChanges/HideShowPlugin.js
index 67718c59d6763ea4c59c85ea2a8135a5fedac4d6..f2fc8adee6d960f9fae0b8cfa5c4e346ec04b771 100644
--- a/wax-prosemirror-plugins/src/trackChanges/HideShowPlugin.js
+++ b/wax-prosemirror-plugins/src/trackChanges/HideShowPlugin.js
@@ -2,7 +2,7 @@
 
 import { Plugin, PluginKey } from 'prosemirror-state';
 import { Decoration, DecorationSet } from 'prosemirror-view';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { DocumentHelpers } from 'wax-prosemirror-core';
 
 const hideShowPlugin = new PluginKey('hideShowPlugin');
 
diff --git a/wax-prosemirror-schema/package.json b/wax-prosemirror-schema/package.json
index 37f540fa0464ad994d5462102fa754f55ee43436..2fe6453c7d2567af3b3818281b30e06790ca6390 100644
--- a/wax-prosemirror-schema/package.json
+++ b/wax-prosemirror-schema/package.json
@@ -15,6 +15,6 @@
   "dependencies": {
     "prosemirror-schema-list": "^1.1.6",
     "prosemirror-tables": "^1.1.1",
-    "wax-prosemirror-utilities": "^0.5.13"
+    "wax-prosemirror-core": "^0.5.13"
   }
 }
diff --git a/wax-prosemirror-schema/rollup.config.js b/wax-prosemirror-schema/rollup.config.js
index 665c99f99fe73c3f761cdf62c117c60a8196af91..8e14947b400dfbe74aeef97a0f818ad6c42e130d 100644
--- a/wax-prosemirror-schema/rollup.config.js
+++ b/wax-prosemirror-schema/rollup.config.js
@@ -10,7 +10,7 @@ export default {
     {
       file: 'dist/index.js',
       format: 'cjs',
-      sourcemap: true,
+      sourcemap: false,
     },
   ],
   plugins: [
@@ -25,5 +25,5 @@ export default {
     commonjs(),
     terser(),
   ],
-  external: ['uuid', 'wax-prosemirror-utilities'],
+  external: ['uuid'],
 };
diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js b/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js
index 41b13aad1db7b9857b6914763860faa3aa2cb176..251380d1086da6498209a79772f7e1e4118c51cd 100644
--- a/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js
+++ b/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const format_change = {
   attrs: {
diff --git a/wax-prosemirror-schema/src/nodes/bulletListNode.js b/wax-prosemirror-schema/src/nodes/bulletListNode.js
index 314efd305fe4500bd76e17e50fadd57f47bf9bac..004190914b6c1bce22060c71497a0172592f510f 100644
--- a/wax-prosemirror-schema/src/nodes/bulletListNode.js
+++ b/wax-prosemirror-schema/src/nodes/bulletListNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const bulletlist = {
   group: 'block',
diff --git a/wax-prosemirror-schema/src/nodes/imageNode.js b/wax-prosemirror-schema/src/nodes/imageNode.js
index 6eb0f35f70106f32204b41333703546413675e5f..74d308592535a292d1c6affa6290a7fc47dc25f2 100644
--- a/wax-prosemirror-schema/src/nodes/imageNode.js
+++ b/wax-prosemirror-schema/src/nodes/imageNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+// import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const image = {
   attrs: {
diff --git a/wax-prosemirror-schema/src/nodes/listItemNode.js b/wax-prosemirror-schema/src/nodes/listItemNode.js
index 5c16de775b7527fc1a84e8d53b08839ab5ae0d58..af393fd802ace098dd651de2bd630a8982d25772 100644
--- a/wax-prosemirror-schema/src/nodes/listItemNode.js
+++ b/wax-prosemirror-schema/src/nodes/listItemNode.js
@@ -1,5 +1,5 @@
 /* eslint-disable camelcase */
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const list_item = {
   content: 'paragraph block*',
diff --git a/wax-prosemirror-schema/src/nodes/orderedListNode.js b/wax-prosemirror-schema/src/nodes/orderedListNode.js
index 014d6e02d35faf34303579aa3b8ef20e71b6b248..b693d7aa55712e7f8d6ff4be1eaee85b6213bc87 100644
--- a/wax-prosemirror-schema/src/nodes/orderedListNode.js
+++ b/wax-prosemirror-schema/src/nodes/orderedListNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const orderedlist = {
   group: 'block',
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js
index 984015c99faa1564c09dff61699de2aed14f46b7..f3271e9b72c552613fd53ce1ca536513953e1247 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const author = {
   content: 'inline*',
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/customBlockTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/customBlockTrackNode.js
index 2e764c4a173b1015fcfaa334cecec1afa286eab4..7042df396f93ee1b3e04a9960ba7ee449db2596c 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/customBlockTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/customBlockTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const customBlockNode = {
   content: 'inline*',
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphPoetryTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphPoetryTrackNode.js
index d079f03799bba3d83e0503c48340189e3bd44f6c..a3e0f2b0320fe3b3b5547700b7c084ae88fe89fd 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphPoetryTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphPoetryTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const epigraphPoetry = {
   content: 'inline*',
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphProseTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphProseTrackNode.js
index f082da4efcb5ae629df943351f35ba5742ec9e37..5b35aa8ea8bd688131e9ff8a411b26042c24a837 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphProseTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphProseTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const epigraphProse = {
   content: 'inline*',
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractPoetryTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractPoetryTrackNode.js
index 42ec054a9354c96057b8dbc9263e9228d3c89952..713587132b2e7cff7c72ae83f9e125480f1df46c 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractPoetryTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractPoetryTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const extractPoetry = {
   content: 'inline*',
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractProseTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractProseTrackNode.js
index 2e6f4ec81ea7d1df0f3a089e5482d0e5a9cfb4d0..25e75a736173bab8aa4dacfa8183c0a6b5f02529 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractProseTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractProseTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const extractProse = {
   content: 'inline*',
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/headingTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/headingTrackNode.js
index db059daa9cc837ac91fd108d1ec12b78011ea3ec..ad73435656bfb3cc3d9501212e202183e5e81355 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/headingTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/headingTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const heading = {
   attrs: {
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/orderedListTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/orderedListTrackNode.js
index 56ac769bc49afa661dd61ab43fb431b05a64b7c0..d07998933997ba92e5e9bf31ba56d5ad90b59ac2 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/orderedListTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/orderedListTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const orderedlist = {
   group: 'block',
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/paragraphContTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/paragraphContTrackNode.js
index 5752f8e2a5a50d50f341d3b8b9e987ced009622b..b390b1cb71aa9d2d6cf18a8aea1db6f5184edf84 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/paragraphContTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/paragraphContTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const paragraphCont = {
   content: 'inline*',
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/sourceNoteTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/sourceNoteTrackNode.js
index d87b2d7fbd29315efe4be55b605387a73f515f5b..b792ae636520c55b7260f0d2bb3c12ad6471d64a 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/sourceNoteTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/sourceNoteTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const sourceNote = {
   content: 'inline*',
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/subTitleTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/subTitleTrackNode.js
index a9183b6deefe1cfd84e80d9adc46a21a6a364e10..5be63bff836e9c47f4d3330e3581dedaf79b5938 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/subTitleTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/subTitleTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const subtitle = {
   content: 'inline*',
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/titleTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/titleTrackNode.js
index e9128da51ee4fdb45b38297a2869fff43f99485e..913a56f83a59cad0171ba65c180dab188aa136ad 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/titleTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/titleTrackNode.js
@@ -1,4 +1,4 @@
-import { SchemaHelpers } from 'wax-prosemirror-utilities';
+import { SchemaHelpers } from 'wax-prosemirror-core';
 
 const title = {
   content: 'inline*',
diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js
index 0b9b5f51677fea14351aa5f838de7a015cf19c66..a2121f85a32b0a00cedb01bdfaf32e7c91825da0 100644
--- a/wax-prosemirror-services/index.js
+++ b/wax-prosemirror-services/index.js
@@ -1,23 +1,8 @@
-export { default as Service } from './src/Service';
-
-export { default as LayoutService } from './src/LayoutService/LayoutService';
-export { default as PortalService } from './src/PortalService/PortalService';
-export { default as MenuService } from './src/MenuService/MenuService';
-export { default as OverlayService } from './src/OverlayService/OverlayService';
-export { default as ImageService } from './src/ImageService/ImageService';
-export { default as RulesService } from './src/RulesService/RulesService';
-export { default as SchemaService } from './src/SchemaService/SchemaService';
-
-export { default as ShortCutsService } from './src/ShortCutsService/ShortCutsService';
-
-export { default as Tools } from './src/lib/Tools';
-export { default as AbstractNodeView } from './src/PortalService/AbstractNodeView';
-export { default as ToolGroup } from './src/lib/ToolGroup';
-
 /*
 All Elements services
 */
 export { default as BaseService } from './src/BaseService/BaseService';
+export { default as ImageService } from './src/ImageService/ImageService';
 export { default as InlineAnnotationsService } from './src/InlineAnnotations/InlineAnnotationsService';
 export { default as ListsService } from './src/ListsService/ListsService';
 export { default as TablesService } from './src/TablesService/TablesService';
diff --git a/wax-prosemirror-services/package.json b/wax-prosemirror-services/package.json
index ff7db99f30dd3d0f3468c4bafba09752440594ce..cd3aeb5689fa94e2e6e885b7ebdec70c3c151ae3 100644
--- a/wax-prosemirror-services/package.json
+++ b/wax-prosemirror-services/package.json
@@ -34,8 +34,7 @@
     "wax-prosemirror-components": "^0.5.13",
     "wax-prosemirror-core": "^0.5.13",
     "wax-prosemirror-plugins": "^0.5.13",
-    "wax-prosemirror-schema": "^0.5.13",
-    "wax-prosemirror-utilities": "^0.5.13"
+    "wax-prosemirror-schema": "^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 a48f921add692e0a08e341c0857224bac6d9473b..e23b0931b4a2752cf353c58bcaaa3a329bf06617 100644
--- a/wax-prosemirror-services/rollup.config.js
+++ b/wax-prosemirror-services/rollup.config.js
@@ -10,7 +10,7 @@ export default {
     {
       file: 'dist/index.js',
       format: 'cjs',
-      sourcemap: true,
+      sourcemap: false,
     },
   ],
   plugins: [
diff --git a/wax-prosemirror-services/src/BaseService/RedoService/Redo.js b/wax-prosemirror-services/src/BaseService/RedoService/Redo.js
index 7d57e42d9dae7f10eb53cc726ac1965c2a05f644..05f1fabcac14f65f3c14d2e109e57b4caaa199b1 100644
--- a/wax-prosemirror-services/src/BaseService/RedoService/Redo.js
+++ b/wax-prosemirror-services/src/BaseService/RedoService/Redo.js
@@ -3,7 +3,7 @@ import { isEmpty } from 'lodash';
 import { redo } from 'prosemirror-history';
 import { injectable } from 'inversify';
 import { UndoRedoButton } from 'wax-prosemirror-components';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Redo extends Tools {
diff --git a/wax-prosemirror-services/src/BaseService/RedoService/RedoService.js b/wax-prosemirror-services/src/BaseService/RedoService/RedoService.js
index 017c9f612310ba9517d6ee292fec7e2dcc558f18..78049a7e71dc7085d84ba634f1a25c13600ad6ae 100644
--- a/wax-prosemirror-services/src/BaseService/RedoService/RedoService.js
+++ b/wax-prosemirror-services/src/BaseService/RedoService/RedoService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import Redo from './Redo';
 
 class RedoService extends Service {
diff --git a/wax-prosemirror-services/src/BaseService/SaveService/Save.js b/wax-prosemirror-services/src/BaseService/SaveService/Save.js
index ba38ad929cbcdbcd8c3cbf7de1ea2fef4657f26d..533651184f87bd1a13e510f3b6403b3c9e10a7b4 100644
--- a/wax-prosemirror-services/src/BaseService/SaveService/Save.js
+++ b/wax-prosemirror-services/src/BaseService/SaveService/Save.js
@@ -2,7 +2,7 @@ import React from 'react';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { SaveButton, icons } from 'wax-prosemirror-components';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Save extends Tools {
diff --git a/wax-prosemirror-services/src/BaseService/SaveService/SaveService.js b/wax-prosemirror-services/src/BaseService/SaveService/SaveService.js
index ac129b12b9f148d9fa8c8f8df132e2441b3c8036..1fce11981f976317b5102205370a8a86bf2a92cd 100644
--- a/wax-prosemirror-services/src/BaseService/SaveService/SaveService.js
+++ b/wax-prosemirror-services/src/BaseService/SaveService/SaveService.js
@@ -1,11 +1,9 @@
-import Service from "../../Service";
-import Save from "./Save";
+import { Service } from 'wax-prosemirror-core';
+import Save from './Save';
 
 class SaveService extends Service {
-  boot() {}
-
   register() {
-    this.container.bind("Save").to(Save);
+    this.container.bind('Save').to(Save);
   }
 }
 
diff --git a/wax-prosemirror-services/src/BaseService/UndoService/Undo.js b/wax-prosemirror-services/src/BaseService/UndoService/Undo.js
index f138b0991393423f2acd8ca2fd5f1e20cf72e844..bcf65049296a54bdd0b0bc075b89f8a6eddfd708 100644
--- a/wax-prosemirror-services/src/BaseService/UndoService/Undo.js
+++ b/wax-prosemirror-services/src/BaseService/UndoService/Undo.js
@@ -3,7 +3,7 @@ import { isEmpty } from 'lodash';
 import { undo } from 'prosemirror-history';
 import { injectable } from 'inversify';
 import { UndoRedoButton } from 'wax-prosemirror-components';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Undo extends Tools {
diff --git a/wax-prosemirror-services/src/BaseService/UndoService/UndoService.js b/wax-prosemirror-services/src/BaseService/UndoService/UndoService.js
index eba135b1e5c15bdf5e5abaee8692295f3d67bea8..ffeadf853b73bb389ffa89bab82197a6b7b33b19 100644
--- a/wax-prosemirror-services/src/BaseService/UndoService/UndoService.js
+++ b/wax-prosemirror-services/src/BaseService/UndoService/UndoService.js
@@ -1,11 +1,9 @@
-import Service from "../../Service";
-import Undo from "./Undo";
+import { Service } from 'wax-prosemirror-core';
+import Undo from './Undo';
 
 class UndoService extends Service {
-  boot() {}
-
   register() {
-    this.container.bind("Undo").to(Undo);
+    this.container.bind('Undo').to(Undo);
   }
 }
 
diff --git a/wax-prosemirror-services/src/BottomInfoService/BottomInfoService.js b/wax-prosemirror-services/src/BottomInfoService/BottomInfoService.js
index c419288bde486e66d17a8d4df834542b0074a35c..d897e84552bc594949a918a97ef4cd6617aae335 100644
--- a/wax-prosemirror-services/src/BottomInfoService/BottomInfoService.js
+++ b/wax-prosemirror-services/src/BottomInfoService/BottomInfoService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import BottomInfoServices from './index';
 
 class BottomInfoService extends Service {
diff --git a/wax-prosemirror-services/src/BottomInfoService/CounterInfoService/CounterInfoService.js b/wax-prosemirror-services/src/BottomInfoService/CounterInfoService/CounterInfoService.js
index ad0d6119ff1c61a189452b22b438f2072780574c..335f5d49a61095dc6efd056f43dcaedb8be05dab 100644
--- a/wax-prosemirror-services/src/BottomInfoService/CounterInfoService/CounterInfoService.js
+++ b/wax-prosemirror-services/src/BottomInfoService/CounterInfoService/CounterInfoService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import CounterInfoTool from './CounterInfoTool';
 
 export default class CounterInfoService extends Service {
diff --git a/wax-prosemirror-services/src/BottomInfoService/CounterInfoService/CounterInfoTool.js b/wax-prosemirror-services/src/BottomInfoService/CounterInfoService/CounterInfoTool.js
index bad375807f9518f76d7bfe5ed200ac7b8edb1f48..3e412198993f3996ed821a558bdccbab2f6d3ef4 100644
--- a/wax-prosemirror-services/src/BottomInfoService/CounterInfoService/CounterInfoTool.js
+++ b/wax-prosemirror-services/src/BottomInfoService/CounterInfoService/CounterInfoTool.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { EditorInfoTool } from 'wax-prosemirror-components';
-// eslint-disable-next-line import/no-named-as-default,import/no-named-as-default-member
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class CounterInfoTool extends Tools {
diff --git a/wax-prosemirror-services/src/BottomInfoService/ShortCutsInfoService/ShortCutsInfoService.js b/wax-prosemirror-services/src/BottomInfoService/ShortCutsInfoService/ShortCutsInfoService.js
index 09f5677be4dacf2c92ada010d2ef456698c2386b..573f61055a003ae72c798bfcfda0b33c2c476925 100644
--- a/wax-prosemirror-services/src/BottomInfoService/ShortCutsInfoService/ShortCutsInfoService.js
+++ b/wax-prosemirror-services/src/BottomInfoService/ShortCutsInfoService/ShortCutsInfoService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import ShortCutsInfoTool from './ShortCutsInfoTool';
 
 export default class ShortCutsInfoService extends Service {
diff --git a/wax-prosemirror-services/src/BottomInfoService/ShortCutsInfoService/ShortCutsInfoTool.js b/wax-prosemirror-services/src/BottomInfoService/ShortCutsInfoService/ShortCutsInfoTool.js
index ca11a24782cfd478e2c23d514170014f93a5b23d..e0ab8227024c2ab9a4ab0065b2e689ce18dddf9e 100644
--- a/wax-prosemirror-services/src/BottomInfoService/ShortCutsInfoService/ShortCutsInfoTool.js
+++ b/wax-prosemirror-services/src/BottomInfoService/ShortCutsInfoService/ShortCutsInfoTool.js
@@ -2,7 +2,7 @@ import React from 'react';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { EditorShortCutsTool } from 'wax-prosemirror-components';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class ShortCutsInfoTool extends Tools {
diff --git a/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
index 724bc3a9668db500f89867deb1fb72c2dc39eb0e..b7221d9ae02916d9cb4c149268576170f4170336 100644
--- a/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
+++ b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
@@ -1,6 +1,6 @@
+import { Service } from 'wax-prosemirror-core';
 import { highlightPlugin } from 'wax-prosemirror-plugins';
 import { codeBlockNode } from 'wax-prosemirror-schema';
-import Service from '../Service';
 import CodeBlockTool from './CodeBlockTool';
 import './highlightStyles.css';
 
diff --git a/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
index 56ab4bd37611bcfafc713852d548aab915b1cead..1beb88c996a1116e3e73abeb9bd0b817b9e13fd9 100644
--- a/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
+++ b/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
@@ -1,6 +1,6 @@
 import { injectable } from 'inversify';
 import { setBlockType } from 'prosemirror-commands';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class CodeBlockTool extends Tools {
diff --git a/wax-prosemirror-services/src/CommentsService/CommentsService.js b/wax-prosemirror-services/src/CommentsService/CommentsService.js
index 48d3b07b3f09bcd9f62b13546f43a52675bf0d2c..98fa6f693953b0eb9e8e621b5122fcc83a687ca6 100644
--- a/wax-prosemirror-services/src/CommentsService/CommentsService.js
+++ b/wax-prosemirror-services/src/CommentsService/CommentsService.js
@@ -1,7 +1,7 @@
+import { Service } from 'wax-prosemirror-core';
 import { commentMark } from 'wax-prosemirror-schema';
 import { RightArea, CommentBubbleComponent } from 'wax-prosemirror-components';
 import { CommentPlugin, CopyPasteCommentPlugin } from 'wax-prosemirror-plugins';
-import Service from '../Service';
 import './comments.css';
 
 const PLUGIN_KEY = 'commentPlugin';
diff --git a/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockService.js b/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockService.js
index e4792a3e27af8bf65fcd8bebede1c964b67b1182..0029b8e0da132332030e523bf5dd2bf15986be30 100644
--- a/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockService.js
+++ b/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockService.js
@@ -1,6 +1,6 @@
+import { Service } from 'wax-prosemirror-core';
 import { customBlockNode } from 'wax-prosemirror-schema';
 import CustomTagBlockTool from './CustomTagBlockTool';
-import Service from '../../Service';
 
 class CustomTagBlockService extends Service {
   register() {
diff --git a/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockTool.js b/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockTool.js
index 8a4a64c4fb0bf8e764101107ec2eac627e399bc9..43434f99d6987d268746f49b473327d341c6143c 100644
--- a/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockTool.js
+++ b/wax-prosemirror-services/src/CustomTagService/CustomTagBlockService/CustomTagBlockTool.js
@@ -1,5 +1,4 @@
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 class CustomTagBlockTool extends Tools {
   title = 'Custom Tag Block';
diff --git a/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js b/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js
index a90cdd3da09535764315962e971b83bf3c467bb8..c10d644cf5535b930e0b781e9d751241e74286f5 100644
--- a/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js
+++ b/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js
@@ -1,7 +1,7 @@
+import { Service } from 'wax-prosemirror-core';
 import { CustomTagInlineOverlayComponent } from 'wax-prosemirror-components';
 import { customtagInlineMark } from 'wax-prosemirror-schema';
 import CustomTagInlineTool from './CustomTagInlineTool';
-import Service from '../../Service';
 
 class CustomTagInlineService extends Service {
   boot() {
diff --git a/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineTool.js b/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineTool.js
index 6b14b78a91fd6cc8258052519fb1a6fac6e0978d..d2fa2eff5e7b9079cbe1fca3392ce6eff56150ac 100644
--- a/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineTool.js
+++ b/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineTool.js
@@ -1,7 +1,7 @@
 import React from 'react';
 import { v4 as uuidv4 } from 'uuid';
 import { CustomTagInlineComponent } from 'wax-prosemirror-components';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 class CustomTagInLineTool extends Tools {
   title = 'Custom Tag Inline';
diff --git a/wax-prosemirror-services/src/CustomTagService/CustomTagService.js b/wax-prosemirror-services/src/CustomTagService/CustomTagService.js
index 3728cce66c5e39b47788b081904d139933276ab8..ca5e82f8edf9df563b88978991b8b69c9d159843 100644
--- a/wax-prosemirror-services/src/CustomTagService/CustomTagService.js
+++ b/wax-prosemirror-services/src/CustomTagService/CustomTagService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import CustomService from './index';
 
 class CustomTagService extends Service {
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/Author.js b/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/Author.js
index b622fd1fa25ee025a07ae182efccbc923c02d010..70078ec34a7310f33c2073ae0103d1b7222390b9 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/Author.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/Author.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Tools, Commands } from 'wax-prosemirror-core';
 
 @injectable()
 class Author extends Tools {
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/AuthorService.js b/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/AuthorService.js
index 0ee9279efbbaeabefc35fe8e0cdaa19dc7e4458e..4875bb1faac373cbaa74ff270cf3ba2717891b1e 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 Service from '../../Service';
 import Author from './Author';
 
 class AuthorService extends Service {
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/DisplayBlockLevelService.js b/wax-prosemirror-services/src/DisplayBlockLevel/DisplayBlockLevelService.js
index 2a1de5b35f1bd6e9758ae9e60983812a16dbeff6..d7825e7380b550e9bde37803193bdcf853a8c73e 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/DisplayBlockLevelService.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/DisplayBlockLevelService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import DisplayServices from './index';
 
 class DisplayBlockLevelService extends Service {
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetry.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetry.js
index 6d3fe21688abd5fa5399ae6728827d3ce97730d1..2203d2c05f056cc77d64a5311d0849b7f5f7738e 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetry.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetry.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Tools, Commands } from 'wax-prosemirror-core';
 
 @injectable()
 class EpigraphPoetry extends Tools {
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js
index 0f9e10a3ebcb31ee30686f2526c5f8d70ebcb814..19bad11b08f3157bae39423d28f5f5a2eafc576d 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js
@@ -1,10 +1,8 @@
+import { Service } from 'wax-prosemirror-core';
 import { epigraphPoetryNode } from 'wax-prosemirror-schema';
 import EpigraphPoetry from './EpigraphPoetry';
-import Service from '../../Service';
 
 class EpigraphPoetryService extends Service {
-  // boot() {}
-
   register() {
     this.container.bind('EpigraphPoetry').to(EpigraphPoetry);
     const createNode = this.container.get('CreateNode');
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProse.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProse.js
index 14da76702d765f6e815775e5c8713d946acea21c..9a87cf74680faa9ebde2857a83a763ef9ec6d94b 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProse.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProse.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Tools, Commands } from 'wax-prosemirror-core';
 
 @injectable()
 export default class EpigraphProse extends Tools {
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js
index b16be0c74d01a07a6ee817de2f1e8453c8fb3bbc..192e6b72b8e8236820a33b9f9fc183f37765cdef 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js
@@ -1,10 +1,8 @@
+import { Service } from 'wax-prosemirror-core';
 import { epigraphProseNode } from 'wax-prosemirror-schema';
 import EpigraphProse from './EpigraphProse';
-import Service from '../../Service';
 
 class EpigraphProseService extends Service {
-  boot() {}
-
   register() {
     this.container.bind('EpigraphProse').to(EpigraphProse);
     const createNode = this.container.get('CreateNode');
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading2.js b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading2.js
index 27b4db030250f14b2933d9681e75c08589af132f..4dfa3f8917be6f06ff986165f31fb6f13f26dc1d 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading2.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading2.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 import checkLevelFromConfig from './checkLevelFromConfig';
 
 @injectable()
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading3.js b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading3.js
index 5a57c319a15b77372d38a3fa3e350fcf271c3ee9..c31b3e7ea926c19660915f6e7c0ec6a850fc7f8f 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading3.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading3.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 import checkLevelFromConfig from './checkLevelFromConfig';
 
 @injectable()
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading4.js b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading4.js
index 296453810ea041cef11dcdf1e1701ec3e653f38c..0db2b1567403076fb97f7354ca31fa85247c7064 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading4.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading4.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 import checkLevelFromConfig from './checkLevelFromConfig';
 
 @injectable()
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading5.js b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading5.js
index cfac212ca82b9d8def0a9cba4ddb1b955eae7f61..b9647b2570229cb906d7270fa684b109b69c9cb1 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading5.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading5.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 import checkLevelFromConfig from './checkLevelFromConfig';
 
 @injectable()
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading6.js b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading6.js
index a383ecfec4f02c598899962a83df2327d0d4c2da..131f3a21b5a6f2345244e772733cfbb901d80600 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading6.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/Heading6.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Heading2 extends Tools {
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/HeadingService.js b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/HeadingService.js
index dae31dedcfde5da2b9432858736bd78fba279eb4..f81429ed6f31169d797b3a0be687768a8a14fd64 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/HeadingService.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/HeadingService/HeadingService.js
@@ -1,9 +1,9 @@
+import { Service } from 'wax-prosemirror-core';
 import Heading2 from './Heading2';
 import Heading3 from './Heading3';
 import Heading4 from './Heading4';
 import Heading5 from './Heading5';
 import Heading6 from './Heading6';
-import Service from '../../Service';
 
 class HeadingService extends Service {
   register() {
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitle.js b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitle.js
index 9d8d7fc580e954728ee993b98d10253d30687399..80c28f9d1e92529fca0c4e9ea1cfd566440e2409 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitle.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitle.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class SubTitle extends Tools {
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js
index 854dfe2be0e7a7ffd02e3dcc96dea55e149151ec..4014b0038f22de779f15393d7dab1111acc03052 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js
@@ -1,18 +1,16 @@
-import Service from "../../Service";
-import { subTitleNode } from "wax-prosemirror-schema";
-import SubTitle from "./SubTitle";
+import { Service } from 'wax-prosemirror-core';
+import { subTitleNode } from 'wax-prosemirror-schema';
+import SubTitle from './SubTitle';
 
 class SubTitleService extends Service {
-  boot() {}
-
   register() {
-    this.container.bind("SubTitle").to(SubTitle);
-    const createNode = this.container.get("CreateNode");
+    this.container.bind('SubTitle').to(SubTitle);
+    const createNode = this.container.get('CreateNode');
     createNode(
       {
-        subtitle: subTitleNode
+        subtitle: subTitleNode,
       },
-      { toWaxSchema: true }
+      { toWaxSchema: true },
     );
   }
 }
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/Title.js b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/Title.js
index 3fbb4cd1084acf00faddfe15e413bb770e9e0af0..f19fd580b10e01bfe223c6c488980bbdf5535a69 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/Title.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/Title.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { TitleButton } from 'wax-prosemirror-components';
-import { Commands, DocumentHelpers } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, DocumentHelpers, Tools } from 'wax-prosemirror-core';
 import checkLevelFromConfig from '../HeadingService/checkLevelFromConfig';
 
 @injectable()
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js
index 15ae2b07b0d6154ffacddad93168623afed4fd31..67644481eb5236b44cd7ff9f5e035f37b159341f 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 Service from '../../Service';
 import Title from './Title';
 
 class TitleService extends Service {
diff --git a/wax-prosemirror-services/src/EditingSuggestingService/EditingSuggesting.js b/wax-prosemirror-services/src/EditingSuggestingService/EditingSuggesting.js
index e3bc7ec2d2192a1feb3e1abaa0b38d60207901f1..b3d94342975257f62ec028dd50a4028398750720 100644
--- a/wax-prosemirror-services/src/EditingSuggestingService/EditingSuggesting.js
+++ b/wax-prosemirror-services/src/EditingSuggestingService/EditingSuggesting.js
@@ -3,7 +3,7 @@ import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
 import { EditingSuggestingDropDown } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class EditingSuggesting extends Tools {
diff --git a/wax-prosemirror-services/src/EditingSuggestingService/EditingSuggestingService.js b/wax-prosemirror-services/src/EditingSuggestingService/EditingSuggestingService.js
index d0c33881de6405b1feee819b5610b8211b8c5fbb..51ae9d64cd3aafb8fbe65954dd9675a89dd8d2ad 100644
--- a/wax-prosemirror-services/src/EditingSuggestingService/EditingSuggestingService.js
+++ b/wax-prosemirror-services/src/EditingSuggestingService/EditingSuggestingService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import EditingSuggesting from './EditingSuggesting';
 
 class EditingSuggestingService extends Service {
diff --git a/wax-prosemirror-services/src/EnterService/EnterService.js b/wax-prosemirror-services/src/EnterService/EnterService.js
index 0a28e8bfe665366da59287ea05ee4706e1bbf001..331feeb63fcd9101b09b42500f1dabaf3e96144e 100644
--- a/wax-prosemirror-services/src/EnterService/EnterService.js
+++ b/wax-prosemirror-services/src/EnterService/EnterService.js
@@ -1,5 +1,5 @@
+import { Service } from 'wax-prosemirror-core';
 import { GetContentOnEnterPlugin } from 'wax-prosemirror-plugins';
-import Service from '../Service';
 
 class EnterService extends Service {
   name = 'EnterService';
diff --git a/wax-prosemirror-services/src/EssayService/EssayAnswerNodeView.js b/wax-prosemirror-services/src/EssayService/EssayAnswerNodeView.js
index 0b56c83e776cc32ee8f341e265fd0797d1a2f435..d2ee9ec6dce3accf2dc9da51a8c306a61a738692 100644
--- a/wax-prosemirror-services/src/EssayService/EssayAnswerNodeView.js
+++ b/wax-prosemirror-services/src/EssayService/EssayAnswerNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class EssayAnswerNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/EssayService/EssayQuestion.js b/wax-prosemirror-services/src/EssayService/EssayQuestion.js
index 703a6170280f9f69a350805c8fb321813a6b8464..9abd0d8a9b3365eb2f7e3cc4f52f9a811eace479 100644
--- a/wax-prosemirror-services/src/EssayService/EssayQuestion.js
+++ b/wax-prosemirror-services/src/EssayService/EssayQuestion.js
@@ -2,12 +2,11 @@ import React from 'react';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { v4 as uuidv4 } from 'uuid';
-import { Commands } from 'wax-prosemirror-utilities';
 import { Fragment } from 'prosemirror-model';
 import { TextSelection } from 'prosemirror-state';
 import { findWrapping } from 'prosemirror-transform';
+import { Commands, Tools } from 'wax-prosemirror-core';
 import ToolBarBtn from './components/ToolBarBtn';
-import Tools from '../lib/Tools';
 
 const checkifEmpty = view => {
   const { state } = view;
diff --git a/wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js b/wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js
index dd941003db193a23cbcfba30b4a171ff71b209c3..d76164984b77fd75cec55c5a9921a538311220c0 100644
--- a/wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js
+++ b/wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class EssayQuestionNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/EssayService/EssayService.js b/wax-prosemirror-services/src/EssayService/EssayService.js
index 761e9aa834fe14b1fa6a3d097129ac90e242dcfa..fc0f91d64e2ec8529a95203fbf18f28d914c11f9 100644
--- a/wax-prosemirror-services/src/EssayService/EssayService.js
+++ b/wax-prosemirror-services/src/EssayService/EssayService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import EssayQuestion from './EssayQuestion';
 import essayContainerNode from './schema/essayContainerNode';
 import essayQuestionNode from './schema/essayQuestionNode';
diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/CreateGapService/CreateGap.js b/wax-prosemirror-services/src/FillTheGapQuestionService/CreateGapService/CreateGap.js
index d7bf20786b7c0f44acba7c1c7055d94c21f10d0e..156bc209cebfe738d7985ed9a5379b5b44f46fd3 100644
--- a/wax-prosemirror-services/src/FillTheGapQuestionService/CreateGapService/CreateGap.js
+++ b/wax-prosemirror-services/src/FillTheGapQuestionService/CreateGapService/CreateGap.js
@@ -1,7 +1,7 @@
 import { injectable } from 'inversify';
 import { Fragment } from 'prosemirror-model';
 import { v4 as uuidv4 } from 'uuid';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class CreateGap extends Tools {
diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/CreateGapService/CreateGapService.js b/wax-prosemirror-services/src/FillTheGapQuestionService/CreateGapService/CreateGapService.js
index 6194a63fa67e18d4fd7b036cc94070371591b43e..36fb3875ac912ceb293ceae0ea823b6048475318 100644
--- a/wax-prosemirror-services/src/FillTheGapQuestionService/CreateGapService/CreateGapService.js
+++ b/wax-prosemirror-services/src/FillTheGapQuestionService/CreateGapService/CreateGapService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import CreateGap from './CreateGap';
 
 class FillTheGapQuestionService extends Service {
diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapContainerNodeView.js b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapContainerNodeView.js
index b973b767c8efc80c925cb2d1c091f8f63bdfbfa0..23e37bbb02a8e38b3e1a5e83caffcacaf245aa20 100644
--- a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapContainerNodeView.js
+++ b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapContainerNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class FillTheGapContainerNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapNodeView.js b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapNodeView.js
index c8b2081b459a481aa54f4e861e94db1f2fdef043..2b45108120d1cb126fef9ae104a8e41bfcaea9b6 100644
--- a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapNodeView.js
+++ b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class FillTheGapNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapQuestion.js b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapQuestion.js
index 920ecd2249c68dc2b54fe44afc441a8e7f759135..0df0e11b5fb26b5c1e4314087b26599e6e2db577 100644
--- a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapQuestion.js
+++ b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapQuestion.js
@@ -1,7 +1,7 @@
 import { injectable } from 'inversify';
 import { findWrapping } from 'prosemirror-transform';
 import { v4 as uuidv4 } from 'uuid';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 import helpers from '../MultipleChoiceQuestionService/helpers/helpers';
 
 @injectable()
diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapQuestionService.js b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapQuestionService.js
index 28c8b6c31be721a5b6de2237cf9a51dbd4f3e03c..83a30be94ab84665062ba2fda84ae91e0ca64e74 100644
--- a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapQuestionService.js
+++ b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapQuestionService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import FillTheGapQuestion from './FillTheGapQuestion';
 import fillTheGapContainerNode from './schema/fillTheGapContainerNode';
 import fillTheGapNode from './schema/fillTheGapNode';
diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js b/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js
index 0928bfd37deb33ca92db14f7a45d32f2a1409b8c..ea29271ed9c6c79eca1b47aeeaf3d0f90d786374 100644
--- a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js
+++ b/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js
@@ -1,10 +1,8 @@
 /* eslint-disable react/prop-types */
 
-import React, { useContext, useRef, useState, useEffect } from 'react';
+import React, { useContext, useRef, useState } from 'react';
 import styled from 'styled-components';
-import { TextSelection } from 'prosemirror-state';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { DocumentHelpers, WaxContext } from 'wax-prosemirror-core';
 
 const FeedBack = styled.div`
   color: black;
@@ -37,42 +35,11 @@ export default ({ node, view, getPos, readOnly }) => {
   const {
     pmViews: { main },
   } = context;
-  const [feedBack, setFeedBack] = useState(' ');
-  const [isFirstRun, setFirstRun] = useState(true);
-  const [typing, setTyping] = useState(false);
+  const [feedBack, setFeedBack] = useState(node.attrs.feedback);
   const feedBackRef = useRef(null);
 
-  useEffect(() => {
-    const allNodes = getNodes(main);
-    allNodes.forEach(singleNode => {
-      if (singleNode.node.attrs.id === node.attrs.id) {
-        if (!typing || context.transaction.meta.inputType === 'Redo') {
-          setFeedBack(singleNode.node.attrs.feedback);
-        }
-        if (!isFirstRun) {
-          if (singleNode.node.attrs.feedback === '')
-            setFeedBack(singleNode.node.attrs.feedback);
-        }
-      }
-    });
-  }, [getNodes(main)]);
-
-  const handleKeyDown = e => {
-    setTyping(true);
-    if (e.key === 'Backspace') {
-      main.dispatch(
-        main.state.tr.setSelection(
-          TextSelection.create(main.state.tr.doc, null),
-        ),
-      );
-    }
-  };
-
   const feedBackInput = () => {
     setFeedBack(feedBackRef.current.value);
-  };
-
-  const saveFeedBack = () => {
     const allNodes = getNodes(main);
     allNodes.forEach(singleNode => {
       if (singleNode.node.attrs.id === node.attrs.id) {
@@ -82,27 +49,18 @@ export default ({ node, view, getPos, readOnly }) => {
             feedback: feedBack,
           }),
         );
-        setFirstRun(false);
       }
     });
     return false;
   };
 
-  const onFocus = () => {
-    main.dispatch(
-      main.state.tr.setSelection(TextSelection.create(main.state.tr.doc, null)),
-    );
-  };
-
   return (
     <FeedBack>
       <FeedBackLabel>Feedback</FeedBackLabel>
       <FeedBackInput
+        autoFocus="autoFocus"
         disabled={readOnly}
-        onBlur={saveFeedBack}
         onChange={feedBackInput}
-        onFocus={onFocus}
-        onKeyDown={handleKeyDown}
         placeholder="Insert feedback"
         ref={feedBackRef}
         type="text"
diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/components/InputComponent.js b/wax-prosemirror-services/src/FillTheGapQuestionService/components/InputComponent.js
index 6c496ca743ba19848098639ffb9a755f0c4c1d3b..969603c88654cbff79f64ff37c5b5cd523844147 100644
--- a/wax-prosemirror-services/src/FillTheGapQuestionService/components/InputComponent.js
+++ b/wax-prosemirror-services/src/FillTheGapQuestionService/components/InputComponent.js
@@ -4,7 +4,6 @@ import React, { useContext, useRef, useState, useEffect } from 'react';
 import styled from 'styled-components';
 import { TextSelection } from 'prosemirror-state';
 import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
 
 const AnswerInput = styled.input`
   border: none;
@@ -25,13 +24,11 @@ export default ({ node, view, getPos }) => {
   } = context;
 
   const [answer, setAnswer] = useState(' ');
-  const [typing, setTyping] = useState(false);
   const answerRef = useRef(null);
 
   useEffect(() => {}, []);
 
   const handleKeyDown = e => {
-    setTyping(true);
     if (e.key === 'Backspace') {
       main.dispatch(
         main.state.tr.setSelection(
diff --git a/wax-prosemirror-services/src/FindAndReplaceService/FindAndReplace.js b/wax-prosemirror-services/src/FindAndReplaceService/FindAndReplace.js
index 552eccdab3c9274400418a152c12364d843dad28..420c43f1e8b14b5f82ab75dff5ea564aa237b7ca 100644
--- a/wax-prosemirror-services/src/FindAndReplaceService/FindAndReplace.js
+++ b/wax-prosemirror-services/src/FindAndReplaceService/FindAndReplace.js
@@ -3,7 +3,7 @@ import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
 import { injectable } from 'inversify';
 import { FindAndReplaceTool } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class FindAndReplace extends Tools {
diff --git a/wax-prosemirror-services/src/FindAndReplaceService/FindAndReplaceService.js b/wax-prosemirror-services/src/FindAndReplaceService/FindAndReplaceService.js
index 55843ca8e2ed0e30495e65c0229b6265ce92ab2c..b3819bbd792f9aa51e5937c24548563639cdd1df 100644
--- a/wax-prosemirror-services/src/FindAndReplaceService/FindAndReplaceService.js
+++ b/wax-prosemirror-services/src/FindAndReplaceService/FindAndReplaceService.js
@@ -1,5 +1,5 @@
+import { Service } from 'wax-prosemirror-core';
 import { FindAndReplacePlugin } from 'wax-prosemirror-plugins';
-import Service from '../Service';
 import FindAndReplace from './FindAndReplace';
 import './findAndReplace.css';
 
diff --git a/wax-prosemirror-services/src/FullScreenService/FullScreenService.js b/wax-prosemirror-services/src/FullScreenService/FullScreenService.js
index 3b1add8ceb1ed0cab3a24f202add48f215c420b6..ffb99230b7edfef4e67f4f085179f650a6834a04 100644
--- a/wax-prosemirror-services/src/FullScreenService/FullScreenService.js
+++ b/wax-prosemirror-services/src/FullScreenService/FullScreenService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import FullScreenTool from './FullScreenTool';
 
 class FullScreenService extends Service {
diff --git a/wax-prosemirror-services/src/FullScreenService/FullScreenTool.js b/wax-prosemirror-services/src/FullScreenService/FullScreenTool.js
index 80fdfe1b5238414cb66cc8c2e0cb2d181dc1646e..e26eaf75d02e202b4e70b07fc682fbb4cbd2db93 100644
--- a/wax-prosemirror-services/src/FullScreenService/FullScreenTool.js
+++ b/wax-prosemirror-services/src/FullScreenService/FullScreenTool.js
@@ -2,7 +2,7 @@ import React from 'react';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { FullScreen } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class FullScreenTool extends Tools {
diff --git a/wax-prosemirror-services/src/HighlightService/HightlightService.js b/wax-prosemirror-services/src/HighlightService/HightlightService.js
index f6963684330a7ac97d586131aa8b3c1f15c3a399..d02531af7c89c3a6f0baf55354c044804de35e22 100644
--- a/wax-prosemirror-services/src/HighlightService/HightlightService.js
+++ b/wax-prosemirror-services/src/HighlightService/HightlightService.js
@@ -1,19 +1,16 @@
-import Service from "../Service";
-import { highlightMark } from "wax-prosemirror-schema";
-import TextHighlightTool from "./TextHighlightTool";
+import { Service } from 'wax-prosemirror-core';
+import { highlightMark } from 'wax-prosemirror-schema';
+import TextHighlightTool from './TextHighlightTool';
 
 export default class HighlightService extends Service {
-
-    register() {
-        this.container.bind('TextHighlightTool').to(TextHighlightTool);
-        const createMark = this.container.get('CreateMark');
-        createMark(
-        {
-            highlight: highlightMark,
-        },
-        { toWaxSchema: true },
-        );
-    }
-
+  register() {
+    this.container.bind('TextHighlightTool').to(TextHighlightTool);
+    const createMark = this.container.get('CreateMark');
+    createMark(
+      {
+        highlight: highlightMark,
+      },
+      { toWaxSchema: true },
+    );
+  }
 }
-
diff --git a/wax-prosemirror-services/src/HighlightService/TextHighlightTool.js b/wax-prosemirror-services/src/HighlightService/TextHighlightTool.js
index 02790f888713637dbc85e954c58f429ad308ac16..318737156889a47d090df6094c1439fe099fa19d 100644
--- a/wax-prosemirror-services/src/HighlightService/TextHighlightTool.js
+++ b/wax-prosemirror-services/src/HighlightService/TextHighlightTool.js
@@ -1,10 +1,10 @@
 /* eslint-disable no-underscore-dangle */
+import React from 'react';
 import { injectable } from 'inversify';
 import { TextHighlightingTool } from 'wax-prosemirror-components';
 import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
-import React from 'react';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class TextHighlightTool extends Tools {
diff --git a/wax-prosemirror-services/src/ImageService/Image.js b/wax-prosemirror-services/src/ImageService/Image.js
index e88387a008a9ff3f3688824abf744887edb99a25..9333cb1182667f9bc546f2d95c1eba9659c827a5 100644
--- a/wax-prosemirror-services/src/ImageService/Image.js
+++ b/wax-prosemirror-services/src/ImageService/Image.js
@@ -4,8 +4,7 @@ import { v4 as uuidv4 } from 'uuid';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { ImageUpload } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 import fileUpload from './fileUpload';
 
 @injectable()
diff --git a/wax-prosemirror-services/src/ImageService/ImageService.js b/wax-prosemirror-services/src/ImageService/ImageService.js
index bb0b6cd5f4f66aead334ac1c0701b6e93a7983ae..efbb680b13729a69ce910d3a08d48a73578ab1ad 100644
--- a/wax-prosemirror-services/src/ImageService/ImageService.js
+++ b/wax-prosemirror-services/src/ImageService/ImageService.js
@@ -1,10 +1,10 @@
+import { Service } from 'wax-prosemirror-core';
 import {
   imageNode,
   figureCaptionNode,
   figureNode,
 } from 'wax-prosemirror-schema';
 import { PlaceHolderPlugin, captionPlugin } from 'wax-prosemirror-plugins';
-import Service from '../Service';
 import Image from './Image';
 import './image.css';
 import AltComponent from './AltComponent';
diff --git a/wax-prosemirror-services/src/InlineAnnotations/CodeService/Code.js b/wax-prosemirror-services/src/InlineAnnotations/CodeService/Code.js
index 2bb743e3431ae7ad61426dddcc12df93019855e9..025c5ba38267319d89a5bc35bfc0d907d0b9e4a2 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/CodeService/Code.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/CodeService/Code.js
@@ -1,7 +1,6 @@
 import { toggleMark } from 'prosemirror-commands';
-import { Commands } from 'wax-prosemirror-utilities';
 import { injectable } from 'inversify';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Code extends Tools {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/CodeService/CodeService.js b/wax-prosemirror-services/src/InlineAnnotations/CodeService/CodeService.js
index b17597f62f627a4e4e601dc64f6914de2fa7e301..22343f06c776d474d39a159a07f6d81500fb6948 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/CodeService/CodeService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/CodeService/CodeService.js
@@ -1,7 +1,7 @@
+import { Service } from 'wax-prosemirror-core';
 import { toggleMark } from 'prosemirror-commands';
 import { codeMark } from 'wax-prosemirror-schema';
 import Code from './Code';
-import Service from '../../Service';
 
 class CodeService extends Service {
   register() {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/Emphasis.js b/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/Emphasis.js
index 83df103b7385a6330de7144f68bbbb3a8f7e35bd..85279042df137f992984a8ec83b9ce12fa353fc8 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/Emphasis.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/Emphasis.js
@@ -1,7 +1,6 @@
 import { toggleMark } from 'prosemirror-commands';
-import { Commands } from 'wax-prosemirror-utilities';
 import { injectable } from 'inversify';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Emphasis extends Tools {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/EmphasisService.js b/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/EmphasisService.js
index 322d8c84610bb19841927e12094b551068c6ce37..48e3dac84c10ef89e27d17417fdac7e33c59547f 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/EmphasisService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/EmphasisService/EmphasisService.js
@@ -1,7 +1,7 @@
+import { Service } from 'wax-prosemirror-core';
 import { toggleMark } from 'prosemirror-commands';
 import { emphasisMark } from 'wax-prosemirror-schema';
 import Emphasis from './Emphasis';
-import Service from '../../Service';
 
 class EmphasisService extends Service {
   register() {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/InlineAnnotationsService.js b/wax-prosemirror-services/src/InlineAnnotations/InlineAnnotationsService.js
index ddf4f112bba3b43d1f3cb2b36907eb0ec146f88d..f0f252b6556e8b568ac449b3c63e75676e04cff0 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/InlineAnnotationsService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/InlineAnnotationsService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import InlineServices from './index';
 
 class InlineAnnotationsService extends Service {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCaps.js b/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCaps.js
index 7d005d0ec89fe2015dae688f4d9672fb8dca1187..8699c7ded749181b649deac09bb6c260fb64259f 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCaps.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCaps.js
@@ -1,7 +1,6 @@
 import { toggleMark } from 'prosemirror-commands';
-import { Commands } from 'wax-prosemirror-utilities';
 import { injectable } from 'inversify';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class SmallCaps extends Tools {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCapsService.js b/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCapsService.js
index 990e10f6ec669bbbaf0f81606ef9ebb65784fdf4..dcc5097f0774e32231ea684d660243a7c9b7f82e 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCapsService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/SmallCapsService/SmallCapsService.js
@@ -1,16 +1,16 @@
-import Service from "../../Service";
-import { smallcapsMark } from "wax-prosemirror-schema";
-import SmallCaps from "./SmallCaps";
+import { Service } from 'wax-prosemirror-core';
+import { smallcapsMark } from 'wax-prosemirror-schema';
+import SmallCaps from './SmallCaps';
 
 class SmallCapsService extends Service {
   register() {
-    this.container.bind("SmallCaps").to(SmallCaps);
-    const createMark = this.container.get("CreateMark");
+    this.container.bind('SmallCaps').to(SmallCaps);
+    const createMark = this.container.get('CreateMark');
     createMark(
       {
-        smallcaps: smallcapsMark
+        smallcaps: smallcapsMark,
       },
-      { toWaxSchema: true }
+      { toWaxSchema: true },
     );
   }
 }
diff --git a/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThrough.js b/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThrough.js
index 806d4d7a43690a795f34b0508a71ab6364855005..d6e431439b011dd2bb0783ecd7299f1c230cb226 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThrough.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThrough.js
@@ -1,7 +1,6 @@
 import { toggleMark } from 'prosemirror-commands';
-import { Commands } from 'wax-prosemirror-utilities';
 import { injectable } from 'inversify';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class StrikeThrough extends Tools {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThroughService.js b/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThroughService.js
index f7b757791ff800b8afb6119bc0fbf53d8b7fb036..f0bb9a51424c363745542eafaa72c7706781704e 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThroughService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/StrikeThroughService/StrikeThroughService.js
@@ -1,15 +1,16 @@
-import Service from "../../Service";
-import { strikethroughMark } from "wax-prosemirror-schema";
-import StrikeThrough from "./StrikeThrough";
+import { Service } from 'wax-prosemirror-core';
+import { strikethroughMark } from 'wax-prosemirror-schema';
+import StrikeThrough from './StrikeThrough';
+
 class StrikeThroughService extends Service {
   register() {
-    this.container.bind("StrikeThrough").to(StrikeThrough);
-    const createMark = this.container.get("CreateMark");
+    this.container.bind('StrikeThrough').to(StrikeThrough);
+    const createMark = this.container.get('CreateMark');
     createMark(
       {
-        strikethrough: strikethroughMark
+        strikethrough: strikethroughMark,
       },
-      { toWaxSchema: true }
+      { toWaxSchema: true },
     );
   }
 }
diff --git a/wax-prosemirror-services/src/InlineAnnotations/StrongService/Strong.js b/wax-prosemirror-services/src/InlineAnnotations/StrongService/Strong.js
index 4d0bd78fec8b2417644d16b94fc6b71710f33529..69a70104c473b48905766ee71757b048430b80be 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/StrongService/Strong.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/StrongService/Strong.js
@@ -1,7 +1,6 @@
 import { toggleMark } from 'prosemirror-commands';
-import { Commands } from 'wax-prosemirror-utilities';
 import { injectable } from 'inversify';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Strong extends Tools {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/StrongService/StrongService.js b/wax-prosemirror-services/src/InlineAnnotations/StrongService/StrongService.js
index 777be0c18dcc54a996cc4765a5634f1a2726ac7d..11ba9ec3b023fbf3bd5f6395d6e7fd86c3284a10 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 Service from '../../Service';
 import Strong from './Strong';
 import './strong.css';
 
diff --git a/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/Subscript.js b/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/Subscript.js
index ff6620cccf90698e5975ebb3b94c1428f6ca6c4c..48ea7981ac3ab4275508e6fe9475f2e17b40ff79 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/Subscript.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/Subscript.js
@@ -1,7 +1,6 @@
 import { toggleMark } from 'prosemirror-commands';
-import { Commands } from 'wax-prosemirror-utilities';
 import { injectable } from 'inversify';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Subscript extends Tools {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/SubscriptService.js b/wax-prosemirror-services/src/InlineAnnotations/SubscriptService/SubscriptService.js
index 8af17a229d726edf35a8cac3c536bb764f3aae89..f8496c1f4676515b1b5b00bbacfab6ab9bed194b 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 Service from '../../Service';
 import Subscript from './Subscript';
 import './subscript.css';
 
diff --git a/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/Superscript.js b/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/Superscript.js
index b03e675125f9e61b894ace75eed4c95b2c7d62e0..7cca0d786fef97fc51368028afd03074425020b4 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/Superscript.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/Superscript.js
@@ -1,7 +1,6 @@
 import { toggleMark } from 'prosemirror-commands';
-import { Commands } from 'wax-prosemirror-utilities';
 import { injectable } from 'inversify';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Superscript extends Tools {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/SuperscriptService.js b/wax-prosemirror-services/src/InlineAnnotations/SuperscriptService/SuperscriptService.js
index 849c75424caf636431f4581544abf34cc6a4d629..6d6637efb87d8baa877b5c0bc1bc0cd2ebb99ae9 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 Service from '../../Service';
 import Superscript from './Superscript';
 import './superscript.css';
 
diff --git a/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/Underline.js b/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/Underline.js
index 6919c40bbb90c7192ac9ad6fb52f902a39c6a9af..70ba64061ceccdf527d745396bbff60f11ab7022 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/Underline.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/Underline.js
@@ -1,7 +1,6 @@
 import { toggleMark } from 'prosemirror-commands';
-import { Commands } from 'wax-prosemirror-utilities';
 import { injectable } from 'inversify';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Underline extends Tools {
diff --git a/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/UnderlineService.js b/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/UnderlineService.js
index b6cec3a72374fec38a4b0fa313f67d9e3ef7a817..d9ca47959fd208660ee137fc1d383d7aabfba3f8 100644
--- a/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/UnderlineService.js
+++ b/wax-prosemirror-services/src/InlineAnnotations/UnderlineService/UnderlineService.js
@@ -1,7 +1,7 @@
+import { Service } from 'wax-prosemirror-core';
 import { toggleMark } from 'prosemirror-commands';
 import { underlineMark } from 'wax-prosemirror-schema';
 import Underline from './Underline';
-import Service from '../../Service';
 
 class UnderlineService extends Service {
   register() {
diff --git a/wax-prosemirror-services/src/LayoutService/LayoutService.js b/wax-prosemirror-services/src/LayoutService/LayoutService.js
deleted file mode 100644
index 872feec5bfcba3afda88c368a4ec9b8b3ae857fa..0000000000000000000000000000000000000000
--- a/wax-prosemirror-services/src/LayoutService/LayoutService.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import Service from "../Service";
-import Layout from "./Layout";
-
-export default class LayoutService extends Service {
-  name = "LayoutService";
-
-  register() {
-    this.container
-      .bind("Layout")
-      .to(Layout)
-      .inSingletonScope();
-  }
-}
diff --git a/wax-prosemirror-services/src/LinkService/LinkService.js b/wax-prosemirror-services/src/LinkService/LinkService.js
index 9230852441bce0f4976c6a29e6c80f3ba6a781f8..8701739c48eb0a657b080e2844542828827f01f5 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 Service from '../Service';
 import LinkTool from './LinkTool';
 import linkRule from './LinkInputRule';
 
diff --git a/wax-prosemirror-services/src/LinkService/LinkTool.js b/wax-prosemirror-services/src/LinkService/LinkTool.js
index f9ee82a4051e3193b3b9c3da1e1bdc57970b52b3..13ea2701f5776aebb3b6177afbc078872450c7f8 100644
--- a/wax-prosemirror-services/src/LinkService/LinkTool.js
+++ b/wax-prosemirror-services/src/LinkService/LinkTool.js
@@ -1,7 +1,6 @@
 import { injectable } from 'inversify';
 import { toggleMark } from 'prosemirror-commands';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class LinkTool extends Tools {
diff --git a/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js b/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js
index 335b8347c538e1aead0cac2cb0b32bae0f6acd45..943007968dd3632acc4aa3deb2aec7e530013030 100644
--- a/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js
+++ b/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js
@@ -1,8 +1,7 @@
 import { injectable } from 'inversify';
 import { icons } from 'wax-prosemirror-components';
 import { wrapInList } from 'prosemirror-schema-list';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class BulletList extends Tools {
diff --git a/wax-prosemirror-services/src/ListsService/BulletListService/BulletListService.js b/wax-prosemirror-services/src/ListsService/BulletListService/BulletListService.js
index 24565693018a68179b36f3bb603b345aed962b69..a7f0b906db9cec0345b60bbbb2b7a89562c257cd 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 Service from '../../Service';
 import BulletList from './BulletList';
 
 class BulletListService extends Service {
diff --git a/wax-prosemirror-services/src/ListsService/JoinUpService/JoinUp.js b/wax-prosemirror-services/src/ListsService/JoinUpService/JoinUp.js
index ef44b3043428611478e29c5a633e37dda727c3c0..2aa6887d0acebb9de0ac162833aabe7bfcfe4b77 100644
--- a/wax-prosemirror-services/src/ListsService/JoinUpService/JoinUp.js
+++ b/wax-prosemirror-services/src/ListsService/JoinUpService/JoinUp.js
@@ -1,6 +1,6 @@
 import { joinUp } from 'prosemirror-commands';
 import { injectable } from 'inversify';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class JoinUp extends Tools {
diff --git a/wax-prosemirror-services/src/ListsService/JoinUpService/JoinUpService.js b/wax-prosemirror-services/src/ListsService/JoinUpService/JoinUpService.js
index 2d46d45bf06c87ecd6a55133873cbf280dc16099..f354fdf4fb4b068a126c709385cc73f5849723ff 100644
--- a/wax-prosemirror-services/src/ListsService/JoinUpService/JoinUpService.js
+++ b/wax-prosemirror-services/src/ListsService/JoinUpService/JoinUpService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import JoinUp from './JoinUp';
 
 class JoinUpService extends Service {
diff --git a/wax-prosemirror-services/src/ListsService/LiftService/Lift.js b/wax-prosemirror-services/src/ListsService/LiftService/Lift.js
index b0846ce458b8f7ae1865da76575942f4120d00bc..9a9a85bea4681a534d90526a27af4a6316236a3f 100644
--- a/wax-prosemirror-services/src/ListsService/LiftService/Lift.js
+++ b/wax-prosemirror-services/src/ListsService/LiftService/Lift.js
@@ -1,6 +1,6 @@
 import { lift } from 'prosemirror-commands';
 import { injectable } from 'inversify';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Lift extends Tools {
diff --git a/wax-prosemirror-services/src/ListsService/LiftService/LiftService.js b/wax-prosemirror-services/src/ListsService/LiftService/LiftService.js
index f877e1123a8b60bd642e6f3ad72f11196aacc669..75e3254e2d6d69e2b52c6722e69344453fb5758a 100644
--- a/wax-prosemirror-services/src/ListsService/LiftService/LiftService.js
+++ b/wax-prosemirror-services/src/ListsService/LiftService/LiftService.js
@@ -1,5 +1,5 @@
+import { Service } from 'wax-prosemirror-core';
 import { liftListItem, sinkListItem } from 'prosemirror-schema-list';
-import Service from '../../Service';
 import Lift from './Lift';
 
 class LiftService extends Service {
diff --git a/wax-prosemirror-services/src/ListsService/ListItemService/ListItemService.js b/wax-prosemirror-services/src/ListsService/ListItemService/ListItemService.js
index 776f5315f48b375797ba4a5b023fb9dcccd636b1..973b7508605e34721b1facc8769ecccbe3c81ba5 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 Service from '../../Service';
 
 class ListItemService extends Service {
   register() {
diff --git a/wax-prosemirror-services/src/ListsService/ListsService.js b/wax-prosemirror-services/src/ListsService/ListsService.js
index 88f6490252c651505dd39fc9301f6aff492e4399..65b2c75839a99b10c241f2a216150de7c610d712 100644
--- a/wax-prosemirror-services/src/ListsService/ListsService.js
+++ b/wax-prosemirror-services/src/ListsService/ListsService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import ListsServices from './index';
 import './lists.css';
 
diff --git a/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js b/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js
index 44c7caac043560a34f18e5c32cc0bbb47ac126b1..7a7bb38ef9960279cbfd5bffbaa51ea7fd434159 100644
--- a/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js
+++ b/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js
@@ -1,7 +1,6 @@
 import { injectable } from 'inversify';
 import { wrapInList } from 'prosemirror-schema-list';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class OrderedList extends Tools {
diff --git a/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedListService.js b/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedListService.js
index 0919a743d8fc7b3bb4303b96c5d736474ab89bd8..1d519e9efe6ede9538bf3efea770d6b78e6cd87c 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 Service from '../../Service';
 import OrderedList from './OrderedList';
 
 class OrderedListService extends Service {
diff --git a/wax-prosemirror-services/src/MatchingService/MatchingContainerNodeView.js b/wax-prosemirror-services/src/MatchingService/MatchingContainerNodeView.js
index 387c6ccc37b88a493197affc95d3f51e056a3ab5..1eb1037359be1e64c88bbacb89e8a6f8e99f40ed 100644
--- a/wax-prosemirror-services/src/MatchingService/MatchingContainerNodeView.js
+++ b/wax-prosemirror-services/src/MatchingService/MatchingContainerNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class MatchingContainerNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MatchingService/MatchingOptionNodeView.js b/wax-prosemirror-services/src/MatchingService/MatchingOptionNodeView.js
index f5a9656cbef57d6f32dc2a190cf89c46c5735a11..9d5d78d1d4afcad7cd453fc37870ffc42f0bdcd7 100644
--- a/wax-prosemirror-services/src/MatchingService/MatchingOptionNodeView.js
+++ b/wax-prosemirror-services/src/MatchingService/MatchingOptionNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class MatchingOptionNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MatchingService/MatchingQuestion.js b/wax-prosemirror-services/src/MatchingService/MatchingQuestion.js
index 552532f99030ded1d54abcfc12de4c7bc48ace4a..b79c4b9cc2e1be2c4bf4e3fa5c4b1c1e3ce45bc3 100644
--- a/wax-prosemirror-services/src/MatchingService/MatchingQuestion.js
+++ b/wax-prosemirror-services/src/MatchingService/MatchingQuestion.js
@@ -3,8 +3,8 @@ import { Fragment } from 'prosemirror-model';
 import { findWrapping } from 'prosemirror-transform';
 import { TextSelection } from 'prosemirror-state';
 import { v4 as uuidv4 } from 'uuid';
+import { Tools } from 'wax-prosemirror-core';
 import helpers from '../MultipleChoiceQuestionService/helpers/helpers';
-import Tools from '../lib/Tools';
 
 @injectable()
 class MatchingQuestion extends Tools {
diff --git a/wax-prosemirror-services/src/MatchingService/MatchingService.js b/wax-prosemirror-services/src/MatchingService/MatchingService.js
index 61c85f60fc53a3f89e77732b62e66f9676e0ca90..1ae4555f37de561a404d8350e5aaee0242427441 100644
--- a/wax-prosemirror-services/src/MatchingService/MatchingService.js
+++ b/wax-prosemirror-services/src/MatchingService/MatchingService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import MatchingQuestion from './MatchingQuestion';
 import matchingContainerNode from './schema/matchingContainerNode';
 import matchingOptionNode from './schema/matchingOptionNode';
diff --git a/wax-prosemirror-services/src/MatchingService/components/DropDownComponent.js b/wax-prosemirror-services/src/MatchingService/components/DropDownComponent.js
index e8f921166516974e98997672d1bec162ae39048b..9461c29d34327e926e9bf49972592bca4f9ef2ab 100644
--- a/wax-prosemirror-services/src/MatchingService/components/DropDownComponent.js
+++ b/wax-prosemirror-services/src/MatchingService/components/DropDownComponent.js
@@ -1,10 +1,8 @@
 /* eslint-disable no-underscore-dangle */
-import React, { useContext, useMemo, useEffect, useState } from 'react';
+import React, { useContext, useMemo, useState } from 'react';
 import styled from 'styled-components';
-import { find } from 'lodash';
 import { ReactDropDownStyles } from 'wax-prosemirror-components';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import Dropdown from 'react-dropdown';
 import { v4 as uuidv4 } from 'uuid';
 
diff --git a/wax-prosemirror-services/src/MatchingService/components/FeedbackComponent.js b/wax-prosemirror-services/src/MatchingService/components/FeedbackComponent.js
index 7e95320cee5ac6c27b2b1edddd1695a306504abc..0d9bbec922a7b8142729f8c5ab7385c66d4e927c 100644
--- a/wax-prosemirror-services/src/MatchingService/components/FeedbackComponent.js
+++ b/wax-prosemirror-services/src/MatchingService/components/FeedbackComponent.js
@@ -1,10 +1,8 @@
 /* eslint-disable react/prop-types */
 
-import React, { useContext, useRef, useState, useEffect } from 'react';
+import React, { useContext, useRef, useState } from 'react';
 import styled from 'styled-components';
-import { TextSelection } from 'prosemirror-state';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 
 const FeedBack = styled.div`
   color: black;
@@ -36,42 +34,11 @@ export default ({ node, view, getPos, readOnly }) => {
   const {
     pmViews: { main },
   } = context;
-  const [feedBack, setFeedBack] = useState('');
-  const [isFirstRun, setFirstRun] = useState(true);
-  const [typing, setTyping] = useState(false);
+  const [feedBack, setFeedBack] = useState(node.attrs.feedback);
   const feedBackRef = useRef(null);
 
-  useEffect(() => {
-    const allNodes = getNodes(main);
-    allNodes.forEach(singleNode => {
-      if (singleNode.node.attrs.id === node.attrs.id) {
-        if (!typing || context.transaction.meta.inputType === 'Redo') {
-          setFeedBack(singleNode.node.attrs.feedback);
-        }
-        if (!isFirstRun) {
-          if (singleNode.node.attrs.feedback === '')
-            setFeedBack(singleNode.node.attrs.feedback);
-        }
-      }
-    });
-  }, [getNodes(main)]);
-
-  const handleKeyDown = e => {
-    setTyping(true);
-    if (e.key === 'Backspace') {
-      main.dispatch(
-        main.state.tr.setSelection(
-          TextSelection.create(main.state.tr.doc, null),
-        ),
-      );
-    }
-  };
-
   const feedBackInput = () => {
     setFeedBack(feedBackRef.current.value);
-  };
-
-  const saveFeedBack = () => {
     const allNodes = getNodes(main);
     allNodes.forEach(singleNode => {
       if (singleNode.node.attrs.id === node.attrs.id) {
@@ -81,27 +48,18 @@ export default ({ node, view, getPos, readOnly }) => {
             feedback: feedBack,
           }),
         );
-        setFirstRun(false);
       }
     });
     return false;
   };
 
-  const onFocus = () => {
-    main.dispatch(
-      main.state.tr.setSelection(TextSelection.create(main.state.tr.doc, null)),
-    );
-  };
-
   return (
     <FeedBack>
       <FeedBackLabel>Feedback</FeedBackLabel>
       <FeedBackInput
+        autoFocus="autoFocus"
         disabled={readOnly}
-        onBlur={saveFeedBack}
         onChange={feedBackInput}
-        onFocus={onFocus}
-        onKeyDown={handleKeyDown}
         placeholder="Insert feedback"
         ref={feedBackRef}
         type="text"
diff --git a/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js b/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js
index 64248282a210bba24b50158a59535df2281f2194..77a27ccd10b86ee4c0c31d0f2ed87f73e7252a9d 100644
--- a/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js
+++ b/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js
@@ -2,9 +2,8 @@
 /* eslint-disable react/prop-types */
 import React, { useContext, useEffect, useRef, useState } from 'react';
 import { v4 as uuidv4 } from 'uuid';
-import { WaxContext } from 'wax-prosemirror-core';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import { Icon } from 'wax-prosemirror-components';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
 import styled from 'styled-components';
 import FeedbackComponent from './FeedbackComponent';
 import ContainerEditor from './ContainerEditor';
diff --git a/wax-prosemirror-services/src/MatchingService/components/TestModeDropDownComponent.js b/wax-prosemirror-services/src/MatchingService/components/TestModeDropDownComponent.js
index bb7a38eb82e1947ff2cabb46fe09f90dc9d95081..624127b9e5c3afa26b983da0117d6896cd522beb 100644
--- a/wax-prosemirror-services/src/MatchingService/components/TestModeDropDownComponent.js
+++ b/wax-prosemirror-services/src/MatchingService/components/TestModeDropDownComponent.js
@@ -3,8 +3,7 @@ import React, { useContext, useMemo, useEffect, useState } from 'react';
 import styled from 'styled-components';
 import { find } from 'lodash';
 import { ReactDropDownStyles } from 'wax-prosemirror-components';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import Dropdown from 'react-dropdown';
 import { v4 as uuidv4 } from 'uuid';
 
diff --git a/wax-prosemirror-services/src/MathService/MathService.js b/wax-prosemirror-services/src/MathService/MathService.js
index 5e0e264981f4d4744a75acf365deb0826be4bbdb..c0f231d97bb57fc9bb5c31821b375ccbc5186941 100644
--- a/wax-prosemirror-services/src/MathService/MathService.js
+++ b/wax-prosemirror-services/src/MathService/MathService.js
@@ -1,10 +1,10 @@
+import { Service } from 'wax-prosemirror-core';
 import {
   mathDisplayNode,
   mathInlineNode,
   mathSelectMark,
 } from 'wax-prosemirror-schema';
 import { mathPlugin, mathSelectPlugin } from 'wax-prosemirror-plugins';
-import Service from '../Service';
 import inlineInputRule from './InlineInputRule';
 import blockInputRule from './BlockInputRule';
 import './math.css';
diff --git a/wax-prosemirror-services/src/ModalService/ModalService.js b/wax-prosemirror-services/src/ModalService/ModalService.js
index 546a52ffb503c2a5b9e4c5dc2069ee874c568760..f2709b0fbbf99364a6e736191f602f85ac321243 100644
--- a/wax-prosemirror-services/src/ModalService/ModalService.js
+++ b/wax-prosemirror-services/src/ModalService/ModalService.js
@@ -1,21 +1,21 @@
-import Service from "../Service";
-import ModalPlugin from "./pmPlugins/ModalPlugin";
-import ModalComponent from "./ModalComponent";
-const PLUGIN_KEY = "overlay";
+import { Service } from 'wax-prosemirror-core';
+import ModalPlugin from './pmPlugins/ModalPlugin';
+import ModalComponent from './ModalComponent';
+const PLUGIN_KEY = 'overlay';
 
 export default class ModalService extends Service {
   boot() {
     this.app.PmPlugins.add(PLUGIN_KEY, ModalPlugin(PLUGIN_KEY));
   }
   register() {
-    this.container.bind("CreateModal").toFactory(context => {
+    this.container.bind('CreateModal').toFactory(context => {
       return (Component, pluginName) => {
-        const PmPlugins = context.container.get("PmPlugins");
+        const PmPlugins = context.container.get('PmPlugins');
         const plugin = PmPlugins.get(pluginName);
-        const layout = context.container.get("Layout");
+        const layout = context.container.get('Layout');
         layout.addComponent(
-          "editorOverlays",
-          ModalComponent(Component, plugin)
+          'editorOverlays',
+          ModalComponent(Component, plugin),
         );
       };
     });
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceContainerNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceContainerNodeView.js
index f22b73d48ee926ec65e48aaadc0b167933644fd4..e914da795cc19e327328316c3990a2c6181326a1 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceContainerNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceContainerNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class MultipleChoiceContainerNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceNodeView.js
index e72d3e88be41c1a32560ca13376c9fc085f0a826..78a157c9c8e2d10c4f229f9d7f020c7e2484347d 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class MultipleChoiceNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
index 07ecc63790c5a885a1ac2db57830077db8413743..c5dcabbb11629f41c174e5ad55964a54afcd9c65 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
@@ -1,11 +1,10 @@
 import React from 'react';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
-import { Commands } from 'wax-prosemirror-utilities';
 import { v4 as uuidv4 } from 'uuid';
+import { Commands, Tools } from 'wax-prosemirror-core';
 import helpers from './helpers/helpers';
 import ToolBarBtn from './components/ToolBarBtn';
-import Tools from '../lib/Tools';
 
 @injectable()
 class MultipleChoiceQuestion extends Tools {
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
index c2a28b8c6b2ff4e660770f005c5d440805c87421..d27735b7ff36496872f073f2e4bb29ee02eaf852 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import MultipleChoiceQuestion from './MultipleChoiceQuestion';
 import multipleChoiceNode from './schema/multipleChoiceNode';
 import multipleChoiceContainerNode from './schema/multipleChoiceContainerNode';
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectContainerNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectContainerNodeView.js
index 2d79fe7426fdcfaad1d050d93985013f451d3cb7..c04f4e6160e4d0a4dd99d3602ec99f77093570bb 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectContainerNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectContainerNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class MultipleChoiceSingleCorrectContainerNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectNodeView.js
index e650e3a32c716e8a10e3bdaf92a4faa57daba9c0..fc7b76f69f23642a21f29add5ed8f9262a3d89f9 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class MultipleChoiceSingleCorrectNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js
index 38e8264829deb17635c0317268873d5f3894507f..078aa4d7e4884b32ff7920f6dc5ecf475b90fc46 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js
@@ -1,11 +1,10 @@
 import React from 'react';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
-import { Commands } from 'wax-prosemirror-utilities';
 import { v4 as uuidv4 } from 'uuid';
+import { Commands, Tools } from 'wax-prosemirror-core';
 import ToolBarBtn from '../components/ToolBarBtn';
 import helpers from '../helpers/helpers';
-import Tools from '../../lib/Tools';
 
 @injectable()
 class MultipleChoiceSingleCorrectQuestion extends Tools {
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestionService.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestionService.js
index 9f1901ab66720b24f67e01e24b3b12b49111c931..2fa789738c2f51dc5aeb8b2dd572e44e7c8a806f 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestionService.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestionService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import MultipleChoiceSingleCorrectQuestion from './MultipleChoiceSingleCorrectQuestion';
 import multipleChoiceSingleCorrectNode from './schema/multipleChoiceSingleCorrectNode';
 import multipleChoiceSingleCorrectContainerNode from './schema/multipleChoiceSingleCorrectContainerNode';
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/QuestionMultipleSingleNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/QuestionMultipleSingleNodeView.js
index 32b24344c1f8ae3025af8cd6366d389ecec4016d..4a69d56140712ffd4fb20c66d869231f932e7c90 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/QuestionMultipleSingleNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/QuestionMultipleSingleNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class QuestionMultipleSingleNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js
index 71c67b37b93ab78f6ad00e4db30a1688f1794d62..de669eae806d599f56b203beece58251d025c06f 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js
@@ -2,8 +2,7 @@
 import React, { useContext } from 'react';
 import styled from 'styled-components';
 import { TextSelection, NodeSelection } from 'prosemirror-state';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import { Fragment } from 'prosemirror-model';
 import { v4 as uuidv4 } from 'uuid';
 import { Icon } from 'wax-prosemirror-components';
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js
index e29755eff0cce192cbc59111bfc6c003e1b1423e..5ba5ce37ddbf2e9ba4170d771d27abe9482995d9 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js
@@ -1,8 +1,7 @@
 /* eslint-disable react/prop-types */
 
 import React, { useState, useContext, useEffect } from 'react';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import { NodeSelection } from 'prosemirror-state';
 import YesNoSwitch from '../../components/YesNoSwitch';
 
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/QuestionNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/QuestionNodeView.js
index 1e122f446036de8e76fe16da92facd442280d536..71d2ec94ab63d397fc943621bd23b1871de9798d 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/QuestionNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/QuestionNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class QuestionNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/QuestionTrueFalseNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/QuestionTrueFalseNodeView.js
index 11fa2e31c52373e06b7af51fa5ea6e8f322fa8f3..b5f13a61fe2962470687a80a2e8590703434bd92 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/QuestionTrueFalseNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/QuestionTrueFalseNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class QuestionTrueFalseNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseContainerNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseContainerNodeView.js
index 87e1f2816258c748f248ea11813a199ddeb34896..6e01a409bad651715cf1170cae465692d118fe61 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseContainerNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseContainerNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class TrueFalseContainerNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseNodeView.js
index 88b51be2adf8a974c16b5bbc541bb4a4dc38c69d..99c31163c2a97f8a3db869f343fecf8640a9d0b9 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class TrueFalseNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js
index 741db1d27cfbfb2ca615ace14619d1a47bf2ca4e..b7fd6b8f2a4902918a51424a0be5e7dfc49674a6 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js
@@ -1,11 +1,10 @@
 import React from 'react';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
-import { Commands } from 'wax-prosemirror-utilities';
 import { v4 as uuidv4 } from 'uuid';
+import { Commands, Tools } from 'wax-prosemirror-core';
 import ToolBarBtn from '../components/ToolBarBtn';
 import helpers from '../helpers/helpers';
-import Tools from '../../lib/Tools';
 
 @injectable()
 class TrueFalseQuestion extends Tools {
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestionService.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestionService.js
index 91aa037e71bdd6600fa05bc613e10d0906293e13..857e451bb49f4f47cd41c081cefa2d1e234fe611 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestionService.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestionService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import TrueFalseQuestion from './TrueFalseQuestion';
 import trueFalseNode from './schema/trueFalseNode';
 import questionTrueFalseNode from './schema/questionTrueFalseNode';
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js
index 76e66cd82a9deea15d0f921fe11bbdb06367a64b..74a8a0415f9a226859f4cd5d2f94dfe9af11d137 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js
@@ -2,8 +2,7 @@
 import React, { useContext } from 'react';
 import styled from 'styled-components';
 import { TextSelection, NodeSelection } from 'prosemirror-state';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import { Icon } from 'wax-prosemirror-components';
 import { Fragment } from 'prosemirror-model';
 import { v4 as uuidv4 } from 'uuid';
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/SwitchComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/SwitchComponent.js
index 1d7c9b5b0089eff1031004605a21819917aa6e67..9b0dd0edc964ac252235a35881b8bb80c64f2290 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/SwitchComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/SwitchComponent.js
@@ -1,8 +1,7 @@
 /* eslint-disable react/prop-types */
 
 import React, { useState, useContext, useEffect } from 'react';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import TrueFalseSwitch from './TrueFalseSwitch';
 
 const CustomSwitch = ({ node, getPos }) => {
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/QuestionTrueFalseSingleNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/QuestionTrueFalseSingleNodeView.js
index d7d1919b3e9062cc1fa8a73fed3bf17e5d39369b..9625f18c56431b93906038ffc300f7ef3f77a031 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/QuestionTrueFalseSingleNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/QuestionTrueFalseSingleNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class QuestionTrueFalseSingleNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectContainerNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectContainerNodeView.js
index 0d8e5e3de984de955d31765df6ef5c40a304dbe9..4a815e5b39644bd4afe1ad973345947ad8465c7c 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectContainerNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectContainerNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class TrueFalseSingleCorrectContainerNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js
index 31ec0d59e54132d54b19f50ec41794fa484cfc65..23e69427fd92cd7c5fe2b79d3a21d3bd89eb6ca7 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class TrueFalseSingleCorrectNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js
index 2a6dd28abeef3aafa4c024f6ce06624944c593be..ee320f1eb54f0db8c293117943ddf3d4e82175a5 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js
@@ -1,11 +1,10 @@
 import React from 'react';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
-import { Commands } from 'wax-prosemirror-utilities';
 import { v4 as uuidv4 } from 'uuid';
+import { Commands, Tools } from 'wax-prosemirror-core';
 import ToolBarBtn from '../components/ToolBarBtn';
 import helpers from '../helpers/helpers';
-import Tools from '../../lib/Tools';
 
 @injectable()
 class TrueFalseSingleCorrectQuestion extends Tools {
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestionService.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestionService.js
index 4f38a73f3d2c48f1075e8f75360bd8737dc994d4..c63d1f5ddfb828fda79ab56cdf846701262a4df3 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestionService.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestionService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import TrueFalseSingleCorrectQuestion from './TrueFalseSingleCorrectQuestion';
 import trueFalseSingleCorrectNode from './schema/trueFalseSingleCorrectNode';
 import trueFalseSingleCorrectContainerNode from './schema/trueFalseSingleCorrectContainerNode';
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js
index 8ce1dcdad62130c13542ab0b713b910bd1e306b8..da0b7f1dea537d1defaf2ff49752cea45d58e1cc 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js
@@ -2,8 +2,7 @@
 import React, { useContext } from 'react';
 import styled from 'styled-components';
 import { TextSelection, NodeSelection } from 'prosemirror-state';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import { Icon } from 'wax-prosemirror-components';
 import { Fragment } from 'prosemirror-model';
 import { v4 as uuidv4 } from 'uuid';
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/SwitchComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/SwitchComponent.js
index 7dcb3653dec051841bdd6c5c4f42731cb7b6b127..50e7360b717905a720769fc27089a39e987779ec 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/SwitchComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/SwitchComponent.js
@@ -1,8 +1,7 @@
 /* eslint-disable react/prop-types */
 
 import React, { useState, useContext, useEffect } from 'react';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import { NodeSelection } from 'prosemirror-state';
 import TrueFalseSwitch from '../../TrueFalseQuestionService/components/TrueFalseSwitch';
 
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/AnswerComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/AnswerComponent.js
index d4a73181b8a8182d0e640b1bb8fd1edda34b43df..f3736426711168b1439dc8c71aa3aefd505a94c6 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/AnswerComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/AnswerComponent.js
@@ -2,8 +2,7 @@
 import React, { useContext } from 'react';
 import styled from 'styled-components';
 import { TextSelection, NodeSelection } from 'prosemirror-state';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import { Fragment } from 'prosemirror-model';
 import { v4 as uuidv4 } from 'uuid';
 import { Icon } from 'wax-prosemirror-components';
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js
index 9de6f0ca48ca74626a494bb2448b048e05fccdd4..13db32f60aee471a275ef360644e2a8074d82b02 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js
@@ -1,10 +1,8 @@
 /* eslint-disable react/prop-types */
 
-import React, { useContext, useRef, useState, useEffect } from 'react';
+import React, { useContext, useRef, useState } from 'react';
 import styled from 'styled-components';
-import { TextSelection } from 'prosemirror-state';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 
 const FeedBack = styled.div`
   color: black;
@@ -36,42 +34,11 @@ export default ({ node, view, getPos, readOnly }) => {
     pmViews: { main },
   } = context;
 
-  const [feedBack, setFeedBack] = useState(' ');
-  const [isFirstRun, setFirstRun] = useState(true);
-  const [typing, setTyping] = useState(false);
+  const [feedBack, setFeedBack] = useState(node.attrs.feedback);
   const feedBackRef = useRef(null);
 
-  useEffect(() => {
-    const allNodes = getNodes(main);
-    allNodes.forEach(singleNode => {
-      if (singleNode.node.attrs.id === node.attrs.id) {
-        if (!typing || context.transaction.meta.inputType === 'Redo') {
-          setFeedBack(singleNode.node.attrs.feedback);
-        }
-        if (!isFirstRun) {
-          if (singleNode.node.attrs.feedback === '')
-            setFeedBack(singleNode.node.attrs.feedback);
-        }
-      }
-    });
-  }, [getNodes(main)]);
-
-  const handleKeyDown = e => {
-    setTyping(true);
-    if (e.key === 'Backspace') {
-      main.dispatch(
-        main.state.tr.setSelection(
-          TextSelection.create(main.state.tr.doc, null),
-        ),
-      );
-    }
-  };
-
   const feedBackInput = () => {
     setFeedBack(feedBackRef.current.value);
-  };
-
-  const saveFeedBack = () => {
     const allNodes = getNodes(main);
     allNodes.forEach(singleNode => {
       if (singleNode.node.attrs.id === node.attrs.id) {
@@ -81,26 +48,17 @@ export default ({ node, view, getPos, readOnly }) => {
             feedback: feedBack,
           }),
         );
-        setFirstRun(false);
       }
     });
     return false;
   };
 
-  const onFocus = () => {
-    main.dispatch(
-      main.state.tr.setSelection(TextSelection.create(main.state.tr.doc, null)),
-    );
-  };
-
   return (
     <FeedBack>
       <FeedBackLabel>Feedback</FeedBackLabel>
       <FeedBackInput
-        onBlur={saveFeedBack}
+        autoFocus="autoFocus"
         onChange={feedBackInput}
-        onFocus={onFocus}
-        onKeyDown={handleKeyDown}
         placeholder="Insert feedback"
         readOnly={readOnly}
         ref={feedBackRef}
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js
index a046213c51b3675f74305a2ec10e3bfbcd8bd335..f93f57e83090308138916a5700373bbf4b656d68 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js
@@ -1,8 +1,7 @@
 /* eslint-disable react/prop-types */
 
 import React, { useState, useContext, useEffect } from 'react';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import YesNoSwitch from './YesNoSwitch';
 
 const CustomSwitch = ({ node, getPos }) => {
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/helpers/helpers.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/helpers/helpers.js
index c2ca1ce7550d12b7a14631911a9dba38b41ea668..221982fc512a9a86c6452ebd95660a00d8ef7deb 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/helpers/helpers.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/helpers/helpers.js
@@ -1,6 +1,6 @@
 import { v4 as uuidv4 } from 'uuid';
 import { TextSelection } from 'prosemirror-state';
-import { Commands } from 'wax-prosemirror-utilities';
+import { Commands } from 'wax-prosemirror-core';
 import { Fragment } from 'prosemirror-model';
 import { findWrapping } from 'prosemirror-transform';
 
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceNode.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceNode.js
index 5eea97cc09e8e5255771803c2f4cc866d3306062..daf0168fab9ba5dfdcb57788072292fa1f4c7ec3 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceNode.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceNode.js
@@ -7,7 +7,7 @@ const multipleChoiceNode = {
     feedback: { default: '' },
   },
   group: 'block questions',
-  content: 'block+',
+  content: 'block*',
   defining: true,
   parseDOM: [
     {
diff --git a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDown.js b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDown.js
index 7c0e7f846a95f2f8941e6463a87cb756349e0403..6f00ec92eb929b0e465c6d4bd861c01b6b94dba0 100644
--- a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDown.js
+++ b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDown.js
@@ -2,7 +2,7 @@ import { injectable } from 'inversify';
 import { Fragment } from 'prosemirror-model';
 import { NodeSelection } from 'prosemirror-state';
 import { v4 as uuidv4 } from 'uuid';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class CreateDropDown extends Tools {
diff --git a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js
index 1cc337257460860f6892a67aaed47e17e051ff9e..6c0dbefd4c5f8a7868b744ed0e0c8a78f6c3f9b4 100644
--- a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js
+++ b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import CreateDropDown from './CreateDropDown';
 import multipleDropDownOptionNode from '../schema/multipleDropDownOptionNode';
 import MultipleDropDownNodeView from './MultipleDropDownNodeView';
diff --git a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/MultipleDropDownNodeView.js b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/MultipleDropDownNodeView.js
index aa8ac0a39f74b1bca0df1dc9bb014caba13a8b78..7b1d397d6c586e40ccc013c4d11c000514f06873 100644
--- a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/MultipleDropDownNodeView.js
+++ b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/MultipleDropDownNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class MultipleDropDownNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownContainerNodeView.js b/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownContainerNodeView.js
index ed50a9c56312c7057bf3802ae9a28d74617276f4..fe43906a40ab6a4841cbc03c275aa607e8d873ad 100644
--- a/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownContainerNodeView.js
+++ b/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownContainerNodeView.js
@@ -1,4 +1,4 @@
-import QuestionsNodeView from '../lib/helpers/QuestionsNodeView';
+import { QuestionsNodeView } from 'wax-prosemirror-core';
 
 export default class MultipleDropDownContainerNodeView extends QuestionsNodeView {
   constructor(
diff --git a/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownQuestion.js b/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownQuestion.js
index 79bfaf9d456da8bcb660360d04ae649d33224dbd..ed6090e51cb3347ab4ee268c378ab2c0fc34111e 100644
--- a/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownQuestion.js
+++ b/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownQuestion.js
@@ -1,7 +1,7 @@
 import { injectable } from 'inversify';
 import { findWrapping } from 'prosemirror-transform';
 import { v4 as uuidv4 } from 'uuid';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 import helpers from '../MultipleChoiceQuestionService/helpers/helpers';
 
 @injectable()
diff --git a/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownService.js b/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownService.js
index f2931d45939af4b56d2450d5a5e4bd619dcfecd5..60894a91817fa81cfb7073cc17bd8ae06c068d73 100644
--- a/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownService.js
+++ b/wax-prosemirror-services/src/MultipleDropDownService/MultipleDropDownService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import MultipleDropDownQuestion from './MultipleDropDownQuestion';
 import MultipleDropDownContainerNodeView from './MultipleDropDownContainerNodeView';
 import multipleDropDownContainerNode from './schema/multipleDropDownContainerNode';
diff --git a/wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js b/wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js
index d9a4b68f736181c504cb57f9d4d25688f50ad8ea..f921e2c9c9751ed6879609e733d8255515ec958c 100644
--- a/wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js
+++ b/wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js
@@ -1,10 +1,8 @@
 /* eslint-disable react/prop-types */
 
-import React, { useContext, useRef, useState, useEffect } from 'react';
+import React, { useContext, useRef, useState } from 'react';
 import styled from 'styled-components';
-import { TextSelection } from 'prosemirror-state';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 
 const FeedBack = styled.div`
   color: black;
@@ -37,42 +35,11 @@ export default ({ node, view, getPos, readOnly }) => {
   const {
     pmViews: { main },
   } = context;
-  const [feedBack, setFeedBack] = useState(' ');
-  const [isFirstRun, setFirstRun] = useState(true);
-  const [typing, setTyping] = useState(false);
+  const [feedBack, setFeedBack] = useState(node.attrs.feedback);
   const feedBackRef = useRef(null);
 
-  useEffect(() => {
-    const allNodes = getNodes(main);
-    allNodes.forEach(singleNode => {
-      if (singleNode.node.attrs.id === node.attrs.id) {
-        if (!typing || context.transaction.meta.inputType === 'Redo') {
-          setFeedBack(singleNode.node.attrs.feedback);
-        }
-        if (!isFirstRun) {
-          if (singleNode.node.attrs.feedback === '')
-            setFeedBack(singleNode.node.attrs.feedback);
-        }
-      }
-    });
-  }, [getNodes(main)]);
-
-  const handleKeyDown = e => {
-    setTyping(true);
-    if (e.key === 'Backspace') {
-      main.dispatch(
-        main.state.tr.setSelection(
-          TextSelection.create(main.state.tr.doc, null),
-        ),
-      );
-    }
-  };
-
   const feedBackInput = () => {
     setFeedBack(feedBackRef.current.value);
-  };
-
-  const saveFeedBack = () => {
     const allNodes = getNodes(main);
     allNodes.forEach(singleNode => {
       if (singleNode.node.attrs.id === node.attrs.id) {
@@ -82,27 +49,18 @@ export default ({ node, view, getPos, readOnly }) => {
             feedback: feedBack,
           }),
         );
-        setFirstRun(false);
       }
     });
     return false;
   };
 
-  const onFocus = () => {
-    main.dispatch(
-      main.state.tr.setSelection(TextSelection.create(main.state.tr.doc, null)),
-    );
-  };
-
   return (
     <FeedBack>
       <FeedBackLabel>Feedback</FeedBackLabel>
       <FeedBackInput
+        autoFocus="autoFocus"
         disabled={readOnly}
-        onBlur={saveFeedBack}
         onChange={feedBackInput}
-        onFocus={onFocus}
-        onKeyDown={handleKeyDown}
         placeholder="Insert feedback"
         ref={feedBackRef}
         type="text"
diff --git a/wax-prosemirror-services/src/MultipleDropDownService/components/ReadOnlyDropDown.js b/wax-prosemirror-services/src/MultipleDropDownService/components/ReadOnlyDropDown.js
index 6fd68ec91634f6bc5b629df605c93da40d0fce02..2df9342c23b360f15f76fac4ef98e0a240c22d9d 100644
--- a/wax-prosemirror-services/src/MultipleDropDownService/components/ReadOnlyDropDown.js
+++ b/wax-prosemirror-services/src/MultipleDropDownService/components/ReadOnlyDropDown.js
@@ -2,8 +2,7 @@
 import React, { useContext, useEffect, useMemo, useState } from 'react';
 import styled from 'styled-components';
 import { ReactDropDownStyles } from 'wax-prosemirror-components';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import Dropdown from 'react-dropdown';
 import { v4 as uuidv4 } from 'uuid';
 
diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js
index 3a43864b6d30ce1165d36171ea5180667a0a3c28..7791d4c9f98422ef13facbbba0346686362a04d9 100644
--- a/wax-prosemirror-services/src/NoteService/Editor.js
+++ b/wax-prosemirror-services/src/NoteService/Editor.js
@@ -8,9 +8,12 @@ import { StepMap } from 'prosemirror-transform';
 import { baseKeymap } from 'prosemirror-commands';
 import { keymap } from 'prosemirror-keymap';
 import { undo, redo } from 'prosemirror-history';
-import { WaxContext, ComponentPlugin } from 'wax-prosemirror-core';
+import {
+  WaxContext,
+  ComponentPlugin,
+  DocumentHelpers,
+} from 'wax-prosemirror-core';
 import { NoteEditorContainer } from 'wax-prosemirror-components';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
 import trackedTransaction from '../TrackChangeService/track-changes/trackedTransaction';
 
 const NoteContainer = styled.div`
diff --git a/wax-prosemirror-services/src/NoteService/Note.js b/wax-prosemirror-services/src/NoteService/Note.js
index 6a1041330b0cad0ba745a13b8c2668e552236504..c15bb025db9c7cc77d4660831e8c4fa7b155018a 100644
--- a/wax-prosemirror-services/src/NoteService/Note.js
+++ b/wax-prosemirror-services/src/NoteService/Note.js
@@ -1,7 +1,7 @@
 import { injectable } from 'inversify';
 import { Fragment } from 'prosemirror-model';
 import { v4 as uuidv4 } from 'uuid';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Note extends Tools {
diff --git a/wax-prosemirror-services/src/NoteService/NoteComponent.js b/wax-prosemirror-services/src/NoteService/NoteComponent.js
index b48136662c26f2b5ca1eb24f7f64197e44bc8013..ac3598dcf9bccce994b6c95b28ba66f53495435a 100644
--- a/wax-prosemirror-services/src/NoteService/NoteComponent.js
+++ b/wax-prosemirror-services/src/NoteService/NoteComponent.js
@@ -2,11 +2,10 @@
 import React, { useContext, useState, useMemo } from 'react';
 import useDeepCompareEffect from 'use-deep-compare-effect';
 import { differenceBy } from 'lodash';
-import { WaxContext } from 'wax-prosemirror-core';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core';
 import NoteEditor from './NoteEditor';
 
-export default ({ view: view }) => {
+export default ({ view }) => {
   if (typeof view === 'undefined') return null;
   const context = useContext(WaxContext);
 
diff --git a/wax-prosemirror-services/src/NoteService/NoteService.js b/wax-prosemirror-services/src/NoteService/NoteService.js
index e549f1167fa62c54b28de57346d569563bb371ba..02448a2ccaf4a448860c05fd4aeaf03c90ef1723 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 Service from '../Service';
 import Note from './Note';
 import NoteComponent from './NoteComponent';
 import './note.css';
diff --git a/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolBiography.js b/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolBiography.js
index a9ab518f270f731473b60324095e4be9e8e714f9..07e62ad6533b776d4845df014b737e1797542d0d 100644
--- a/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolBiography.js
+++ b/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolBiography.js
@@ -3,7 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { OENAsideButton } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class OENAsideLongToolBiography extends Tools {
diff --git a/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolCaseStudy.js b/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolCaseStudy.js
index 6f636bf915bc7b6086bcaa26f507faf45ff05724..473cefc4c71c4a4baf14cb1779753099945f9d10 100644
--- a/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolCaseStudy.js
+++ b/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolCaseStudy.js
@@ -3,7 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { OENAsideButton } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class OENAsideLongToolCaseStudy extends Tools {
diff --git a/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolWorkedExample.js b/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolWorkedExample.js
index 13d2eb25aa8237f2deb5eab8e2871061017a9da5..fe6628a855c52b27a03d28a46bcae7cdc88188aa 100644
--- a/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolWorkedExample.js
+++ b/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolWorkedExample.js
@@ -3,7 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { OENAsideButton } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class OENAsideLongToolWorkedExample extends Tools {
diff --git a/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolNote.js b/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolNote.js
index c2a35e455c3339131dbb0d5c7fa60bc702d74f5c..2aa9c00040c3c58fa1d60391a0801857d5400c22 100644
--- a/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolNote.js
+++ b/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolNote.js
@@ -3,7 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { OENAsideButton } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class OENAsideShortToolNote extends Tools {
diff --git a/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolReminder.js b/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolReminder.js
index 0d647f8ef0e866d5d9823f9ad1da5bec6c1818ef..09fc27ad426b3ac0482f115bed9cb2bc0a426429 100644
--- a/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolReminder.js
+++ b/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolReminder.js
@@ -3,7 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { OENAsideButton } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class OENAsideShortToolReminder extends Tools {
diff --git a/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolTip.js b/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolTip.js
index e2bd2e782116616f147831a254744c6a5e47ea8a..f67eccea8703ae4300824089979e9eb2eb58266e 100644
--- a/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolTip.js
+++ b/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolTip.js
@@ -3,7 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { OENAsideButton } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class OENAsideShortToolTip extends Tools {
diff --git a/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolWarning.js b/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolWarning.js
index 23a2d577fe66ab79fc6b1c1c1f56b82d45decd84..69868e9b4ffa89eb2fa434eb8863fe21c1c02ff4 100644
--- a/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolWarning.js
+++ b/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolWarning.js
@@ -3,7 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { OENAsideButton } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class OENAsideShortToolWarning extends Tools {
diff --git a/wax-prosemirror-services/src/OENContainersService/OENContainersService.js b/wax-prosemirror-services/src/OENContainersService/OENContainersService.js
index 9ac251fed3b4a0c0020a6e31f442343abef1103a..d8f6d16b1c390b387aaa708d924c7d4260db0011 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 Service from '../Service';
 import OENContainersTool from './OENContainersTool';
 import OENAsideLongToolCaseStudy from './OENAsideLongToolCaseStudy';
 import OENAsideLongToolBiography from './OENAsideLongToolBiography';
diff --git a/wax-prosemirror-services/src/OENContainersService/OENContainersTool.js b/wax-prosemirror-services/src/OENContainersService/OENContainersTool.js
index c8d5d71d3473b0985580d428c6afbce0648a564b..bb8db250918bdcd7b71e6343df2d6ef594e4c854 100644
--- a/wax-prosemirror-services/src/OENContainersService/OENContainersTool.js
+++ b/wax-prosemirror-services/src/OENContainersService/OENContainersTool.js
@@ -1,5 +1,5 @@
 import { injectable } from 'inversify';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class OENContainersTool extends Tools {
diff --git a/wax-prosemirror-services/src/Service.js b/wax-prosemirror-services/src/Service.js
deleted file mode 100644
index 0b078a74b3c628bcc3420759efe0c452a2cad210..0000000000000000000000000000000000000000
--- a/wax-prosemirror-services/src/Service.js
+++ /dev/null
@@ -1,19 +0,0 @@
-class Service {
-  setApp(app) {
-    this.app = app;
-  }
-
-  get container() {
-    return this.app.container;
-  }
-
-  get config() {
-    return this.app.config.get(`config.${this.name}`) || this.app.config;
-  }
-
-  get schema() {
-    return this.app.getSchema();
-  }
-}
-
-export default Service;
diff --git a/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersService.js b/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersService.js
index 046d5f1eb0f7bb8c9b4e3a6c3d593a86ed262c44..e157b2d787483ac09240bf0b38448e6599bfc901 100644
--- a/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersService.js
+++ b/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import SpecialCharactersTool from './SpecialCharactersTool';
 
 class SpecialCharactersService extends Service {
diff --git a/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersTool.js b/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersTool.js
index eec710d8d7659b8a601add1e616caa2587ae522e..e1a08d512230c6c6006c207253525c81d3a61a1f 100644
--- a/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersTool.js
+++ b/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersTool.js
@@ -3,7 +3,7 @@ import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
 import { injectable } from 'inversify';
 import { SpecialCharactersTool } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class SpecialCharacters extends Tools {
diff --git a/wax-prosemirror-services/src/TablesService/EditTableService/EditTableService.js b/wax-prosemirror-services/src/TablesService/EditTableService/EditTableService.js
index 83078c2e78a5869e529e523ba4657482068dd96c..1b97b0d85f1fec0864db3b49dfc23d3874a1b3b9 100644
--- a/wax-prosemirror-services/src/TablesService/EditTableService/EditTableService.js
+++ b/wax-prosemirror-services/src/TablesService/EditTableService/EditTableService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import TableDropDownOptions from './TableDropDownOptions';
 
 class EditTableService extends Service {
diff --git a/wax-prosemirror-services/src/TablesService/EditTableService/TableDropDownOptions.js b/wax-prosemirror-services/src/TablesService/EditTableService/TableDropDownOptions.js
index 6fb0b6ab6165771ba2fb6c2e34c52f4e32781548..ea2150b28da1b23d7e769068c6acaf4b30a762e0 100644
--- a/wax-prosemirror-services/src/TablesService/EditTableService/TableDropDownOptions.js
+++ b/wax-prosemirror-services/src/TablesService/EditTableService/TableDropDownOptions.js
@@ -4,8 +4,7 @@ import { v4 as uuidv4 } from 'uuid';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { TableDropDown } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class TableDropDownOptions extends Tools {
diff --git a/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js b/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js
index eeb8819176a5654eda39f50dfd7af54f7e498de1..beed96a3269f970063efbb9a1845de32a900e8e0 100644
--- a/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js
+++ b/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js
@@ -1,5 +1,5 @@
+import { Service } from 'wax-prosemirror-core';
 import { tableNodes, goToNextCell } from 'prosemirror-tables';
-import Service from '../../Service';
 import Table from './Table';
 
 class InsertTableService extends Service {
diff --git a/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js b/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js
index 25b6b03d89530703c2f0b936b1c17dba77cfb202..bec9a069215b67a7a20b4f7f0df3206b2354a6fe 100644
--- a/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js
+++ b/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js
@@ -1,10 +1,9 @@
 import React from 'react';
 import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
-import { Commands } from 'wax-prosemirror-utilities';
 import { injectable } from 'inversify';
 import { CreateTable } from 'wax-prosemirror-components';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Table extends Tools {
diff --git a/wax-prosemirror-services/src/TablesService/TablesService.js b/wax-prosemirror-services/src/TablesService/TablesService.js
index 258db5a53aabd0234b9dbb559bfc9165d059ae85..84f3d020762dc909ebd02d9ef0226fcada4173bd 100644
--- a/wax-prosemirror-services/src/TablesService/TablesService.js
+++ b/wax-prosemirror-services/src/TablesService/TablesService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import TablesServices from './index';
 import './table.css';
 
diff --git a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js
index 8dc87c7063b78fb9f34caf4a3c3cd651a98d93b1..a8cf32cc0864ef1e2773ff4f86d66edb7ecf6d3a 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js
@@ -4,7 +4,7 @@ import { isEmpty } from 'lodash';
 import { wrapIn } from 'prosemirror-commands';
 import { NodeSelection } from 'prosemirror-state';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class BlockQuote extends Tools {
diff --git a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js
index 1b3f317352094b5686857be673c097bf4e0a3f4a..4bf42c506573dcd4f46e8fb7c1df39fb8e0024f3 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 Service from '../../Service';
 import BlockQuote from './BlockQuote';
 import './blockQuote.css';
 
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetry.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetry.js
index bf8741648362b5835aac2a5918fce5d43065e119..c163d52f5e8678a4342c1332e7bf27e03ba5a2e9 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetry.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetry.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class ExtractPoetry extends Tools {
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js
index 1d5018ca45d346c76aae1d4f4ba19ea76416df04..d2243b6045c738bc2a3f6f4af091df75014fadda 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js
@@ -1,18 +1,16 @@
-import Service from "../../Service";
-import { extractPoetryNode } from "wax-prosemirror-schema";
-import ExtractPoetry from "./ExtractPoetry";
+import { Service } from 'wax-prosemirror-core';
+import { extractPoetryNode } from 'wax-prosemirror-schema';
+import ExtractPoetry from './ExtractPoetry';
 
 class ExtractPoetryService extends Service {
-  boot() {}
-
   register() {
-    this.container.bind("ExtractPoetry").to(ExtractPoetry);
-    const createNode = this.container.get("CreateNode");
+    this.container.bind('ExtractPoetry').to(ExtractPoetry);
+    const createNode = this.container.get('CreateNode');
     createNode(
       {
-        extractPoetry: extractPoetryNode
+        extractPoetry: extractPoetryNode,
       },
-      { toWaxSchema: true }
+      { toWaxSchema: true },
     );
   }
 }
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProse.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProse.js
index 9096f4f0668697232c2f5b5d025928ef8123fcf4..ff31a3d40e188d333dad8ca2f4ee0513674ad4cf 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProse.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProse.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class ExtractProse extends Tools {
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js
index f1bbf427f565d2f432ade0443f91e3f6c32d4acb..38469d807a1a203aba26e7bba64b1efcd673932f 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js
@@ -1,18 +1,16 @@
-import Service from "../../Service";
-import { extractProseNode } from "wax-prosemirror-schema";
-import ExtractProse from "./ExtractProse";
+import { Service } from 'wax-prosemirror-core';
+import { extractProseNode } from 'wax-prosemirror-schema';
+import ExtractProse from './ExtractProse';
 
 class ExtractProseService extends Service {
-  boot() {}
-
   register() {
-    this.container.bind("ExtractProse").to(ExtractProse);
-    const createNode = this.container.get("CreateNode");
+    this.container.bind('ExtractProse').to(ExtractProse);
+    const createNode = this.container.get('CreateNode');
     createNode(
       {
-        extractProse: extractProseNode
+        extractProse: extractProseNode,
       },
-      { toWaxSchema: true }
+      { toWaxSchema: true },
     );
   }
 }
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js
index a4eb6bf3cceac21b0934b4831965ed7c44ac3fe7..f5e6e86cf18032123aaf8a2975f612ee062e1819 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class ParagraphContinued extends Tools {
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js
index f99837896f1639c9e24c98914761b376eada1576..456b57cab56a6f6db0d9f0cad9e519c3352e38b5 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js
@@ -1,18 +1,16 @@
-import Service from "../../Service";
-import { paragraphContNode } from "wax-prosemirror-schema";
-import ParagraphContinued from "./ParagraphContinued";
+import { Service } from 'wax-prosemirror-core';
+import { paragraphContNode } from 'wax-prosemirror-schema';
+import ParagraphContinued from './ParagraphContinued';
 
 class ParagraphContinuedService extends Service {
-  boot() {}
-
   register() {
-    this.container.bind("ParagraphContinued").to(ParagraphContinued);
-    const createNode = this.container.get("CreateNode");
+    this.container.bind('ParagraphContinued').to(ParagraphContinued);
+    const createNode = this.container.get('CreateNode');
     createNode(
       {
-        paragraphCont: paragraphContNode
+        paragraphCont: paragraphContNode,
       },
-      { toWaxSchema: true }
+      { toWaxSchema: true },
     );
   }
 }
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/Paragraph.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/Paragraph.js
index 0bf954b9dfed80decf68fd7d818ede2476fa8b7e..e61117393ef3f18aa10ffa415ba16dce6aca6527 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/Paragraph.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/Paragraph.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class Paragraph extends Tools {
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js
index fa2ffdbcca12d12b74394b6cda7b1bc609fb8f89..c27e1afa76fd2e5b1e49a31f325ad411f1154583 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js
@@ -1,11 +1,9 @@
-import Service from "../../Service";
-import Paragraph from "./Paragraph";
+import { Service } from 'wax-prosemirror-core';
+import Paragraph from './Paragraph';
 
 class ParagraphService extends Service {
-  boot() {}
-
   register() {
-    this.container.bind("Paragraph").to(Paragraph);
+    this.container.bind('Paragraph').to(Paragraph);
   }
 }
 
diff --git a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNote.js b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNote.js
index 58d4e63f59d15fd99fb61044328ecf8855aa53ab..2b171d69ef8b19927c08411bcfd3450607a87fc3 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNote.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNote.js
@@ -2,8 +2,7 @@ import React from 'react';
 import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { LeftSideButton } from 'wax-prosemirror-components';
-import { Commands } from 'wax-prosemirror-utilities';
-import Tools from '../../lib/Tools';
+import { Commands, Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class SourceNote extends Tools {
diff --git a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js
index 659262ab90c0eedbf19b59ce571775b2a11d0669..00aea726593d411fc6ecc67eea68ad2b9f0f901b 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js
@@ -1,18 +1,16 @@
-import Service from "../../Service";
-import { sourceNoteNode } from "wax-prosemirror-schema";
-import SourceNote from "./SourceNote";
+import { Service } from 'wax-prosemirror-core';
+import { sourceNoteNode } from 'wax-prosemirror-schema';
+import SourceNote from './SourceNote';
 
 class SourceNoteService extends Service {
-  boot() {}
-
   register() {
-    this.container.bind("SourceNote").to(SourceNote);
-    const createNode = this.container.get("CreateNode");
+    this.container.bind('SourceNote').to(SourceNote);
+    const createNode = this.container.get('CreateNode');
     createNode(
       {
-        sourceNote: sourceNoteNode
+        sourceNote: sourceNoteNode,
       },
-      { toWaxSchema: true }
+      { toWaxSchema: true },
     );
   }
 }
diff --git a/wax-prosemirror-services/src/TextBlockLevel/TextBlockLevelService.js b/wax-prosemirror-services/src/TextBlockLevel/TextBlockLevelService.js
index e19aa29a9e418725281a186e7bc8a15dd387fb76..5d023688f74000a021bd1004e6928dfec31a5cc7 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/TextBlockLevelService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/TextBlockLevelService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import TextServices from './index';
 
 class TextBlockLevelService extends Service {
diff --git a/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js b/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
index 63f9f149e976f660db25d4855227a167d6cbfab8..1e8dc942efbc25e6a91acdc2011e30891c0e748d 100644
--- a/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
+++ b/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
@@ -1,8 +1,8 @@
 import { Mapping, RemoveMarkStep, ReplaceStep } from 'prosemirror-transform';
 import { Slice } from 'prosemirror-model';
 import { injectable } from 'inversify';
+import { Tools } from 'wax-prosemirror-core';
 import removeNode from '../track-changes/helpers/removeNode';
-import Tools from '../../lib/Tools';
 
 const checkFromConfig = (mark, user, config) => {
   if (mark.attrs.username === user.username && !config.own.accept) {
diff --git a/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChangeService.js b/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChangeService.js
index 0620f8cef9c427ca7811a82f30ba0deedac91c55..84375ba597ae61af8e067698d1c21f5da1f4a0a3 100644
--- a/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChangeService.js
+++ b/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChangeService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import AcceptTrackChange from './AcceptTrackChange';
 
 class AcceptTrackChangeService extends Service {
diff --git a/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChange.js b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChange.js
index 0064089356de735f4c2bfb2f4d058d8095c0fce9..3e1cadcb7bbc10650b7aceabc56dd65a193691a8 100644
--- a/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChange.js
+++ b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChange.js
@@ -3,7 +3,7 @@ import { injectable } from 'inversify';
 import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
 import { TrackChangeEnable } from 'wax-prosemirror-components';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class EnableTrackChange extends Tools {
diff --git a/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChangeService.js b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChangeService.js
index 63e3ac4bf4d0029c8c54ca823affb1b9661687c7..7112788a7fbd2e19288589f5c695b5c0091a9393 100644
--- a/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChangeService.js
+++ b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChangeService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import EnableTrackChange from './EnableTrackChange';
 
 class EnableTrackChangeService extends Service {
diff --git a/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChange.js b/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChange.js
index 01c7769f152c02523dba3d4a8d0df646a52a9d8d..620306b800c30946f054de1993071adb8437b30e 100644
--- a/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChange.js
+++ b/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChange.js
@@ -5,9 +5,9 @@ import {
   AddMarkStep,
 } from 'prosemirror-transform';
 import { Slice } from 'prosemirror-model';
+import { Tools } from 'wax-prosemirror-core';
 import { injectable } from 'inversify';
 import removeNode from '../track-changes/helpers/removeNode';
-import Tools from '../../lib/Tools';
 
 const checkFromConfig = (mark, user, config) => {
   if (mark.attrs.username === user.username && !config.own.reject) {
diff --git a/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChangeService.js b/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChangeService.js
index ed773bfe52911efacdfa6c451100d83248b8cf66..33ef4030e1623e5831b92eda0fa51ba575e5d11a 100644
--- a/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChangeService.js
+++ b/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChangeService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import RejectTrackChange from './RejectTrackChange';
 
 class RejectTrackChangeService extends Service {
diff --git a/wax-prosemirror-services/src/TrackChangeService/ShowHideTrackChangeService/ShowHideTrackChange.js b/wax-prosemirror-services/src/TrackChangeService/ShowHideTrackChangeService/ShowHideTrackChange.js
index ad5df74add01d5c691859cbc530d948fab0922fc..11e79212b4e93ba311605226b5b57df42cf787ff 100644
--- a/wax-prosemirror-services/src/TrackChangeService/ShowHideTrackChangeService/ShowHideTrackChange.js
+++ b/wax-prosemirror-services/src/TrackChangeService/ShowHideTrackChangeService/ShowHideTrackChange.js
@@ -1,5 +1,5 @@
 import { injectable } from 'inversify';
-import Tools from '../../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 class ShowHideTrackChange extends Tools {
diff --git a/wax-prosemirror-services/src/TrackChangeService/ShowHideTrackChangeService/ShowHideTrackChangeService.js b/wax-prosemirror-services/src/TrackChangeService/ShowHideTrackChangeService/ShowHideTrackChangeService.js
index f9d00dad15bf247ffa0e92c026ae9c4ba9c4961d..7a399a9970f697dc9aa5995ae8c20b7ee41a6f57 100644
--- a/wax-prosemirror-services/src/TrackChangeService/ShowHideTrackChangeService/ShowHideTrackChangeService.js
+++ b/wax-prosemirror-services/src/TrackChangeService/ShowHideTrackChangeService/ShowHideTrackChangeService.js
@@ -1,9 +1,8 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import ShowHideTrackChange from './ShowHideTrackChange';
 
 class ShowHideTrackChangeService extends Service {
   name = 'ShowHideTrackChangeService';
-  // boot() {}
 
   register() {
     this.container.bind('ShowHideTrackChange').to(ShowHideTrackChange);
diff --git a/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js b/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js
index 1760f72ddca3765112a6f886447b4a569c8e185a..1c3fff694f1bb34e6ebb2db12498c369ad754490 100644
--- a/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js
+++ b/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js
@@ -1,6 +1,6 @@
+import { Service } from 'wax-prosemirror-core';
 import { trackChangesMarks, trackChangesNodes } from 'wax-prosemirror-schema';
 import { TrackChangePlugin, HideShowPlugin } from 'wax-prosemirror-plugins';
-import Service from '../Service';
 import TrackChangeServices from './index';
 import './trackChange.css';
 
diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js
index 5e2c15ebd701c3ba365525220d2374dc609f7f9d..3a04efcdbe93fd4c66ee47baa2e6d3d7a94dafca 100644
--- a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js
+++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js
@@ -1,5 +1,5 @@
 import { ReplaceStep } from 'prosemirror-transform';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { DocumentHelpers } from 'wax-prosemirror-core';
 
 import markDeletion from './markDeletion';
 import markInsertion from './markInsertion';
diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js
index c3aa3c4f04925c12891deb8606c043fb992014d7..63cad26d5811d88045f10850f453804326b473d5 100644
--- a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js
+++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js
@@ -7,7 +7,7 @@ import {
   Mapping,
 } from 'prosemirror-transform';
 
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
+import { DocumentHelpers } from 'wax-prosemirror-core';
 import replaceStep from './helpers/replaceStep';
 import replaceAroundStep from './helpers/replaceAroundStep';
 import addMarkStep from './helpers/addMarkStep';
diff --git a/wax-prosemirror-services/src/TrackOptionsService/TrackOptionsService.js b/wax-prosemirror-services/src/TrackOptionsService/TrackOptionsService.js
index 85a05b5061285d533fc81de8d47900770fb6258a..5cd8aa7826a3dc398242856e587af580021eb72e 100644
--- a/wax-prosemirror-services/src/TrackOptionsService/TrackOptionsService.js
+++ b/wax-prosemirror-services/src/TrackOptionsService/TrackOptionsService.js
@@ -1,4 +1,4 @@
-import Service from '../Service';
+import { Service } from 'wax-prosemirror-core';
 import TrackOptionsTool from './TrackOptionsTool';
 
 class TrackOptionsService extends Service {
diff --git a/wax-prosemirror-services/src/TrackOptionsService/TrackOptionsTool.js b/wax-prosemirror-services/src/TrackOptionsService/TrackOptionsTool.js
index c3ba8abac5e839cbb0f3424bc8c990159d6519b2..72e36fc90ff429ece2211c11f562a1a2ceb31f6c 100644
--- a/wax-prosemirror-services/src/TrackOptionsService/TrackOptionsTool.js
+++ b/wax-prosemirror-services/src/TrackOptionsService/TrackOptionsTool.js
@@ -3,7 +3,7 @@ import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
 import { injectable } from 'inversify';
 import { TrackChangeOptionsTool } from 'wax-prosemirror-components';
-import Tools from '../lib/Tools';
+import { Tools } from 'wax-prosemirror-core';
 
 @injectable()
 export default class SpecialCharacters extends Tools {
diff --git a/wax-prosemirror-services/src/TransformService/TransformService.js b/wax-prosemirror-services/src/TransformService/TransformService.js
index fe70937d3d3509e1fd92e17df8ee0578d3e214e3..fec4cb122dc42bcaa00b4e40670ef0e45bdaa6b2 100644
--- a/wax-prosemirror-services/src/TransformService/TransformService.js
+++ b/wax-prosemirror-services/src/TransformService/TransformService.js
@@ -1,5 +1,5 @@
+import { Service } from 'wax-prosemirror-core';
 import TransformTool from './TransformTool';
-import Service from '../Service';
 
 export default class TransformService extends Service {
   register() {
diff --git a/wax-prosemirror-services/src/TransformService/TransformTool.js b/wax-prosemirror-services/src/TransformService/TransformTool.js
index 69f771ae4a1eb2c019e52d08b9401fe5115a605b..4f9fe65a20a50196827e1298b113a9345329bf2f 100644
--- a/wax-prosemirror-services/src/TransformService/TransformTool.js
+++ b/wax-prosemirror-services/src/TransformService/TransformTool.js
@@ -1,13 +1,8 @@
-/* eslint-disable no-unused-expressions */
 import React from 'react';
 import { TransformCaseComponent } from 'wax-prosemirror-components';
 import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
-import { DocumentHelpers } from 'wax-prosemirror-utilities';
-// eslint-disable-next-line import/no-named-as-default,import/no-named-as-default-member
-import Tools from '../lib/Tools';
-// eslint-disable-next-line no-unused-vars
-import titleCase from './titleCase';
+import { DocumentHelpers, Tools } from 'wax-prosemirror-core';
 
 const upperLowerCase = (state, dispatch, casing) => {
   // grab the current transaction and selection
diff --git a/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js
index 4a3f4e8d2a820ada54494bde86ece60f274a0e7c..b56b283399cce10a9a7dcd9a53574b2142b349d4 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js
@@ -1,11 +1,11 @@
-import Service from "../../Service";
-import Annotations from "./Annotations";
+import { Service } from 'wax-prosemirror-core';
+import Annotations from './Annotations';
 
 class AnnotationToolGroupService extends Service {
-  name = "AnnotationToolGroupService";
+  name = 'AnnotationToolGroupService';
 
   register() {
-    this.container.bind("Annotations").to(Annotations);
+    this.container.bind('Annotations').to(Annotations);
   }
 }
 
diff --git a/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js
index d887bc10935219f5dc9bff2333e63e58b1108283..768dc96963a0824cb35b3491b42bba42d760da49 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js
@@ -3,7 +3,7 @@ import { injectable, inject } from 'inversify';
 import { ToolGroupComponent } from 'wax-prosemirror-components';
 import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class Annotations extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js
index d542e5551037378d64f85bdfc6027b4ae59c2803..d389fe7b61d21d8da8997b2fd281d23d1d1f68fa 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class Base extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js
index e70cdd3c3179a4553077cf9de2bfbcc478597ed5..bcfa7206dc3cac65305b13b7813cbb71fad3d7c8 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import Base from './Base';
 
 class BaseToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/BlockDropDownToolGroupService/BlockDropDown.js b/wax-prosemirror-services/src/WaxToolGroups/BlockDropDownToolGroupService/BlockDropDown.js
index 7c0f6e84c1741f1e3888f20ea96073625ccf2de0..890be4900cd56cb3ce03c6711ef54f908afc61dd 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/BlockDropDownToolGroupService/BlockDropDown.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/BlockDropDownToolGroupService/BlockDropDown.js
@@ -3,10 +3,9 @@ import { injectable, inject } from 'inversify';
 import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
 import styled from 'styled-components';
-import { WaxContext } from 'wax-prosemirror-core';
+import { WaxContext, ToolGroup } from 'wax-prosemirror-core';
 import { ReactDropDownStyles } from 'wax-prosemirror-components';
 import Dropdown from 'react-dropdown';
-import ToolGroup from '../../lib/ToolGroup';
 
 @injectable()
 class BlockDropDown extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/BlockDropDownToolGroupService/BlockDropDownToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/BlockDropDownToolGroupService/BlockDropDownToolGroupService.js
index ac68527b81d595a7cf3685886eebf6bfe1bb9be8..769e055ffbaeb0c608838a0ed02d8d3b73fe27c8 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/BlockDropDownToolGroupService/BlockDropDownToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/BlockDropDownToolGroupService/BlockDropDownToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import BlockDropDown from './BlockDropDown';
 
 class BlockDropDownToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/EditorInfoToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/EditorInfoToolGroupService.js
index 6ffc6203857260c4e0423a9681040b3adaefd7b5..8bd1e8eaf608ba87b40ed95cb148aa6050736f1b 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/EditorInfoToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/EditorInfoToolGroupService.js
@@ -1,5 +1,4 @@
-import Service from '../../../Service';
-// eslint-disable-next-line import/no-named-as-default,import/no-named-as-default-member
+import { Service } from 'wax-prosemirror-core';
 import InfoToolGroup from './InfoTool';
 
 class EditorInfoToolGroupServices extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/InfoTool.js b/wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/InfoTool.js
index 7d4548d2ff8060c75bf89a040287a9c89ba81e24..8d8ce2d97d7f0277b738f7ac778a62cfceca926b 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/InfoTool.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/InfoTool.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class InfoToolGroup extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js
index 51fdb7b5e98bbc8ce3c08412066f56444d653b85..d3f792152be7032b4332f1eb29573f924fd4de77 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class CodeBlock extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js
index 622ad204cf3c510148b3f23047d820212ba8f759..f92de874635b295f5ad5df5d31f6f14259108727 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import CodeBlock from './CodeBlock';
 
 class CodeBlockToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroup.js b/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroup.js
index e9607cafdf68672cf4318f23240ec308d01cdedd..215b32ca781bb7d14e7e0ed57e3b4e52c3455059 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroup.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroup.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class CustomTagBlockToolGroup extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroupService.js
index 208f4ae176f792831cb8d4a56307b2f8d5ecba01..ba8451c90d51ee5d8699ba8f99b6a2b3a24d134d 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../../Service';
+import { Service } from 'wax-prosemirror-core';
 import CustomTagBlockToolGroup from './CustomTagBlockToolGroup';
 
 class CustomTagBlockToolGroupService extends Service {
@@ -7,4 +7,4 @@ class CustomTagBlockToolGroupService extends Service {
   }
 }
 
-export default CustomTagBlockToolGroupService;
\ No newline at end of file
+export default CustomTagBlockToolGroupService;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroup.js b/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroup.js
index 018a733dce232626682328d4d2b4d35c1f563dac..05b0015d2b5bc8cf6f077a7b2a2d938bb860e396 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroup.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroup.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class CustomTagInlineToolGroup extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroupService.js
index 1f50851081e10da9af27d34440f920651e22ac15..92bc99c602b73f7941b5308f3d06c2e761a7d166 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroupService.js
@@ -1,10 +1,10 @@
-import Service from '../../../Service';
+import { Service } from 'wax-prosemirror-core';
 import CustomTagInlineToolGroup from './CustomTagInlineToolGroup';
 
 class CustomTagInlineToolGroupService extends Service {
-    register() {
-        this.container.bind('CustomTagInline').to(CustomTagInlineToolGroup);
-    }
+  register() {
+    this.container.bind('CustomTagInline').to(CustomTagInlineToolGroup);
+  }
 }
 
 export default CustomTagInlineToolGroupService;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/DisplayTextToolGroupService/DisplayText.js b/wax-prosemirror-services/src/WaxToolGroups/DisplayTextToolGroupService/DisplayText.js
index c8b805f055510dcc79dfdc6b36763495cb316379..2f12e610438553947a42426c8f208acf553bca7b 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/DisplayTextToolGroupService/DisplayText.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/DisplayTextToolGroupService/DisplayText.js
@@ -5,7 +5,7 @@ import { BlockLevelTools, Tabs } from 'wax-prosemirror-components';
 import { isEmpty } from 'lodash';
 import styled from 'styled-components';
 import { v4 as uuidv4 } from 'uuid';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 const Empty = styled.div`
   background: khaki;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/DisplayTextToolGroupService/DisplayTextToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/DisplayTextToolGroupService/DisplayTextToolGroupService.js
index 77996124eab69416cafbe320d079d6a50e840cf9..3493efb865a568208b85ccd278d9c65ef9bf771f 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/DisplayTextToolGroupService/DisplayTextToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/DisplayTextToolGroupService/DisplayTextToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import DisplayText from './DisplayText';
 
 class DisplayTextToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js
index 95ad024f0d57221094af8800422c8e9f00885b18..49495286f1b097170add08276b994c3f2dcc9513 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js
@@ -1,7 +1,7 @@
 import React from 'react';
 import { injectable, inject } from 'inversify';
 import { LeftMenuTitle } from 'wax-prosemirror-components';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class Display extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js
index ae115fabac7bfe3f6e51fe8e1ce8096a71c6a08c..221089e6d2da1783d1726b41fe820e7cc2f2f9af 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import Display from './Display';
 
 class DisplayToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/EssayToolGroupService/Essay.js b/wax-prosemirror-services/src/WaxToolGroups/EssayToolGroupService/Essay.js
index 3c34de106f52b0b9a3e94fcb109a3aa412b9fd6f..24b202ce136619005d7e5d948e28a2ba80e30729 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/EssayToolGroupService/Essay.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/EssayToolGroupService/Essay.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class Essay extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/EssayToolGroupService/EssayToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/EssayToolGroupService/EssayToolGroupService.js
index 5a2bdb7ce1adfe71a3c14c89d5dc589d8a7bfd9c..52e8c5afab4aafc2daed27a3137cd03443302eb5 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/EssayToolGroupService/EssayToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/EssayToolGroupService/EssayToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import Essay from './Essay';
 
 class EssayToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/FillTheGapToolGroupService/FillTheGap.js b/wax-prosemirror-services/src/WaxToolGroups/FillTheGapToolGroupService/FillTheGap.js
index b23ce10a38320cee6d28f9de9cf9c941b1af4529..418b0429a13ae1641dd537e5510c34e8c489e29a 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/FillTheGapToolGroupService/FillTheGap.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/FillTheGapToolGroupService/FillTheGap.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class FillTheGap extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/FillTheGapToolGroupService/FillTheGapToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/FillTheGapToolGroupService/FillTheGapToolGroupService.js
index 5f57c3265db4734c4ca1c82cc59c4988b700217e..7e8fcabea47ece4a8c897a01d493cca690c687b4 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/FillTheGapToolGroupService/FillTheGapToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/FillTheGapToolGroupService/FillTheGapToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import FillTheGap from './FillTheGap';
 
 class FillTheGapToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreen.js b/wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreen.js
index 6416a4b8137677d13531c1386a94c955459cbfd3..f590b328cd003e98fe23058aba08f0fb22fdd7a3 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreen.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreen.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class FullScreen extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreenToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreenToolGroupService.js
index e50c63a96308b054cc54962ee02b2157655485ed..1d63affb455ec4b71bf2bc681611e0c50e6e7456 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreenToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreenToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import FullScreen from './FullScreen';
 
 class FullScreenToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js
index 36b95737d6819970a4a05790fe1c00e80c00e2cf..159956900d8b860f45c862c67ca2228426916bca 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import Images from './Images';
 
 class ImageToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/Images.js b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/Images.js
index e233a6f71ab65bff025561399fa801af4c3092ae..3784bb40874f3202acf5178f14df7cad443e8182 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/Images.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/Images.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class Images extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js
index 6e32aabb0d02087400202912a8b83d283f792a8e..4f98b12b878ceeb48a7b497587a5cd43d0c26bff 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import Lists from './Lists';
 
 class ListToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js
index 5b73ef6e5a04433117b60abf9093a908b1bf0c13..6e0d9660678c70185d89f6cb8006a00ec14541d9 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class Lists extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/MatchingToolGroupService/Matching.js b/wax-prosemirror-services/src/WaxToolGroups/MatchingToolGroupService/Matching.js
index 497d3c5c2f216a8e386ea22f4b884c0dd41f53a4..61907ae2d60d25213f194537c1eb36eea4fa071b 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/MatchingToolGroupService/Matching.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/MatchingToolGroupService/Matching.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class Matching extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/MatchingToolGroupService/MatchingToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/MatchingToolGroupService/MatchingToolGroupService.js
index 750c35e99506e1ba4da931d2b55d263e40de3d4f..cc7fbb7b71d285413cf24312327ecb362e2aa65c 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/MatchingToolGroupService/MatchingToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/MatchingToolGroupService/MatchingToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import Matching from './Matching';
 
 class MatchingToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js
index 095464e4d034e09533204bd123a078d5e496051e..01347bfd5a8103d9d34c85f330caafd622e48f7e 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js
@@ -3,7 +3,7 @@ import React, { useMemo } from 'react';
 import { injectable, inject } from 'inversify';
 import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 import DropDownComponent from './DropDownComponent';
 
 @injectable()
diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDownToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDownToolGroupService.js
index e7363986313a3d0079127bcbdbc27c73682cee89..0d4677b6286dd997b2627c7d26881271b3d82867 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDownToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDownToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import MultipleChoiceDropDown from './MultipleChoiceDropDown';
 
 class MultipleChoiceDropDownToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js
index 5d0b9d3cb0b81f5a5f9023bfe57c846b755c8ea7..f2fb6484dc75b6a49fe8e5ba8bf20cdfeec09f27 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class MultipleDropDown extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDownToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDownToolGroupService.js
index 46729db7441a9c7125e33181ff027bd94e994d72..3c7579e1ea651ee1fe5211b6d7c1e54e745aee7a 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDownToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDownToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import MultipleDropDown from './MultipleDropDown';
 
 class MultipleDropDownToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js
index 8f993428b28ed09b05c155c4f998eadc5220bd99..87789dde1b0f41d73905208e8c0889e61885d87f 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import Notes from './Notes';
 
 class NoteToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/Notes.js b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/Notes.js
index 04eeb1b0cc4519f5fb93f53140b0af4eb20e5049..4376cdc5157b25b9f28a495fc1498e98e41f20d8 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/Notes.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/Notes.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class Notes extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroup.js b/wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroup.js
index 3a6824ed211417c9c8a1c55917ae3ff5d8866739..e0383e14afbdb965eca94a81fd277b34f039f19b 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroup.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroup.js
@@ -1,7 +1,7 @@
 import React from 'react';
 import { injectable, inject } from 'inversify';
 import { LeftMenuTitle } from 'wax-prosemirror-components';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class OENAsideLongToolGroup extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroupService.js
index 6e072c00685c3762c35ce0e9fb7b7a1fd5496b2c..50e7ce66b955267a5a221d1023c80b9876adb6f3 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import OENAsideLongToolGroup from './OENAsideLongToolGroup';
 
 class OENAsideLongToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroup.js b/wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroup.js
index a1c3d77436dd7dd22d4f158a63594dfd8c1b5254..f6616df642e28eeaec3f8d55cf2408552b928894 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroup.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroup.js
@@ -1,7 +1,7 @@
 import React from 'react';
 import { injectable, inject } from 'inversify';
 import { LeftMenuTitle } from 'wax-prosemirror-components';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class OENAsideShortToolGroup extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroupService.js
index 19345c7b21b54df754ee97ddedc56829cbd460a5..07a00112fb260255ae6bea0b4f5918f06336bead 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import OENAsideShortToolGroup from './OENAsideShortToolGroup';
 
 class OENAsideShortToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroup.js b/wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroup.js
index 74fcb00a94b6dd0865ddc2ddac2731cf04f4f100..84312f76b867536b1ea25fe49b71d5adea2d6da4 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroup.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroup.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class OENContainersToolGroup extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroupService.js
index e49f413141dc608cc1d26c4b5f8e82e1fb7cf207..1f5571047f3a0f4c35764ceab841cca83721647f 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import OENContainersToolGroup from './OENContainersToolGroup';
 import OENAsideShortToolGroupService from '../OENAsideShortToolGroupService/OENAsideShortToolGroupService';
 import OENAsideLongToolGroupService from '../OENAsideLongToolGroupService/OENAsideLongToolGroupService';
diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENLeftToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENLeftToolGroupService.js
index a2ea00db489be6ce2f407130139b6177f8bc831c..13dadd7709562bd0cfeea7e7e006a9446c5ec22c 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENLeftToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENLeftToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import OENTools from './OENTools';
 
 class OENLeftToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENTools.js b/wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENTools.js
index ff1603d2d9088a3f0f7afb3e2522613c3e5a7f83..16f63e39ecbcc441b5097735060de2de6e51c4ed 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENTools.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENTools.js
@@ -5,7 +5,7 @@ import { BlockLevelTools, Tabs } from 'wax-prosemirror-components';
 import { isEmpty } from 'lodash';
 import styled from 'styled-components';
 import { v4 as uuidv4 } from 'uuid';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 const Empty = styled.div`
   background: khaki;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharacters.js b/wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharacters.js
index c6afcc99f0f26c0197fa5316820d997a8219a7bd..ea7f01431ad964ae3c08f518e39c17964aedeb85 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharacters.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharacters.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class SpecialCharacters extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharactersToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharactersToolGroupService.js
index 7a9a6995f2d1762a4846d0e8749d21d375fe97b5..3053a3b265e63ab807e7d8056a39ddfc7d28600e 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharactersToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharactersToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import SpecialCharacters from './SpecialCharacters';
 
 class SpecialCharactersToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js
index 457a6fbc96981ea23e9fe1b93206c913bf1dd817..ffebb058858c737e6db36350fa20ef2e13f79d36 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import Tables from './Tables';
 
 class TableToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/Tables.js b/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/Tables.js
index 168bf966a0a1c84722ffb4efb5dbf47b26e876ad..2253b7ce81a8deef4b7e9a445e730b70f52e407d 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/Tables.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/Tables.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class Tables extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/HightlightToolGroup.js b/wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/HightlightToolGroup.js
index 700cd26d7e7a4e3224c110b1a3b5381d56952a3e..daa6ba2602cf1a2c1095bbc78161bc4ef6616f7d 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/HightlightToolGroup.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/HightlightToolGroup.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class HighlightToolGroup extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/TextHighlightToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/TextHighlightToolGroupService.js
index b6f6ecceceb8d3a2627dfb5e18543787dbe39a17..4ff80ef543506f97013101412d4717492c15fc23 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/TextHighlightToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/TextHighlightToolGroupService.js
@@ -1,11 +1,10 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import HighlightToolGroup from './HightlightToolGroup';
 
 class TextHighlightToolGroupServices extends Service {
-    register(){
-        
-        this.container.bind('HighlightToolGroup').to(HighlightToolGroup);
-    }
+  register() {
+    this.container.bind('HighlightToolGroup').to(HighlightToolGroup);
+  }
 }
 
-export default TextHighlightToolGroupServices;
\ No newline at end of file
+export default TextHighlightToolGroupServices;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js
index 8c9629cf5c8269034553ebd2382c5855d4f1afad..99134e77df5a3b233f20f546c0ad7fa4025a7488 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js
@@ -1,7 +1,7 @@
 import React from 'react';
 import { injectable, inject } from 'inversify';
 import { LeftMenuTitle } from 'wax-prosemirror-components';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class Text extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js
index 397d4b978b268843c95768852364b97d98631c9b..75f933527fd6140f0c0a7c24dda67608f15fbebc 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import Text from './Text';
 
 class TextToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptions.js b/wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptions.js
index e6e8997159373e865c32ce898ce6cc3182bc23b6..82bfcb0464bc5ab48a76e60279ef91ae072bfed1 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptions.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptions.js
@@ -4,7 +4,7 @@ import { injectable, inject } from 'inversify';
 import { TrackChangeOptionsTool } from 'wax-prosemirror-components';
 import { isEmpty } from 'lodash';
 import { v4 as uuidv4 } from 'uuid';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class TrackCommentOptions extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptionsToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptionsToolGroupService.js
index 107f82bc7d61b783b247be68cb2cbce536a43029..cf9dc5e775d9d7e37baf8c700a4aaef4b403117c 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptionsToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptionsToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import TrackCommentOptions from './TrackCommentOptions';
 
 class TrackCommentOptionsToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptions.js b/wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptions.js
index 918f94dee71dd94335aa0baabb9064472089c245..bb8ccf3924d3c3c0e2412fcc5efd599004121389 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptions.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptions.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class TrackOptions extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptionsToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptionsToolGroupService.js
index 7f73178e8df1ab622cda594bc23b9af79fb783b7..4d5bc580c5859fd1a772c4d3fef503b477ecd4fb 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptionsToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptionsToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import TrackOptions from './TrackOptions';
 
 class TrackOptionsToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditing.js b/wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditing.js
index 642f236a291a35925559e8d34895c1fcc2022369..510d05e2a47e58752584c1de2439f31a9c661635 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditing.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditing.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class TrackingAndEditing extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditingToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditingToolGroupService.js
index 3d206b1339d88ac23db8de0f133a47cbfd795290..d2d084c72dce6dc45dab4b4afc415b72d936d0c5 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditingToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditingToolGroupService.js
@@ -1,4 +1,4 @@
-import Service from '../../Service';
+import { Service } from 'wax-prosemirror-core';
 import TrackingAndEditing from './TrackingAndEditing';
 
 class TrackingAndEditingToolGroupService extends Service {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroup.js b/wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroup.js
index e478f7ee620acf29f4cf3f52f013fe7b5b2e29f0..441d591c296220175684b393b17556d5d5f03fae 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroup.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroup.js
@@ -1,5 +1,5 @@
 import { injectable, inject } from 'inversify';
-import ToolGroup from '../../lib/ToolGroup';
+import { ToolGroup } from 'wax-prosemirror-core';
 
 @injectable()
 class TransformToolGroup extends ToolGroup {
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroupService.js
index 11e40ec7ba47b04165b8556a5379589b5a3afe54..fa1c9bbab538449615752830ef8b3c1be10c4e99 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroupService.js
@@ -1,11 +1,10 @@
-import Service from '../../Service';
-// eslint-disable-next-line import/no-named-as-default,import/no-named-as-default-member
+import { Service } from 'wax-prosemirror-core';
 import TransformToolGroup from './TransformToolGroup';
 
 class TransformToolGroupService extends Service {
-    register() {
-        this.container.bind('TransformToolGroup').to(TransformToolGroup);
-    }
+  register() {
+    this.container.bind('TransformToolGroup').to(TransformToolGroup);
+  }
 }
 
-export default TransformToolGroupService;
\ No newline at end of file
+export default TransformToolGroupService;
diff --git a/wax-prosemirror-utilities/.gitignore b/wax-prosemirror-utilities/.gitignore
deleted file mode 100644
index b3e3ccb6b0ce3a90e1eb3f9e78da7924ea89f116..0000000000000000000000000000000000000000
--- a/wax-prosemirror-utilities/.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-utilities/index.js b/wax-prosemirror-utilities/index.js
deleted file mode 100644
index 1c22b04070945cdbae3b69a56390483156ea16af..0000000000000000000000000000000000000000
--- a/wax-prosemirror-utilities/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export { default as SchemaHelpers } from './src/schema/SchemaHelpers';
-export { default as DocumentHelpers } from './src/document/DocumentHelpers';
-export { default as Commands } from './src/commands/Commands';
-export { default as DefaultSchema } from './src/schema/DefaultSchema';
-export { default as EditoriaSchema } from './src/schema/EditoriaSchema';
diff --git a/wax-prosemirror-utilities/package.json b/wax-prosemirror-utilities/package.json
deleted file mode 100644
index f8a7659847d9fca316f4a81cc21d13783e24c38b..0000000000000000000000000000000000000000
--- a/wax-prosemirror-utilities/package.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "name": "wax-prosemirror-utilities",
-  "author": "Christos Kokosias & Giannis Kopanas",
-  "version": "0.5.13",
-  "description": "Wax prosemirror utilities",
-  "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-commands": "1.2.1",
-    "prosemirror-transform": "1.3.4",
-    "prosemirror-utils": "^0.9.6",
-    "uuid": "^7.0.3"
-  }
-}
diff --git a/wax-prosemirror-utilities/rollup.config.js b/wax-prosemirror-utilities/rollup.config.js
deleted file mode 100644
index f17dbfa377b4bba8d4a0b26efe37d72762ce165b..0000000000000000000000000000000000000000
--- a/wax-prosemirror-utilities/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: true,
-    },
-  ],
-  plugins: [
-    css(),
-    external({
-      includeDependencies: true,
-    }),
-    babel({
-      exclude: 'node_modules/**',
-      runtimeHelpers: true,
-    }),
-    commonjs(),
-    terser(),
-  ],
-  external: ['uuid'],
-};
diff --git a/yarn.lock b/yarn.lock
index 989ccacbd7c22c1a5cc1e9e0e65892195a102aef..2062732a117b3b4fc62a24303cbc5368efec3352 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -18478,6 +18478,16 @@ watchpack@^1.6.0, watchpack@^1.6.1:
     chokidar "^3.4.0"
     watchpack-chokidar2 "^2.0.0"
 
+wax-prosemirror-utilities@^0.5.13:
+  version "0.5.13"
+  resolved "https://registry.yarnpkg.com/wax-prosemirror-utilities/-/wax-prosemirror-utilities-0.5.13.tgz#76881a546424207da05d7d28f6d6e0b81789a3a0"
+  integrity sha512-PrzJyCll7qkPEc4YJQ3TwgFbqTOKWfwS4RMSv/k4wLoTFCrbGnuJVJLL4Brt1nPUtYZJAJySJMUN4r4LsapELw==
+  dependencies:
+    prosemirror-commands "1.2.1"
+    prosemirror-transform "1.3.4"
+    prosemirror-utils "^0.9.6"
+    uuid "^7.0.3"
+
 wbuf@^1.1.0, wbuf@^1.7.3:
   version "1.7.3"
   resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"