diff --git a/wax-prosemirror-components/index.js b/wax-prosemirror-components/index.js
index 6b8a47e799e03e47d805fc978d278ee760cfeac8..7b19bfe9f1327858e92167fb76f6dda11112b42b 100644
--- a/wax-prosemirror-components/index.js
+++ b/wax-prosemirror-components/index.js
@@ -1,5 +1,6 @@
 export { default as Overlay } from './src/components/Overlay';
 export { default as Button } from './src/components/Button';
+export { default as UndoRedoButton } from './src/components/UndoRedoButton';
 export { default as MenuButton } from './src/ui/buttons/MenuButton';
 export { default as icons } from './src/icons/icons';
 export { default as TableDropDown } from './src/components/tables/TableDropDown';
diff --git a/wax-prosemirror-components/src/components/Button.js b/wax-prosemirror-components/src/components/Button.js
index 14f7c44e6d8772075e4f4b76d4c7e6b4190377b3..992be55df97356fd3ee82b1c747f7bb701a1fe37 100644
--- a/wax-prosemirror-components/src/components/Button.js
+++ b/wax-prosemirror-components/src/components/Button.js
@@ -4,7 +4,7 @@ import { WaxContext } from 'wax-prosemirror-core';
 import MenuButton from '../ui/buttons/MenuButton';
 
 const Button = ({ view = {}, item }) => {
-  const { active, icon, label, onlyOnMain, run, select, title } = item;
+  const { active, icon, label, run, select, title } = item;
 
   const {
     view: { main },
@@ -12,8 +12,6 @@ const Button = ({ view = {}, item }) => {
     activeView,
   } = useContext(WaxContext);
 
-  if (onlyOnMain) view = main;
-
   const isEditable = main.props.editable(editable => {
     return editable;
   });
diff --git a/wax-prosemirror-components/src/components/SaveButton.js b/wax-prosemirror-components/src/components/SaveButton.js
index 2d91b820f7f6013a89740e4cd1571d61a7474e9f..fcbcdb459a570ecca38fa5b77bef65d2d3a90968 100644
--- a/wax-prosemirror-components/src/components/SaveButton.js
+++ b/wax-prosemirror-components/src/components/SaveButton.js
@@ -4,7 +4,7 @@ import { WaxContext } from 'wax-prosemirror-core';
 import MenuButton from '../ui/buttons/MenuButton';
 
 const SaveButton = ({ view = {}, item }) => {
-  const { icon, label, onlyOnMain, select, title } = item;
+  const { icon, label, select, title } = item;
 
   const {
     view: { main },
@@ -12,8 +12,6 @@ const SaveButton = ({ view = {}, item }) => {
     activeView,
   } = useContext(WaxContext);
 
-  if (onlyOnMain) view = main;
-
   const { state } = view;
 
   const [isSaving, setIsSaving] = useState(false);
@@ -57,7 +55,9 @@ const SaveButton = ({ view = {}, item }) => {
         disabled={isDisabled}
         iconName={iconTodisplay}
         label={label}
-        onMouseDown={e => handleMouseDown(e, view.state, view.dispatch)}
+        onMouseDown={e =>
+          handleMouseDown(e, main.view.state, main.view.dispatch)
+        }
         title={title}
       />
     ),
diff --git a/wax-prosemirror-components/src/components/TitleButton.js b/wax-prosemirror-components/src/components/TitleButton.js
index 1477ed41f912985ff94ba4ac477f1237cfdf724c..4e6ada5e7beff42e2e825690e6de06e1ab9ba10f 100644
--- a/wax-prosemirror-components/src/components/TitleButton.js
+++ b/wax-prosemirror-components/src/components/TitleButton.js
@@ -5,7 +5,7 @@ import { DocumentHelpers } from 'wax-prosemirror-utilities';
 import MenuButton from '../ui/buttons/MenuButton';
 
 const TitleButton = ({ view = {}, item }) => {
-  const { active, icon, label, onlyOnMain, run, select, title } = item;
+  const { active, icon, label, run, select, title } = item;
 
   const {
     app,
@@ -14,8 +14,6 @@ const TitleButton = ({ view = {}, item }) => {
     activeView,
   } = useContext(WaxContext);
 
-  if (onlyOnMain) view = main;
-
   const { dispatch, state } = view;
 
   const titleNode = DocumentHelpers.findChildrenByType(
diff --git a/wax-prosemirror-components/src/components/various/LeftSideButton.js b/wax-prosemirror-components/src/components/various/LeftSideButton.js
index 61b65e239a4c3fa3084a07d68c3b0507a0960c8a..9df3369d954320d25d919ae9820774655451d5d2 100644
--- a/wax-prosemirror-components/src/components/various/LeftSideButton.js
+++ b/wax-prosemirror-components/src/components/various/LeftSideButton.js
@@ -13,7 +13,7 @@ const StyledButton = styled(MenuButton)`
 `;
 
 const LeftSideButton = ({ view = {}, item }) => {
-  const { active, icon, label, onlyOnMain, run, select, title } = item;
+  const { active, icon, label, run, select, title } = item;
 
   const {
     view: { main },
@@ -21,8 +21,6 @@ const LeftSideButton = ({ view = {}, item }) => {
     activeView,
   } = useContext(WaxContext);
 
-  if (onlyOnMain) view = main;
-
   const isEditable = main.props.editable(editable => {
     return editable;
   });
diff --git a/wax-prosemirror-services/src/BaseService/RedoService/Redo.js b/wax-prosemirror-services/src/BaseService/RedoService/Redo.js
index 2c090f96ec1c86b1b236199808397ae71f8949ef..eb1f230b2263141e3fa72b58d9242d74d78bae49 100644
--- a/wax-prosemirror-services/src/BaseService/RedoService/Redo.js
+++ b/wax-prosemirror-services/src/BaseService/RedoService/Redo.js
@@ -1,5 +1,8 @@
+import React from 'react';
+import { isEmpty } from 'lodash';
 import { redo } from 'prosemirror-history';
 import { injectable } from 'inversify';
+import { UndoRedoButton } from 'wax-prosemirror-components';
 import Tools from '../../lib/Tools';
 
 export default
@@ -7,7 +10,6 @@ export default
 class Redo extends Tools {
   title = 'Redo';
   icon = 'redo';
-  onlyOnMain = true;
   name = 'Redo';
 
   get run() {
@@ -23,4 +25,12 @@ class Redo extends Tools {
   select(state) {
     return redo(state);
   }
+
+  renderTool(view) {
+    if (isEmpty(view)) return null;
+    // eslint-disable-next-line no-underscore-dangle
+    return this._isDisplayed ? (
+      <UndoRedoButton item={this.toJSON()} key="Redo" view={view} />
+    ) : null;
+  }
 }
diff --git a/wax-prosemirror-services/src/BaseService/SaveService/Save.js b/wax-prosemirror-services/src/BaseService/SaveService/Save.js
index f13d6e90139e4aa9997f36a8ff723e4c478d4215..cd72a2f265fe214602062d2bd1478991570b101d 100644
--- a/wax-prosemirror-services/src/BaseService/SaveService/Save.js
+++ b/wax-prosemirror-services/src/BaseService/SaveService/Save.js
@@ -1,7 +1,6 @@
 import React from 'react';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
-
 import { SaveButton, icons } from 'wax-prosemirror-components';
 import Tools from '../../lib/Tools';
 
@@ -10,7 +9,6 @@ export default
 class Save extends Tools {
   title = 'Save changes';
   icon = 'save';
-  onlyOnMain = true;
   name = 'Save';
   content = icons.save;
   name = 'Save';
@@ -21,8 +19,6 @@ class Save extends Tools {
     };
   }
 
-  get enable() {}
-
   renderTool(view) {
     if (isEmpty(view)) return null;
     // eslint-disable-next-line no-underscore-dangle
diff --git a/wax-prosemirror-services/src/BaseService/UndoService/Undo.js b/wax-prosemirror-services/src/BaseService/UndoService/Undo.js
index 50aa7e657a0a9707db09790da3391f6397f0a057..2781908a212d88b10a4f1421545a9228166069ba 100644
--- a/wax-prosemirror-services/src/BaseService/UndoService/Undo.js
+++ b/wax-prosemirror-services/src/BaseService/UndoService/Undo.js
@@ -1,5 +1,8 @@
+import React from 'react';
+import { isEmpty } from 'lodash';
 import { undo } from 'prosemirror-history';
 import { injectable } from 'inversify';
+import { UndoRedoButton } from 'wax-prosemirror-components';
 import Tools from '../../lib/Tools';
 
 export default
@@ -7,7 +10,6 @@ export default
 class Undo extends Tools {
   title = 'Undo';
   icon = 'undo';
-  onlyOnMain = true;
   name = 'Undo';
 
   get run() {
@@ -23,4 +25,12 @@ class Undo extends Tools {
   select(state) {
     return undo(state);
   }
+
+  renderTool(view) {
+    if (isEmpty(view)) return null;
+    // eslint-disable-next-line no-underscore-dangle
+    return this._isDisplayed ? (
+      <UndoRedoButton item={this.toJSON()} key="Undo" view={view} />
+    ) : null;
+  }
 }
diff --git a/wax-prosemirror-services/src/lib/Tools.js b/wax-prosemirror-services/src/lib/Tools.js
index 573530f898baeb16638a8b135c077491feb3b050..f6a92e4883432a844e3380e150f7f41d5611eabf 100644
--- a/wax-prosemirror-services/src/lib/Tools.js
+++ b/wax-prosemirror-services/src/lib/Tools.js
@@ -10,7 +10,6 @@ class Tools {
   title = 'title';
   _isDisplayed = true;
   _isHiddenInToolGroup = false;
-  onlyOnMain = false;
   config = {};
   pmplugins = {};
   name = 'name';
@@ -48,7 +47,6 @@ class Tools {
       run: this.run,
       enable: this.enable,
       select: this.select,
-      onlyOnMain: this.onlyOnMain,
       id: this.id,
     };
   }