diff --git a/wax-prosemirror-components/index.js b/wax-prosemirror-components/index.js
index b2125640d248588b5ce4f44b0a2eedc726502076..18efcfdac4feb6b28311751de06491679452a409 100644
--- a/wax-prosemirror-components/index.js
+++ b/wax-prosemirror-components/index.js
@@ -1,7 +1,7 @@
 export { default as Overlay } from './src/components/Overlay';
 export { default as Button } from './src/components/Button';
 export { default as icons } from './src/icons/icons';
-export { default as TableDropDown } from './src/components/TableDropDown';
+export { default as TableDropDown } from './src/components/tables/TableDropDown';
 export { default as ImageUpload } from './src/components/images/ImageUpload';
 export { default as TitleButton } from './src/components/TitleButton';
 export { default as LeftMenuTitle } from './src/components/LeftMenuTitle';
diff --git a/wax-prosemirror-components/package.json b/wax-prosemirror-components/package.json
index 1d120e4e3ccd212a670bb1ba78fb1d1466b91677..591526e9122566fbd98b0d75d30d0b840f829bf5 100644
--- a/wax-prosemirror-components/package.json
+++ b/wax-prosemirror-components/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror UI components",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],
diff --git a/wax-prosemirror-components/src/components/findAndReplace/ExpandedFindAndReplaceComponent.js b/wax-prosemirror-components/src/components/findAndReplace/ExpandedFindAndReplaceComponent.js
index 9baaf43bab7b0a8774ac0f6ff88eaf5ffa4f9786..2d59402c5a467185c74f2bf07bcfa12943fb8ee2 100644
--- a/wax-prosemirror-components/src/components/findAndReplace/ExpandedFindAndReplaceComponent.js
+++ b/wax-prosemirror-components/src/components/findAndReplace/ExpandedFindAndReplaceComponent.js
@@ -135,7 +135,7 @@ const PreviousNextContainer = styled.div`
   }
 `;
 
-const PreviousNextButton = styled.span`
+const IconWrapper = styled.span`
   &:focus {
     outline: none;
   }
