diff --git a/editors/editoria/src/config/config.js b/editors/editoria/src/config/config.js
index 09caa7d42b0d8abae38e5a82af6eb4d93bfceb08..5efeb8d0f655f64ca298bdff62e383202911bf7e 100644
--- a/editors/editoria/src/config/config.js
+++ b/editors/editoria/src/config/config.js
@@ -21,6 +21,8 @@ import {
   NoteToolGroupService,
   TrackChangeService,
   CommentsService,
+  CodeBlockService,
+  CodeBlockToolGroupService,
 } from 'wax-prosemirror-services';
 
 import { WaxSelectionPlugin } from 'wax-prosemirror-plugins';
@@ -45,6 +47,7 @@ export default {
         'Lists',
         'Images',
         'Tables',
+        'CodeBlock',
       ],
     },
     {
@@ -86,5 +89,7 @@ export default {
     new AnnotationToolGroupService(),
     new NoteToolGroupService(),
     new ListToolGroupService(),
+    new CodeBlockService(),
+    new CodeBlockToolGroupService(),
   ],
 };
diff --git a/wax-prosemirror-schema/src/nodes/codeBlockNode.js b/wax-prosemirror-schema/src/nodes/codeBlockNode.js
index 18ae5b2945ae3a23a623471be12bdd23c83eb112..21fbdd2c6f0f2f1586126d5e48ad4585c67fd5af 100644
--- a/wax-prosemirror-schema/src/nodes/codeBlockNode.js
+++ b/wax-prosemirror-schema/src/nodes/codeBlockNode.js
@@ -1,5 +1,5 @@
 const codeBlock = {
-  content: 'text*',
+  content: 'block+',
   group: 'block',
   code: true,
   defining: true,
diff --git a/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
index 29c71105cb1e80c5ba164b2c57c7f20a36481dda..1fa6cab708e1d27144164541cce854b5a9ff70ca 100644
--- a/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
+++ b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
@@ -6,7 +6,7 @@ export default class CodeBlockService extends Service {
   boot() {}
 
   register() {
-    this.container.bind('CodeBlock').to(CodeBlockTool);
+    this.container.bind('CodeBlockTool').to(CodeBlockTool);
     const createNode = this.container.get('CreateNode');
 
     createNode({
diff --git a/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
index 8e7faff1bf164aedd26d261dcebe4456224e5a14..bce0d126dce3ae81c8b8ec4afac5b49e35659f14 100644
--- a/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
+++ b/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
@@ -1,14 +1,18 @@
 import Tools from '../lib/Tools';
 import { injectable } from 'inversify';
 import { icons } from 'wax-prosemirror-components';
-import { Fragment } from 'prosemirror-model';
+import { wrapIn } from 'prosemirror-commands';
 
 @injectable()
 class CodeBlockTool extends Tools {
   title = 'Insert Code Block';
   content = icons.footnote;
 
-  get run() {}
+  get run() {
+    return (state, dispatch) => {
+      wrapIn(state.config.schema.nodes.codeblock)(state, dispatch);
+    };
+  }
 
   get enable() {}
 }
diff --git a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js
index 8ad99cdf3a807800578e7628d78e02ac4092e97e..51fdb7b5e98bbc8ce3c08412066f56444d653b85 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js
@@ -4,7 +4,7 @@ import ToolGroup from '../../lib/ToolGroup';
 @injectable()
 class CodeBlock extends ToolGroup {
   tools = [];
-  constructor(@inject('CodeBlock') codeblock) {
+  constructor(@inject('CodeBlockTool') codeblock) {
     super();
     this.tools = [codeblock];
   }