diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js
index d821cda25f31af100d0d6f5cd35b7b4acc9068fd..6e9de4854916088bdc7427bce55024fb193f5953 100644
--- a/wax-prosemirror-schema/index.js
+++ b/wax-prosemirror-schema/index.js
@@ -12,6 +12,7 @@ export { default as underlineMark } from './src/marks/underlineMark';
 export { default as smallcapsMark } from './src/marks/smallcapsMark';
 export { default as sourceMark } from './src/marks/sourceMark';
 export { default as commentMark } from './src/marks/commentMark';
+export { default as mathSelectMark } from './src/marks/mathSelectMark';
 /*
 LIST OF TRACK CHANGES MARKS
 */
@@ -37,6 +38,8 @@ export { default as headingNode } from './src/nodes/headingNode';
 export { default as blockQuoteNode } from './src/nodes/blockQuoteNode';
 export { default as footNoteNode } from './src/nodes/footNoteNode';
 export { default as codeBlockNode } from './src/nodes/codeBlockNode';
+export { default as mathInlineNode } from './src/nodes/mathInlineNode';
+export { default as mathDisplayNode } from './src/nodes/mathDisplayNode';
 /*
 LIST OF TRACK CHANGES NODES
 */
diff --git a/wax-prosemirror-schema/src/marks/mathSelectMark.js b/wax-prosemirror-schema/src/marks/mathSelectMark.js
new file mode 100644
index 0000000000000000000000000000000000000000..bda8ec0cc19ca085679b1b2a30efc99f09f2d0eb
--- /dev/null
+++ b/wax-prosemirror-schema/src/marks/mathSelectMark.js
@@ -0,0 +1,8 @@
+const mathSelectMark = {
+  toDOM() {
+    return ['math-select', 0];
+  },
+  parseDOM: [{ tag: 'math-select' }],
+};
+
+export default mathSelectMark;
diff --git a/wax-prosemirror-schema/src/nodes/mathDisplayNode.js b/wax-prosemirror-schema/src/nodes/mathDisplayNode.js
new file mode 100644
index 0000000000000000000000000000000000000000..745e2215bdaaa7a27418147e670297a348babefe
--- /dev/null
+++ b/wax-prosemirror-schema/src/nodes/mathDisplayNode.js
@@ -0,0 +1,14 @@
+const mathDisplayNode = {
+  group: 'block math',
+  content: 'text*',
+  atom: true,
+  code: true,
+  toDOM: () => ['math-display', { class: 'math-node' }, 0],
+  parseDOM: [
+    {
+      tag: 'math-display',
+    },
+  ],
+};
+
+export default mathDisplayNode;
diff --git a/wax-prosemirror-schema/src/nodes/mathInlineNode.js b/wax-prosemirror-schema/src/nodes/mathInlineNode.js
new file mode 100644
index 0000000000000000000000000000000000000000..ff890f1c1b7eb916839014ffff8f85eb88dd2fe1
--- /dev/null
+++ b/wax-prosemirror-schema/src/nodes/mathInlineNode.js
@@ -0,0 +1,14 @@
+const mathInlineNode = {
+  group: 'inline math',
+  content: 'text*',
+  inline: true,
+  atom: true,
+  toDOM: () => ['math-inline', { class: 'math-node' }, 0],
+  parseDOM: [
+    {
+      tag: 'math-inline',
+    },
+  ],
+};
+
+export default mathInlineNode;
diff --git a/wax-prosemirror-services/src/MathService/MathService.js b/wax-prosemirror-services/src/MathService/MathService.js
index 267aa147ee98f46d00a64d1b69adb91e0c2aed3a..1cc778bae01bb4e22be0edfdab08499dc9eea138 100644
--- a/wax-prosemirror-services/src/MathService/MathService.js
+++ b/wax-prosemirror-services/src/MathService/MathService.js
@@ -1,3 +1,8 @@
+import {
+  mathDisplayNode,
+  mathInlineNode,
+  mathSelectMark,
+} from 'wax-prosemirror-schema';
 import { mathPlugin, mathSelectPlugin } from 'wax-prosemirror-plugins';
 import Service from '../Service';
 
@@ -7,10 +12,21 @@ class MathService extends Service {
   boot() {
     this.app.PmPlugins.add('mathplugin', mathPlugin);
     this.app.PmPlugins.add('mathselectplugin', mathSelectPlugin);
-    console.log(this.app);
   }
 
-  register() {}
+  register() {
+    const createNode = this.container.get('CreateNode');
+    const createMark = this.container.get('CreateMark');
+    createNode({
+      math_display: mathDisplayNode,
+    });
+    createNode({
+      math_inline: mathInlineNode,
+    });
+    createMark({
+      math_select: mathSelectMark,
+    });
+  }
 }
 
 export default MathService;