@@ -333,15 +333,20 @@ const ExpandedFindAndReplaceComponent = ({
         <ButtonReplace onClick={replace}>Replace</ButtonReplace>
         <ButtonReplaceAll onClick={replaceAll}>Replace All</ButtonReplaceAll>
         <PreviousNextContainer>
-          <StyledIcon
-            name="navigatePrevious"
+          <IconWrapper
             onClick={() => findPreviousMatch(searchValue, matchCaseOption)}
-          />
-
-          <StyledIcon
-            name="navigateNext"
+            role="button"
+            tabIndex="0"
+          >
+            <StyledIcon name="navigatePrevious" />
+          </IconWrapper>
+          <IconWrapper
             onClick={() => findNextMatch(searchValue, matchCaseOption)}
-          />
+            role="button"
+            tabIndex="0"
+          >
+            <StyledIcon name="navigateNext" />
+          </IconWrapper>
         </PreviousNextContainer>
       </ControlContainer>
     </Wrapper>
diff --git a/wax-prosemirror-components/src/components/TableDropDown.js b/wax-prosemirror-components/src/components/tables/TableDropDown.js
similarity index 56%
rename from wax-prosemirror-components/src/components/TableDropDown.js
rename to wax-prosemirror-components/src/components/tables/TableDropDown.js
index 5fa779bc529d363d5519b8c2606a7173cdf48559..2d13f8577f9e3b7193435825e2297326b0086a8b 100644
--- a/wax-prosemirror-components/src/components/TableDropDown.js
+++ b/wax-prosemirror-components/src/components/tables/TableDropDown.js
@@ -1,6 +1,5 @@
 /* eslint react/prop-types: 0 */
-import React, { useMemo, useContext, useState } from 'react';
-import { TextSelection } from 'prosemirror-state';
+import React, { useMemo, useContext, useState, useEffect } from 'react';
 import styled from 'styled-components';
 import * as tablesFn from 'prosemirror-tables';
 import { WaxContext } from 'wax-prosemirror-core';
@@ -37,26 +36,35 @@ const DropdownStyled = styled(Dropdown)`
   }
 `;
 
-const dropDownOptions = [
-  { label: 'add column before', value: 'addColumnBefore' },
-  { label: 'add column after', value: 'addColumnAfter' },
-  { label: 'Delete column', value: 'deleteColumn' },
-  { label: 'Insert row before', value: 'addRowBefore' },
-  { label: 'Insert row after', value: 'addRowAfter' },
-  { label: 'Delete row', value: 'deleteRow' },
-  { label: 'Delete table', value: 'deleteTable' },
-  { label: 'Merge cells', value: 'mergeCells' },
-  { label: 'Split cell', value: 'splitCell' },
-  { label: 'Toggle header column', value: 'toggleHeaderColumn' },
-  { label: 'Toggle header row', value: 'toggleHeaderRow' },
-  { label: 'Toggle header cells', value: 'toggleHeaderCell' },
-];
-
 const TableDropDown = ({ item }) => {
+  const dropDownOptions = [
+    { label: 'Add column before', value: 'addColumnBefore' },
+    { label: 'Add column after', value: 'addColumnAfter' },
+    { label: 'Delete column', value: 'deleteColumn' },
+    { label: 'Insert row before', value: 'addRowBefore' },
+    { label: 'Insert row after', value: 'addRowAfter' },
+    { label: 'Delete row', value: 'deleteRow' },
+    { label: 'Delete table', value: 'deleteTable' },
+    { label: 'Merge cells', value: 'mergeCells' },
+    { label: 'Split cell', value: 'splitCell' },
+    { label: 'Toggle header column', value: 'toggleHeaderColumn' },
+    { label: 'Toggle header row', value: 'toggleHeaderRow' },
+    { label: 'Toggle header cells', value: 'toggleHeaderCell' },
+  ];
+
   const { activeView } = useContext(WaxContext);
   const [selectedOption, setSelectedOption] = useState('');
+  const appliedDropDownOptions = [];
 
+  dropDownOptions.forEach(option => {
+    if (tablesFn[option.value](activeView.state)) {
+      appliedDropDownOptions.push(option);
+    }
+  });
   const isDisabled = item.select(activeView.state);
+
+  useEffect(() => {}, [selectedOption]);
+
   const TableDropDownComponent = useMemo(
     () => (
       <DropdownStyled
@@ -72,12 +80,12 @@ const TableDropDown = ({ item }) => {
             activeView.focus();
           });
         }}
-        options={dropDownOptions}
+        options={appliedDropDownOptions}
         placeholder="Table Options"
         select={isDisabled}
       />
     ),
-    [isDisabled, selectedOption],
+    [isDisabled, selectedOption, appliedDropDownOptions],
   );
 
   return TableDropDownComponent;
diff --git a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
index 2bc6ea0fe689458a35b4494d79f2faaff22f8429..d6e9b72b4c8e775aca08126f6d237f85e0719ec2 100644
--- a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
+++ b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
@@ -244,7 +244,7 @@ const TrackChangeOptionsComponent = ({
         {inlineTracks + blockTracks} SUGGESTIONS
       </TotalSuggestions>
       <ToolsContainer>{renderTools()}</ToolsContainer>
-      <AcceptRejectAll
+      {/* <AcceptRejectAll
         onMouseEnter={() => setIsShownTrack(true)}
         onMouseLeave={() => setIsShownTrack(false)}
       >
@@ -265,12 +265,12 @@ const TrackChangeOptionsComponent = ({
             </AcceptRejectAllRow>
           </AcceptRejectAllControls>
         )}
-      </AcceptRejectAll>
-      <TotalComments>{comments} COMMENTS</TotalComments>
+      </AcceptRejectAll> */}
+      {/* <TotalComments>{comments} COMMENTS</TotalComments>
       <ShowComments>
         <span>Show comments</span>
         <StyledToggleOn name="toggleOn" />
-      </ShowComments>
+      </ShowComments> */}
     </Wrapper>
   );
 };
