diff --git a/editors/default/src/Default.js b/editors/default/src/Default.js
index 88e0598bdee800eef14a26dd15057e9103b7e531..29a89c2751d7ce75e60779ff59448b4733c56ea2 100644
--- a/editors/default/src/Default.js
+++ b/editors/default/src/Default.js
@@ -1,22 +1,21 @@
 import React, { Component } from "react";
-import { Schema } from "prosemirror-model";
-import { Wax } from "wax-prosemirror-core";
+import { Wax, createSchema } from "wax-prosemirror-core";
 import { defaultSchema } from "wax-prosemirror-schema";
 
-const { nodes, marks } = defaultSchema;
+const plugins = [];
+const keys = {};
 
 const options = {
-  schema: new Schema({ nodes, marks })
+  schema: new createSchema(defaultSchema)
 };
 
 class Default extends Component {
   render() {
-    console.log(options.schema);
     return (
       <Wax
-        placeholder="Type Something..."
         options={options}
         autoFocus
+        placeholder="Type Something..."
         theme="default"
         layout="default"
         debug
diff --git a/package.json b/package.json
index ef902561f751e358997c6216fad00f4215ed7436..9829ae6ae7ceb86bd3c22ca3da7f201358e21653 100644
--- a/package.json
+++ b/package.json
@@ -20,18 +20,19 @@
     "clean:root": "rm -rf node_modules",
     "reset": "yarn clean && yarn",
     "build": "lerna run build --concurrency=1 --stream",
+    "aleksis": "cd editors/aleksis && yarn start",
     "default": "cd editors/default && yarn start"
   },
   "dependencies": {},
   "devDependencies": {
-    "lerna": "^2.6.0",
+    "@babel/plugin-proposal-class-properties": "^7.0.0",
     "@babel/preset-env": "^7.0.0",
     "@babel/preset-react": "^7.0.0",
-    "@babel/plugin-proposal-class-properties": "^7.0.0",
     "css-loader": "^0.28.11",
+    "lerna": "^2.6.0",
     "style-loader": "^0.23.1",
-    "svg-inline-loader": "^0.8.0",
-    "stylelint": "^8.2.0"
+    "stylelint": "^8.2.0",
+    "svg-inline-loader": "^0.8.0"
   },
   "workspaces": [
     "wax-prosemirror-core",
diff --git a/wax-prosemirror-core/Wax.js b/wax-prosemirror-core/Wax.js
index 4f1d59e720ad6d78d75dcb0f722efcf4811618c2..b6e6d9a43f28a7407358a5f482978d3d3a8b8040 100644
--- a/wax-prosemirror-core/Wax.js
+++ b/wax-prosemirror-core/Wax.js
@@ -4,7 +4,6 @@ import debounce from "lodash/debounce";
 import { DOMParser, DOMSerializer } from "prosemirror-model";
 
 import Editor from "./Editor";
-import WaxSchema from "./config/classes/WaxSchema";
 import plugins from "./config/plugins";
 import placeholder from "./config/plugins/placeholder";
 
diff --git a/wax-prosemirror-core/config/classes/CodeBlockView.js b/wax-prosemirror-core/config/classes/CodeBlockView.js
index 0c5ad469fd94e9955df283733e41c7749f43e7c7..4ef236479329f37eafda3a94679ebd88767374be 100644
--- a/wax-prosemirror-core/config/classes/CodeBlockView.js
+++ b/wax-prosemirror-core/config/classes/CodeBlockView.js
@@ -16,9 +16,9 @@ import { undo, redo } from "prosemirror-history";
 import { TextSelection } from "prosemirror-state";
 import { keymap } from "prosemirror-keymap";
 
-import WaxSchema from "./WaxSchema";
+// import WaxSchema from "./WaxSchema";
 
-const schema = WaxSchema();
+// const schema = WaxSchema();
 
 class CodeBlockView {
   constructor(node, view, getPos) {
diff --git a/wax-prosemirror-core/config/classes/WaxSchema.js b/wax-prosemirror-core/config/classes/WaxSchema.js
deleted file mode 100644
index 7743257580a26595a5cdcef1c181bbbd242e1ffc..0000000000000000000000000000000000000000
--- a/wax-prosemirror-core/config/classes/WaxSchema.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import { Schema } from "prosemirror-model";
-
-import nodes from "../nodes";
-import marks from "../marks";
-
-class WaxSchema {
-  constructor(config = { nodes: {}, marks: {} }) {
-    if (!WaxSchema.instance) {
-      this.schema = {};
-      Object.assign(nodes, config.nodes);
-      Object.assign(marks, config.marks);
-      const schema = new Schema({ nodes, marks });
-      WaxSchema.instance = schema;
-      return WaxSchema.instance;
-    }
-
-    return WaxSchema.instance;
-  }
-}
-
-export default config => {
-  const instance = new WaxSchema(config);
-  return Object.freeze(instance);
-};
diff --git a/wax-prosemirror-core/config/rules.js b/wax-prosemirror-core/config/rules.js
index 7396e57be964601fff6a55b696e24e5f70177a7b..83ea4ad278acd2bc660fc45b1b1f500f51cb4c7d 100644
--- a/wax-prosemirror-core/config/rules.js
+++ b/wax-prosemirror-core/config/rules.js
@@ -7,9 +7,9 @@ import {
   ellipsis
 } from "prosemirror-inputrules";
 
-import WaxSchema from "./classes/WaxSchema";
+// import WaxSchema from "./classes/WaxSchema";
 
-const schema = WaxSchema();
+// const schema = WaxSchema();
 
 export default inputRules({
   rules: [
diff --git a/wax-prosemirror-core/index.js b/wax-prosemirror-core/index.js
index 2e3049cbd1a780293954e18c81c4cb464c560f02..35d79a14c007fc1fee924ef5bdafcf50164046f7 100644
--- a/wax-prosemirror-core/index.js
+++ b/wax-prosemirror-core/index.js
@@ -1,6 +1,6 @@
 export { default as Wax } from "./Wax";
 
-export { default as WaxSchema } from "./config/classes/WaxSchema";
+export { default as createSchema } from "./config/classes/createSchema";
 export { default as plugins } from "./config/plugins";
 
 //Components