diff --git a/editors/editoria/src/Editoria.js b/editors/editoria/src/Editoria.js
index 2ad25dee439832b7e8f94d28d14f468a42c464b3..cf9c690d2b67e40cf1d04fb586d9964b90001ec2 100644
--- a/editors/editoria/src/Editoria.js
+++ b/editors/editoria/src/Editoria.js
@@ -51,9 +51,8 @@ const Editoria = () => (
       value="<p> <span style='font-style:italic;'>test</span>hello <code> this is the code</code></p>"
       layout={EditoriaLayout}
       user={user}
-      debug
     />
-    <div id="editors"></div>
+    <div id="editors" />
   </Fragment>
 );
 
diff --git a/editors/editoria/src/config/config.js b/editors/editoria/src/config/config.js
index 05a78a8f1b474ffc01b5a6977fa85e567db133e4..8934590881c27ea4f7930bd24ffc7f73efc736cb 100644
--- a/editors/editoria/src/config/config.js
+++ b/editors/editoria/src/config/config.js
@@ -14,7 +14,9 @@ import {
   BaseToolGroupService,
   DisplayBlockLevelService,
   DisplayToolGroupService,
-  ImageToolGroupService
+  ImageToolGroupService,
+  TextBlockLevelService,
+  TextToolGroupService
 } from "wax-prosemirror-services";
 
 import invisibles, {
@@ -31,7 +33,7 @@ export default {
     },
     {
       templateArea: "leftSideBar",
-      toolGroups: ["Display"]
+      toolGroups: ["Display", "Text"]
     }
   ],
 
@@ -59,8 +61,8 @@ export default {
     new BaseToolGroupService(),
     new DisplayBlockLevelService(),
     new DisplayToolGroupService(),
-    new ImageToolGroupService()
-    // new TextBlockLevelService(),
-    // new TextToolGroupService()
+    new ImageToolGroupService(),
+    new TextBlockLevelService(),
+    new TextToolGroupService()
   ]
 };
diff --git a/wax-prosemirror-schema/src/nodes/extractPoetryNode.js b/wax-prosemirror-schema/src/nodes/extractPoetryNode.js
index 63bbaa546d64b4c5e34a44d33db04cbb553210f0..bf4499c03fd41d297c9efd90fc19948cb5bc9acc 100644
--- a/wax-prosemirror-schema/src/nodes/extractPoetryNode.js
+++ b/wax-prosemirror-schema/src/nodes/extractPoetryNode.js
@@ -22,7 +22,7 @@ const extractPoetry = {
   ],
   toDOM(hook, next) {
     const attrs = blockLevelToDOM(hook.node);
-    hook.value[("p", attrs, 0)];
+    hook.value = ["p", attrs, 0];
     next();
   }
 };