diff --git a/wax-prosemirror-core/package.json b/wax-prosemirror-core/package.json
index a62b2a8164d3ed9525a6b7f6eb7db17444ab9755..9c567257e7d3966c51a147181b9ee06eae439a87 100644
--- a/wax-prosemirror-core/package.json
+++ b/wax-prosemirror-core/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror core",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],
diff --git a/wax-prosemirror-plugins/package.json b/wax-prosemirror-plugins/package.json
index 1c7f813eddd961844cbbf5935a1e8b64d3bd3c19..932bdabecb6a0fac82f2b8d2684d00381343664e 100644
--- a/wax-prosemirror-plugins/package.json
+++ b/wax-prosemirror-plugins/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror plugins",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],
diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js
index fd0c54754ca8ddb00116031f1adf81aa472b81b9..a03d420b0c816266be37d180d7731075eb67e162 100644
--- a/wax-prosemirror-schema/index.js
+++ b/wax-prosemirror-schema/index.js
@@ -14,7 +14,6 @@ export { default as sourceMark } from './src/marks/sourceMark';
 export { default as commentMark } from './src/marks/commentMark';
 export { default as mathSelectMark } from './src/marks/mathSelectMark';
 export { default as highlightMark } from './src/marks/highlightMark';
-export { default as transformMark } from './src/marks/transformMark';
 export { default as customtagInlineMark } from './src/marks/customTagInlineMark';
 /*
 LIST OF TRACK CHANGES MARKS
diff --git a/wax-prosemirror-schema/package.json b/wax-prosemirror-schema/package.json
index 0b8d338fb427e2e6f724c4ebe7d6d81bb42790b5..aff9089eee97a17dd8b32b8d2fa746e89db64a27 100644
--- a/wax-prosemirror-schema/package.json
+++ b/wax-prosemirror-schema/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror schema",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],
diff --git a/wax-prosemirror-schema/src/marks/transformMark.js b/wax-prosemirror-schema/src/marks/transformMark.js
deleted file mode 100644
index 8296b1f0a704caa370c56c957497954620cc6544..0000000000000000000000000000000000000000
--- a/wax-prosemirror-schema/src/marks/transformMark.js
+++ /dev/null
@@ -1,25 +0,0 @@
-const transform = {
-  excludes: 'transformCase',
-
-  attrs: {
-    style: { default: null },
-  },
-  inclusive: false,
-  parseDOM: [
-    {
-      tag: 'transform',
-      getAttrs(hook, next) {
-        Object.assign(hook, {
-          style: hook.dom.getAttribute('style'),
-        });
-        next();
-      },
-    },
-  ],
-  toDOM(hook, next) {
-    hook.value = ['transform', hook.node.attrs, 0]; // eslint-disable-line no-param-reassign
-    next();
-  },
-};
-
-export default transform;
diff --git a/wax-prosemirror-services/package.json b/wax-prosemirror-services/package.json
index f9491b3e2fa82ac9439d237d78169e10010ae303..84ffa498050b9fda0142f86ad59e6a007a60069e 100644
--- a/wax-prosemirror-services/package.json
+++ b/wax-prosemirror-services/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror services",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],
diff --git a/wax-prosemirror-services/src/TransformService/TransformService.js b/wax-prosemirror-services/src/TransformService/TransformService.js
index 2004ea3d45b3ab65a80287ee5416db8bc69d9032..fe70937d3d3509e1fd92e17df8ee0578d3e214e3 100644
--- a/wax-prosemirror-services/src/TransformService/TransformService.js
+++ b/wax-prosemirror-services/src/TransformService/TransformService.js
@@ -1,16 +1,8 @@
-import { transformMark } from 'wax-prosemirror-schema';
 import TransformTool from './TransformTool';
 import Service from '../Service';
 
 export default class TransformService extends Service {
   register() {
     this.container.bind('TransformTool').to(TransformTool);
-    const createMark = this.container.get('CreateMark');
-    createMark(
-      {
-        transform: transformMark,
-      },
-      { toWaxSchema: true },
-    );
   }
 }
diff --git a/wax-prosemirror-services/src/TransformService/TransformTool.js b/wax-prosemirror-services/src/TransformService/TransformTool.js
index 4f1ab0c3e8f2272cfe1c34f7255f1785e87197fd..d5e0ea90cdde1f89e95e26d60389a4101d5a289e 100644
--- a/wax-prosemirror-services/src/TransformService/TransformTool.js
+++ b/wax-prosemirror-services/src/TransformService/TransformTool.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-unused-expressions */
 import React from 'react';
 import { TransformCaseComponent } from 'wax-prosemirror-components';
 import { isEmpty } from 'lodash';
