diff --git a/editors/editoria/src/config/config.js b/editors/editoria/src/config/config.js
index ff7367bf1fb9ff3929b7e7566232a3d7a33514f5..18946d5bf729ee35fee9f975b0199220aec0154a 100644
--- a/editors/editoria/src/config/config.js
+++ b/editors/editoria/src/config/config.js
@@ -10,7 +10,11 @@ export default {
   MenuService: [
     {
       templateArea: "topBar",
-      toolGroups: ["Annotation", { name: "RedoUndo", exclude: ["Redo"] }]
+      toolGroups: [
+        "Annotations",
+        "Lists",
+        { name: "RedoUndo", exclude: ["Redo"] }
+      ]
     },
     {
       templateArea: "leftSideBar",
diff --git a/wax-prosemirror-core/src/config/defaultConfig.js b/wax-prosemirror-core/src/config/defaultConfig.js
index 83635b631a987393efa3a4cafbe9d6233713bb8b..55d21c2340ad1d6adb2208669a666e6e429e57f2 100644
--- a/wax-prosemirror-core/src/config/defaultConfig.js
+++ b/wax-prosemirror-core/src/config/defaultConfig.js
@@ -1,6 +1,6 @@
 import LayoutService from "../services/LayoutService/LayoutService";
 import {
-  AnnotationService,
+  AnnotationToolGroupService,
   ImageService,
   MenuService,
   SchemaService,
@@ -11,7 +11,8 @@ import {
   TextStyleService,
   InlineAnnotationsService,
   LinkService,
-  ListsService
+  ListsService,
+  ListToolGroupService
 } from "wax-prosemirror-services";
 
 export default {
@@ -22,7 +23,8 @@ export default {
     new LayoutService(),
     new MenuService(),
     new RedoUndoService(),
-    new AnnotationService(),
+    new AnnotationToolGroupService(),
+    new ListToolGroupService(),
     new TextStyleService(),
     new PlaceholderService(),
     new ImageService(),
diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js
index 951afea2c80f84b2a01ef6f05e60318498ad45b4..e884c5d7ce9923dafb21b0bad173dc73102e8379 100644
--- a/wax-prosemirror-services/index.js
+++ b/wax-prosemirror-services/index.js
@@ -3,9 +3,6 @@ export { default as MenuService } from "./src/MenuService/MenuService";
 export {
   default as RedoUndoService
 } from "./src/RedoUndoService/RedoUndoService";
-export {
-  default as AnnotationService
-} from "./src/AnnotationService/AnnotationService";
 export {
   default as TextStyleService
 } from "./src/TextStyleService/TextStyleService";
@@ -25,3 +22,13 @@ export {
 export { default as ListsService } from "./src/ListsService/ListsService";
 
 export { default as Tool } from "./src/lib/Tools";
+
+/*
+ToolGroups
+*/
+export {
+  default as AnnotationToolGroupService
+} from "./src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService";
+export {
+  default as ListToolGroupService
+} from "./src/WaxToolGroups/ListToolGroupService/ListToolGroupService";
diff --git a/wax-prosemirror-services/src/AnnotationService/AnnotationService.js b/wax-prosemirror-services/src/AnnotationService/AnnotationService.js
deleted file mode 100644
index 56269cef36f65afe7fea46edbf448ca58a8986c8..0000000000000000000000000000000000000000
--- a/wax-prosemirror-services/src/AnnotationService/AnnotationService.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import Annotation from "./Annotation";
-import Service from "wax-prosemirror-core/src/services/Service";
-import * as Tools from "./tools";
-
-export default class AnnotationService extends Service {
-  name = "AnnotationService";
-
-  register() {
-    this.container.bind("Annotation").to(Annotation);
-    Object.entries(Tools).forEach(([key, value]) => {
-      this.container.bind(key).to(value);
-    });
-  }
-}
diff --git a/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js
new file mode 100644
index 0000000000000000000000000000000000000000..55b6e783c9b53eb7c301bd2d0cf19ffd786f0689
--- /dev/null
+++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js
@@ -0,0 +1,17 @@
+import Service from "wax-prosemirror-core/src/services/Service";
+
+import Annotations from "./Annotations";
+import * as Tools from "./tools";
+
+class AnnotationToolGroupService extends Service {
+  name = "AnnotationToolGroupService";
+
+  register() {
+    this.container.bind("Annotations").to(Annotations);
+    Object.entries(Tools).forEach(([key, value]) => {
+      this.container.bind(key).to(value);
+    });
+  }
+}
+
+export default AnnotationToolGroupService;
diff --git a/wax-prosemirror-services/src/AnnotationService/Annotation.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js
similarity index 75%
rename from wax-prosemirror-services/src/AnnotationService/Annotation.js
rename to wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js
index da9061d630227bfd4d5638c756d5a9690deed031..31702bd78423c2551b6c8159be23070e21d9287a 100644
--- a/wax-prosemirror-services/src/AnnotationService/Annotation.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js
@@ -1,8 +1,8 @@
 import { injectable, inject } from "inversify";
-import ToolGroup from "../lib/ToolGroup";
+import ToolGroup from "../../lib/ToolGroup";
 
 @injectable()
-export default class Annotation extends ToolGroup {
+class Annotations extends ToolGroup {
   tools = [];
   constructor(
     @inject("Code") code,
@@ -16,10 +16,6 @@ export default class Annotation extends ToolGroup {
     @inject("Underline") underline,
     @inject("Blockquote") blockquote,
     @inject("Image") image,
-    @inject("OrderedList") orderedlist,
-    @inject("BulletList") bulletlist,
-    @inject("JoinUp") joinup,
-    @inject("Lift") lift,
     @inject("Table") table,
     @inject("TableDropDownOptions") tableDropDownOptions
   ) {
@@ -37,11 +33,7 @@ export default class Annotation extends ToolGroup {
       blockquote,
       tableDropDownOptions,
       image,
-      table,
-      orderedlist,
-      bulletlist,
-      joinup,
-      lift
+      table
     ];
   }
 
@@ -53,3 +45,5 @@ export default class Annotation extends ToolGroup {
     return tools;
   }
 }
+
+export default Annotations;
diff --git a/wax-prosemirror-services/src/AnnotationService/tools/Blockquote.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Blockquote.js
similarity index 87%
rename from wax-prosemirror-services/src/AnnotationService/tools/Blockquote.js
rename to wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Blockquote.js
index 209dddbe2294a06d6ad6e65926c99367b6fd6a0b..ffa36110765d0e5f284a161d161625659839adb4 100644
--- a/wax-prosemirror-services/src/AnnotationService/tools/Blockquote.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Blockquote.js
@@ -1,8 +1,8 @@
-import Tools from "../../lib/Tools";
+import Tools from "../../../lib/Tools";
 import { injectable } from "inversify";
 import { icons } from "wax-prosemirror-components";
 import { wrapIn } from "prosemirror-commands";
-import { blockActive } from "../../lib/Utils";
+import { blockActive } from "../../../lib/Utils";
 
 @injectable()
 export default class Blockquote extends Tools {
diff --git a/wax-prosemirror-services/src/AnnotationService/tools/Table.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Table.js
similarity index 80%
rename from wax-prosemirror-services/src/AnnotationService/tools/Table.js
rename to wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Table.js
index 238c9084ecdb3ffc8cc4003598401d83db04685f..5de1b8c841058d2b89370016d2477f432e1b1226 100644
--- a/wax-prosemirror-services/src/AnnotationService/tools/Table.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Table.js
@@ -1,5 +1,5 @@
-import Tools from "../../lib/Tools";
-import { createTable, canInsert } from "../../lib/Utils";
+import Tools from "../../../lib/Tools";
+import { createTable, canInsert } from "../../../lib/Utils";
 import { injectable } from "inversify";
 import { icons } from "wax-prosemirror-components";
 
diff --git a/wax-prosemirror-services/src/AnnotationService/tools/TableDropDownOptions.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/TableDropDownOptions.js
similarity index 89%
rename from wax-prosemirror-services/src/AnnotationService/tools/TableDropDownOptions.js
rename to wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/TableDropDownOptions.js
index 9deea97f43b9a336be4fb505ba64a18f95e33e8a..2bd55d9c6a71ff0c9a2968ececffaaa93953bb99 100644
--- a/wax-prosemirror-services/src/AnnotationService/tools/TableDropDownOptions.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/TableDropDownOptions.js
@@ -1,7 +1,7 @@
 import React from "react";
 import { v4 as uuid } from "uuid";
-import { canInsert } from "../../lib/Utils";
-import Tools from "../../lib/Tools";
+import { canInsert } from "../../../lib/Utils";
+import Tools from "../../../lib/Tools";
 import { injectable } from "inversify";
 import { TableDropDown } from "wax-prosemirror-components";
 import { addColumnBefore } from "prosemirror-tables";
diff --git a/wax-prosemirror-services/src/AnnotationService/tools/index.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/index.js
similarity index 100%
rename from wax-prosemirror-services/src/AnnotationService/tools/index.js
rename to wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/index.js
diff --git a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js
new file mode 100644
index 0000000000000000000000000000000000000000..90b532f0f93e476bbf0e377efa0e67777bff36ed
--- /dev/null
+++ b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js
@@ -0,0 +1,12 @@
+import Base from "./Base";
+import Service from "wax-prosemirror-core/src/services/Service";
+
+class BaseToolGroupService extends Service {
+  name = "BaseToolGroupService";
+
+  register() {
+    this.container.bind("Base").to(Base);
+  }
+}
+
+export default BaseToolGroupService;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/Image.js b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/Image.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js
new file mode 100644
index 0000000000000000000000000000000000000000..4305f81c2a2a2ae3d3041e17bf2a327e13e173f0
--- /dev/null
+++ b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js
@@ -0,0 +1,12 @@
+import Image from "./Image";
+import Service from "wax-prosemirror-core/src/services/Service";
+
+class ImageToolGroupService extends Service {
+  name = "ImageToolGroupService";
+
+  register() {
+    this.container.bind("Image").to(Image);
+  }
+}
+
+export default ImageToolGroupService;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js
new file mode 100644
index 0000000000000000000000000000000000000000..311f02da644b59a37fc7310dc488dbc2be870851
--- /dev/null
+++ b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js
@@ -0,0 +1,12 @@
+import Lists from "./Lists";
+import Service from "wax-prosemirror-core/src/services/Service";
+
+class ListToolGroupService extends Service {
+  name = "ListToolGroupService";
+
+  register() {
+    this.container.bind("Lists").to(Lists);
+  }
+}
+
+export default ListToolGroupService;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js
new file mode 100644
index 0000000000000000000000000000000000000000..0e8bbf77740e9a225e26ee9a79b99a246414a822
--- /dev/null
+++ b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js
@@ -0,0 +1,26 @@
+import { injectable, inject } from "inversify";
+import ToolGroup from "../../lib/ToolGroup";
+
+@injectable()
+class Lists extends ToolGroup {
+  tools = [];
+  constructor(
+    @inject("OrderedList") orderedlist,
+    @inject("BulletList") bulletlist,
+    @inject("JoinUp") joinup,
+    @inject("Lift") lift
+  ) {
+    super();
+    this.tools = [orderedlist, bulletlist, joinup, lift];
+  }
+
+  renderTools(view) {
+    const tools = [];
+    this.tools.forEach(tool => {
+      tools.push(tool.renderTool(view));
+    });
+    return tools;
+  }
+}
+
+export default Lists;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/Table.js b/wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/Table.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/TableListGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/TableListGroupService.js
new file mode 100644
index 0000000000000000000000000000000000000000..137ed227b0b53ecd863d52f28e2f5574c4be44c9
--- /dev/null
+++ b/wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/TableListGroupService.js
@@ -0,0 +1,12 @@
+import Table from "./Table";
+import Service from "wax-prosemirror-core/src/services/Service";
+
+class TableToolGroupService extends Service {
+  name = "TableToolGroupService";
+
+  register() {
+    this.container.bind("Table").to(Table);
+  }
+}
+
+export default TableToolGroupService;