diff --git a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js
new file mode 100644
index 0000000000000000000000000000000000000000..77ac0af54e863f2ce42ec57ce4f0b1fc8944f5c0
--- /dev/null
+++ b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js
@@ -0,0 +1,22 @@
+import Tools from "../../lib/Tools";
+import { injectable } from "inversify";
+import { wrapIn } from "prosemirror-commands";
+
+@injectable()
+class BlockQuote extends Tools {
+  title = "Change to Block Quote";
+  content = "Block Quote";
+
+  get run() {
+    return (state, dispatch) => {
+      wrapIn(state.config.schema.nodes.blockquote)(state, dispatch);
+    };
+  }
+
+  get enable() {
+    return state => {
+      return wrapIn(state.config.schema.nodes.blockquote)(state);
+    };
+  }
+}
+export default BlockQuote;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js
new file mode 100644
index 0000000000000000000000000000000000000000..b81a5f94c1d286a5f16f5a279de6bba0ffde3084
--- /dev/null
+++ b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js
@@ -0,0 +1,20 @@
+import Service from "wax-prosemirror-core/src/services/Service";
+import { blockQuoteNode } from "wax-prosemirror-schema";
+import BlockQuote from "./BlockQuote";
+
+class BlockQuoteService extends Service {
+  boot() {}
+
+  register() {
+    this.container.bind("BlockQuote").to(BlockQuote);
+    const createNode = this.container.get("CreateNode");
+    createNode(
+      {
+        blockquote: blockQuoteNode
+      },
+      { toWaxSchema: true }
+    );
+  }
+}
+
+export default BlockQuoteService;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetry.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetry.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3507f5d87bb4fdb95ed926d34ccb8bd9c2a1eba
--- /dev/null
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetry.js
@@ -0,0 +1,22 @@
+import Tools from "../../lib/Tools";
+import { injectable } from "inversify";
+import { setBlockType } from "prosemirror-commands";
+
+@injectable()
+class ExtractPoetry extends Tools {
+  title = "Change to Extract Poetry";
+  content = "Extract Poetry";
+
+  get run() {
+    return (state, dispatch) => {
+      setBlockType(state.config.schema.nodes.extractPoetry)(state, dispatch);
+    };
+  }
+
+  get enable() {
+    return state => {
+      return setBlockType(state.config.schema.nodes.extractPoetry)(state);
+    };
+  }
+}
+export default ExtractPoetry;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9b0a043a08c75a58aaf1d3540b0b146ced763768 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js
@@ -0,0 +1,20 @@
+import Service from "wax-prosemirror-core/src/services/Service";
+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");
+    createNode(
+      {
+        extractPoetry: extractPoetryNode
+      },
+      { toWaxSchema: true }
+    );
+  }
+}
+
+export default ExtractPoetryService;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProse.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProse.js
new file mode 100644
index 0000000000000000000000000000000000000000..261cfe18de1fd51b7b63a0c5376a6fa338bfb281
--- /dev/null
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProse.js
@@ -0,0 +1,22 @@
+import Tools from "../../lib/Tools";
+import { injectable } from "inversify";
+import { setBlockType } from "prosemirror-commands";
+
+@injectable()
+class ExtractProse extends Tools {
+  title = "Change to Extract Prose";
+  content = "Extract Prose";
+
+  get run() {
+    return (state, dispatch) => {
+      setBlockType(state.config.schema.nodes.extractProse)(state, dispatch);
+    };
+  }
+
+  get enable() {
+    return state => {
+      return setBlockType(state.config.schema.nodes.extractProse)(state);
+    };
+  }
+}
+export default ExtractProse;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..74933be551e9260694c2518de6d25ad335194e03 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js
@@ -0,0 +1,20 @@
+import Service from "wax-prosemirror-core/src/services/Service";
+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");
+    createNode(
+      {
+        extractProse: extractProseNode
+      },
+      { toWaxSchema: true }
+    );
+  }
+}
+
+export default ExtractProseService;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js
index ce7affa84fadbb1cf12785e89f00e08ccc413155..bcc3c506e807d35422df6cf9fb47621c908c1575 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js
@@ -9,13 +9,13 @@ class ParagraphContinued extends Tools {
 
   get run() {
     return (state, dispatch) => {
-      setBlockType(state.config.schema.nodes.paragraph)(state, dispatch);
+      setBlockType(state.config.schema.nodes.paragraphCont)(state, dispatch);
     };
   }
 
   get enable() {
     return state => {
-      return setBlockType(state.config.schema.nodes.paragraph)(state);
+      return setBlockType(state.config.schema.nodes.paragraphCont)(state);
     };
   }
 }
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js
index 553f8bfc9ed60ce9493fd1bb2cbe3400bfecb3df..dbb93a649076d611dfb88219f8544fdd20b9697c 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js
@@ -1,4 +1,5 @@
 import Service from "wax-prosemirror-core/src/services/Service";