@@ -8,6 +9,55 @@ import Tools from '../lib/Tools';
 // eslint-disable-next-line no-unused-vars
 import titleCase from './titleCase';
 
+const upperLowerCase = (state, dispatch, casing) => {
+  // grab the current transaction and selection
+  let { tr } = state;
+  const { selection } = tr;
+  const marksAdd = [];
+
+  state.doc.nodesBetween(selection.from, selection.to, (node, position) => {
+    if (node.marks.length > 0) {
+      node.marks.forEach(item => {
+        marksAdd.push({
+          name: item.type.name,
+          type: item.type,
+          pos: DocumentHelpers.findMark(state, item.type, true),
+          attrs: item.attrs,
+        });
+      });
+    }
+
+    // we only processing text, must be a selection
+    if (!node.isTextblock || selection.from === selection.to) return;
+
+    // calculate the section to replace
+    const startPosition = Math.max(position + 1, selection.from);
+    const endPosition = Math.min(position + node.nodeSize, selection.to);
+
+    // grab the content
+    const substringFrom = Math.max(0, selection.from - position - 1);
+    const substringTo = Math.max(0, selection.to - position - 1);
+    const updatedText = node.textContent.substring(substringFrom, substringTo);
+
+    // set the casing
+    const textNode =
+      casing === 'upperCase'
+        ? state.schema.text(updatedText.toUpperCase())
+        : state.schema.text(updatedText.toLocaleLowerCase());
+
+    // replace
+    tr = tr.replaceWith(startPosition, endPosition, textNode);
+  });
+
+  marksAdd.forEach(item => {
+    item.pos.forEach(markPos => {
+      tr.addMark(markPos.from, markPos.to, item.type.create(item.attrs));
+    });
+  });
+
+  dispatch(tr.scrollIntoView());
+};
+
 class TransformTool extends Tools {
   title = 'Transform';
   icon = 'transformCase';
@@ -24,50 +74,68 @@ class TransformTool extends Tools {
       } = state;
 
       const { tr } = state;
-      const selectionTr = state.tr.selection;
-      const marksAdd = [
-        {
-          name: '',
-          pos: [],
-          attrs: {},
-        },
-      ];
-      let isAddMark = false;
+      const { selection } = state.tr;
+      const marksAdd = [];
 
       switch (textCase) {
         case 'upperCase':
-          dispatch(
-            state.tr.addMark(
-              $from.pos,
-              $to.pos,
-              state.schema.marks.transform.create({
-                style: 'text-transform: uppercase',
-              }),
-            ),
-          );
+          upperLowerCase(state, dispatch, 'upperCase');
           break;
         case 'lowerCase':
-          dispatch(
-            state.tr.addMark(
-              $from.pos,
-              $to.pos,
-              state.schema.marks.transform.create({
-                style: 'text-transform: lowercase',
-              }),
-            ),
-          );
+          upperLowerCase(state, dispatch, 'lowerCase');
           break;
-        case 'sentenceCase':
-          dispatch(
-            state.tr.addMark(
-              $from.pos,
-              $to.pos,
-              state.schema.marks.transform.create({
-                style: 'text-transform: capitalize',
-              }),
-            ),
-          );
+        case 'sentenceCase': {
+          state.doc.nodesBetween($from.pos, $to.pos, (node, position) => {
+            if (node.marks.length > 0) {
+              node.marks.forEach(item => {
+                marksAdd.push({
+                  name: item.type.name,
+                  type: item.type,
+                  pos: DocumentHelpers.findMark(state, item.type, true),
+                  attrs: item.attrs,
+                });
+              });
+            }
+
+            if (node.type.name !== 'code_block') {
+              if (!node.isTextblock || $from.pos === $to.pos) return;
+              const startPosition = Math.max(position + 1, $from.pos);
+              const endPosition = Math.min(
+                position + node.nodeSize,
+                selection.to,
+              );
+              const substringFrom = Math.max(0, $from.pos - position - 1);
+              const substringTo = Math.max(0, selection.to - position - 1);
+
+              const updatedText = node.textContent.substring(
+                substringFrom,
+                substringTo,
+              );
+              if (updatedText.length > 0) {
+                const rg = /(^\w{1}|\.\s*\w{1})/gi;
+
+                const textNode = state.schema.text(
+                  updatedText.replace(rg, toReplace => {
+                    return toReplace.toUpperCase();
+                  }),
+                );
+                tr.replaceWith(startPosition, endPosition, textNode);
+              }
+            }
+          });
+
+          marksAdd.forEach(item => {
+            item.pos.forEach(markPos => {
+              tr.addMark(
+                markPos.from,
+                markPos.to,
+                item.type.create(item.attrs),
+              );
+            });
+          });
+          dispatch(tr);
           break;
+        }
         case 'titleCase':
           state.doc.nodesBetween($from.pos, $to.pos, (node, position) => {
             if (node.marks.length > 0) {
@@ -86,10 +154,10 @@ class TransformTool extends Tools {
               const startPosition = Math.max(position + 1, $from.pos);
               const endPosition = Math.min(
                 position + node.nodeSize,
-                selectionTr.to,
+                selection.to,
               );
               const substringFrom = Math.max(0, $from.pos - position - 1);
-              const substringTo = Math.max(0, selectionTr.to - position - 1);
+              const substringTo = Math.max(0, selection.to - position - 1);
 
               const updatedText = node.textContent.substring(
                 substringFrom,
@@ -100,22 +168,20 @@ class TransformTool extends Tools {
                 tr.replaceWith(startPosition, endPosition, textNode);
               }
             }
-            isAddMark = true;
           });
 
-          if (isAddMark) {
-            marksAdd.forEach(item => {
-              if (item.name !== 'transform') {
-                item.pos.forEach(markPos => {
-                  tr.addMark(
-                    markPos.from,
-                    markPos.to,
-                    item.type.create(item.attrs),
-                  );
-                });
-              }
-            });
-          }
+          marksAdd.forEach(item => {
+            if (item.name !== 'transform') {
+              item.pos.forEach(markPos => {
+                tr.addMark(
+                  markPos.from,
+                  markPos.to,
+                  item.type.create(item.attrs),
+                );
+              });
+            }
+          });
+
           dispatch(tr);
 
           break;
diff --git a/wax-prosemirror-utilities/package.json b/wax-prosemirror-utilities/package.json
index 8374e65e94074277a24dabc297918af37bfc16db..603640748cc47787237ac2e3cd624d30803b4a5c 100644
--- a/wax-prosemirror-utilities/package.json
+++ b/wax-prosemirror-utilities/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror utilities",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],