diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js
index c8afcc4362623b7df6834b3fca77528ece6d21c7..0cd32b264155f130a9acb8c5ccb232b569eac94e 100644
--- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js
+++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/EditorComponent.js
@@ -102,6 +102,7 @@ const EditorComponent = ({ node, view, getPos }) => {
         }),
         // This is the magic part
         dispatchTransaction,
+        disallowedTools: [],
         handleDOMEvents: {
           mousedown: () => {
             context.updateView({}, questionId);
diff --git a/wax-prosemirror-components/src/components/SaveButton.js b/wax-prosemirror-components/src/components/SaveButton.js
index 986f192d6bf193d9596cf8a99b081fafd5120852..2d91b820f7f6013a89740e4cd1571d61a7474e9f 100644
--- a/wax-prosemirror-components/src/components/SaveButton.js
+++ b/wax-prosemirror-components/src/components/SaveButton.js
@@ -19,8 +19,7 @@ const SaveButton = ({ view = {}, item }) => {
   const [isSaving, setIsSaving] = useState(false);
 
   const handleMouseDown = (e, editorState, editorDispatch) => {
-    // eslint-disable-next-line no-underscore-dangle
-    // view._props.onChange(state.doc.content);
+    // view.props.onChange(state.doc.content);
     setIsSaving(true);
     setTimeout(() => {
       setIsSaving(false);
diff --git a/wax-prosemirror-components/src/components/tables/CreateTable.js b/wax-prosemirror-components/src/components/tables/CreateTable.js
index 6dcac6066f7f1c8236502ad3ed23029b8dc25424..78b1453da14c55c6c5abce20c0794a3e0200ab27 100644
--- a/wax-prosemirror-components/src/components/tables/CreateTable.js
+++ b/wax-prosemirror-components/src/components/tables/CreateTable.js
@@ -24,20 +24,22 @@ const DropWrapper = styled.div`
 const CreateTable = ({ view = {}, item }) => {
   const {
     view: { main },
+    activeView,
     activeViewId,
   } = useContext(WaxContext);
   if (item.onlyOnMain) {
     view = main;
   }
 
-  const { state } = view;
   const { icon, run, select, title } = item;
   const ref = useRef();
   const [isOpen, setIsOpen] = useState(false);
 
   const dropComponent = (
     <InsertTableTool
-      onGridSelect={colRows => handleSelect(colRows, view.state, view.dispatch)}
+      onGridSelect={colRows =>
+        handleSelect(colRows, activeView.state, activeView.dispatch)
+      }
     />
   );
 
@@ -46,7 +48,7 @@ const CreateTable = ({ view = {}, item }) => {
     setIsOpen(!isOpen);
   };
 
-  let isDisabled = !select(state, activeViewId);
+  let isDisabled = !select(activeView, activeViewId);
 
   const isEditable = main.props.editable(editable => {
     return editable;
diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js
index 101389c3d8e787bc6382964e085a8f6cfa36b953..b11ef63931eca863b76fc8a0b2c73fbbaf206232 100644
--- a/wax-prosemirror-core/src/WaxView.js
+++ b/wax-prosemirror-core/src/WaxView.js
@@ -68,6 +68,7 @@ export default props => {
             editable: () => !readonly,
             state: EditorState.create(options),
             dispatchTransaction,
+            disallowedTools: [],
             user,
             scrollMargin: 200,
             scrollThreshold: 200,
diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js
index a823668eb4fb122634821d76b30858f1735bc4e4..21b868fcf6d3888c221f009892a031b0edabc433 100644
--- a/wax-prosemirror-services/src/NoteService/Editor.js
+++ b/wax-prosemirror-services/src/NoteService/Editor.js
@@ -37,6 +37,7 @@ export default ({ node, view }) => {
         }),
         // This is the magic part
         dispatchTransaction,
+        disallowedTools: ['tables'],
         handleDOMEvents: {
           blur: () => {
             if (context.view[noteId]) {
diff --git a/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js b/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js
index d2214f8cdd9f2f022a10d8b1a9d41d7c45724aba..135b4a9f8346df3c2ac67830ac4c69c08cc35bb1 100644
--- a/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js
+++ b/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js
@@ -1,5 +1,5 @@
-import Service from '../../Service';
 import { tableNodes, goToNextCell } from 'prosemirror-tables';
+import Service from '../../Service';
 import Table from './Table';
 
 class InsertTableService extends Service {
@@ -14,6 +14,7 @@ class InsertTableService extends Service {
   register() {
     this.container.bind('Table').to(Table);
 
+    // eslint-disable-next-line camelcase
     const { table, table_row, table_cell, table_header } = tableNodes({
       tableGroup: 'block',
       cellContent: 'block+',
diff --git a/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js b/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js
index 5ab8f5f4276d663d8d93326dc902a7dcdf3e6d2b..b3e6bf75b320e8d184e5f32a534007c961c9a7ab 100644
--- a/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js
+++ b/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js
@@ -19,8 +19,9 @@ class Table extends Tools {
     };
   }
 
-  select = (state, activeViewId) => {
-    if (activeViewId !== 'main') return false;
+  select = (view, activeViewId) => {
+    const { disallowedTools } = view.props;
+    if (disallowedTools.includes('tables')) return false;
     return true;
   };