+import { paragraphContNode } from "wax-prosemirror-schema";
 import ParagraphContinued from "./ParagraphContinued";
 
 class ParagraphContinuedService extends Service {
@@ -6,6 +7,13 @@ class ParagraphContinuedService extends Service {
 
   register() {
     this.container.bind("ParagraphContinued").to(ParagraphContinued);
+    const createNode = this.container.get("CreateNode");
+    createNode(
+      {
+        paragraphCont: paragraphContNode
+      },
+      { toWaxSchema: true }
+    );
   }
 }
 
diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js
index aecfcffd8ae41f76e40db219d2d95cdeb2402b73..b02a73f210db858dc2ada728c00099e5f7d53ed2 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js
@@ -1,7 +1,7 @@
 import Service from "wax-prosemirror-core/src/services/Service";
 import Paragraph from "./Paragraph";
 
-class PsragraphService extends Service {
+class ParagraphService extends Service {
   boot() {}
 
   register() {
diff --git a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNote.js b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNote.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e05eea06c5494e8ef41034841d395b82be6bbf5
--- /dev/null
+++ b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNote.js
@@ -0,0 +1,22 @@
+import Tools from "../../lib/Tools";
+import { injectable } from "inversify";
+import { setBlockType } from "prosemirror-commands";
+
+@injectable()
+class SourceNote extends Tools {
+  title = "Change to Source Note";
+  content = "Source Note";
+
+  get run() {
+    return (state, dispatch) => {
+      setBlockType(state.config.schema.nodes.sourceNote)(state, dispatch);
+    };
+  }
+
+  get enable() {
+    return state => {
+      return setBlockType(state.config.schema.nodes.sourceNote)(state);
+    };
+  }
+}
+export default SourceNote;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f57ac2f927fcf006dc7cc97d61b3441728814413 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js
@@ -0,0 +1,20 @@
+import Service from "wax-prosemirror-core/src/services/Service";
+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");
+    createNode(
+      {
+        sourceNote: sourceNoteNode
+      },
+      { toWaxSchema: true }
+    );
+  }
+}
+
+export default SourceNoteService;
diff --git a/wax-prosemirror-services/src/TextBlockLevel/index.js b/wax-prosemirror-services/src/TextBlockLevel/index.js
index 3bf999cd869e5c2d549d50ff0dcdad1a8b66c607..7506441049eced9f65d37eb4a3e2a2b6fe2875be 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/index.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/index.js
@@ -1,13 +1,15 @@
-// import ExtractPoetryService from "./ExtractPoetryService/ExtractPoetryService";
-// import ExtractProseService from "./ExtractProseService/ExtractProseService";
-// import ParagraphContinuedService from "./ParagraphContinuedService/ParagraphContinuedService";
-// import ParagraphService from "./ParagraphService/ParagraphService";
-// import SourceNoteService from "./SourceNoteService/SourceNoteService";
-//
-// export default [
-//   new ExtractPoetryService(),
-//   new ExtractProseService(),
-//   new ParagraphContinuedService(),
-//   new ParagraphService(),
-//   new SourceNoteService()
-// ];
+import ExtractPoetryService from "./ExtractPoetryService/ExtractPoetryService";
+import ExtractProseService from "./ExtractProseService/ExtractProseService";
+import ParagraphContinuedService from "./ParagraphContinuedService/ParagraphContinuedService";
+import ParagraphService from "./ParagraphService/ParagraphService";
+import SourceNoteService from "./SourceNoteService/SourceNoteService";
+import BlockQuoteService from "./BlockQuoteService/BlockQuoteService";
+
+export default [
+  new ExtractPoetryService(),
+  new ExtractProseService(),
+  new ParagraphContinuedService(),
+  new ParagraphService(),
+  new SourceNoteService(),
+  new BlockQuoteService()
+];
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js
index e14231b123a061a168b86fdb92242c48db81c95e..b1cdb108ad49c24f24a798e7cde4d4b29c59c788 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js
@@ -1,12 +1,35 @@
+import React from "react";
 import { injectable, inject } from "inversify";
 import ToolGroup from "../../lib/ToolGroup";
 
 @injectable()
 class Text extends ToolGroup {
   tools = [];
-  constructor() {
+  title = () => {
+    return (
+      <span>
+        Text
+        <hr />
+      </span>
+    );
+  };
+  constructor(
+    @inject("Paragraph") paragraph,
+    @inject("ParagraphContinued") paragraphContinued,
+    @inject("ExtractProse") extractProse,
+    @inject("ExtractPoetry") extractPoetry,
+    @inject("SourceNote") sourceNote,
+    @inject("BlockQuote") blockQuote
+  ) {
     super();
-    this.tools = [];
+    this.tools = [
+      paragraph,
+      paragraphContinued,
+      extractProse,
+      extractPoetry,
+      sourceNote,
+      blockQuote
+    ];
   }
 }