diff --git a/wax-prosemirror-core/src/Application.js b/wax-prosemirror-core/src/Application.js
index 5b5c089c0d8fdffa94df2fdd6258f2b3e2667db2..33d89fade7127e2d947b0524e4f32bfbc06b0997 100644
--- a/wax-prosemirror-core/src/Application.js
+++ b/wax-prosemirror-core/src/Application.js
@@ -77,7 +77,7 @@ export default class Application {
     this.PmPlugins = {};
     this.schema = {};
     this.shortCuts = {};
-    this.rules = [];
+    this.rules = {};
   }
 
   static create(config) {
diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js
index bf9cfb8571be737f3e5a5e5b51426e24ee67972f..4eac61ebe14368adc4c110b7d3b20d81056de4ad 100644
--- a/wax-prosemirror-core/src/WaxView.js
+++ b/wax-prosemirror-core/src/WaxView.js
@@ -46,7 +46,6 @@ const WaxView = forwardRef((props, ref) => {
   } = props;
 
   const WaxEditorRef = useRef();
-  const [mounted, setMounted] = useState(false);
   const context = useContext(WaxContext);
   const { createPortal } = useContext(PortalContext);
 
@@ -54,12 +53,6 @@ const WaxView = forwardRef((props, ref) => {
 
   const schema = context.app.getSchema();
 
-  if (!mounted) {
-    context.app.bootServices();
-    context.app.getShortCuts();
-    context.app.getRules();
-  }
-
   const setEditorRef = useCallback(
     // eslint-disable-next-line consistent-return
     node => {
@@ -69,6 +62,10 @@ const WaxView = forwardRef((props, ref) => {
         // clean up the unmount if you need to.
       }
       if (node) {
+        context.app.bootServices();
+        context.app.getShortCuts();
+        context.app.getRules();
+
         const options = WaxOptions({
           ...props,
           schema,
@@ -100,8 +97,6 @@ const WaxView = forwardRef((props, ref) => {
           },
         );
 
-        setMounted(true);
-
         context.updateView(
           {
             main: view,
diff --git a/wax-prosemirror-services/src/LinkService/LinkService.js b/wax-prosemirror-services/src/LinkService/LinkService.js
index 68c92c1a2ed366d24b2bcc0050c047a7fd2a8803..f89d026c9102f42f1811ef92485dbcad99c82288 100644
--- a/wax-prosemirror-services/src/LinkService/LinkService.js
+++ b/wax-prosemirror-services/src/LinkService/LinkService.js
@@ -10,6 +10,9 @@ export default class LinkService extends Service {
   boot() {
     const createOverlay = this.container.get('CreateOverlay');
     const createRule = this.container.get('CreateRule');
+    const {
+      schema: { schema },
+    } = this.app;
     createOverlay(
       LinkComponent,
       {},
@@ -19,7 +22,7 @@ export default class LinkService extends Service {
         selection: false,
       },
     );
-    // createRule([linkRule(this.schema.marks.link)]);
+    createRule([linkRule(schema.marks.link)]);
   }
 
   register() {
diff --git a/wax-prosemirror-services/src/MathService/BlockInputRule.js b/wax-prosemirror-services/src/MathService/BlockInputRule.js
index fbfb5067c0fd305e67b76fb2d452b3da9f22691f..2ca7c909456b83f802b77a2a8d2f9a8958436b13 100644
--- a/wax-prosemirror-services/src/MathService/BlockInputRule.js
+++ b/wax-prosemirror-services/src/MathService/BlockInputRule.js
@@ -6,13 +6,7 @@ const blockInputRule = (pattern, nodeType, getAttrs) => {
   return new InputRule(pattern, (state, match, start, end) => {
     let $start = state.doc.resolve(start);
     let attrs = getAttrs instanceof Function ? getAttrs(match) : getAttrs;
-    console.log(
-      !$start
-        .node(-1)
-        .canReplaceWith($start.index(-1), $start.indexAfter(-1), nodeType),
-      nodeType,
-      $start.node(-1),
-    );
+
     if (
       !$start
         .node(-1)
diff --git a/wax-prosemirror-services/src/MathService/MathService.js b/wax-prosemirror-services/src/MathService/MathService.js
index 12f54b4b7efeb84bb5178bc4712ab426cc65fbf7..5e0e264981f4d4744a75acf365deb0826be4bbdb 100644
--- a/wax-prosemirror-services/src/MathService/MathService.js
+++ b/wax-prosemirror-services/src/MathService/MathService.js
@@ -16,9 +16,13 @@ class MathService extends Service {
     this.app.PmPlugins.add('mathplugin', mathPlugin);
     this.app.PmPlugins.add('mathselectplugin', mathSelectPlugin);
     const createRule = this.container.get('CreateRule');
+    const {
+      schema: { schema },
+    } = this.app;
+
     createRule([
-      blockInputRule(/^\$\$\s+$/, this.schema.nodes.math_display),
-      inlineInputRule(/(?!\\)\$(.+)(?!\\)\$/, this.schema.nodes.math_inline),
+      blockInputRule(/^\$\$\s+$/, schema.nodes.math_display),
+      inlineInputRule(/(?!\\)\$(.+)(?!\\)\$/, schema.nodes.math_inline),
     ]);
   }
 
diff --git a/wax-prosemirror-services/src/RulesService/Rules.js b/wax-prosemirror-services/src/RulesService/Rules.js
index b682ddb741907df1c1d52481ef7ef0aface481ab..6b4ebacabc558c33135de0a93783c77ac6d2aa14 100644
--- a/wax-prosemirror-services/src/RulesService/Rules.js
+++ b/wax-prosemirror-services/src/RulesService/Rules.js
@@ -1,10 +1,5 @@
 import { injectable } from 'inversify';
-import {
-  inputRules,
-  wrappingInputRule,
-  textblockTypeInputRule,
-  smartQuotes,
-} from 'prosemirror-inputrules';
+import { inputRules, smartQuotes } from 'prosemirror-inputrules';
 
 const defaultRules = [
   ...smartQuotes,
@@ -38,7 +33,6 @@ class Rules {
   extendedRules = defaultRules;
   addRule(rule) {
     this.extendedRules.push(...rule);
-    // this.extendedRules = defaultRules.concat(...rule);
   }
 
   createRules() {
diff --git a/wax-prosemirror-services/src/RulesService/RulesService.js b/wax-prosemirror-services/src/RulesService/RulesService.js
index 529054a37f8f378b21202e4986a440c52c816090..92e8d7f48a87fd724b861719c8f58405adddaa63 100644
--- a/wax-prosemirror-services/src/RulesService/RulesService.js
+++ b/wax-prosemirror-services/src/RulesService/RulesService.js
@@ -7,14 +7,13 @@ export default class RulesService extends Service {
   boot() {
     const configRules = this.app.config.get('config.RulesService');
     const createRule = this.container.get('CreateRule');
-    // if (configRules) createRule(configRules);
+    if (configRules) createRule(configRules);
   }
 
   register() {
     this.container.bind('Rules').to(Rules).inSingletonScope();
     this.container.bind('CreateRule').toFactory(context => {
       return rule => {
-        console.log(rule);
         const ruleInstance = context.container.get('Rules');
         ruleInstance.addRule(rule);
       };