diff --git a/wax-prosemirror-components/src/components/specialCharacters/SpecialCharactersComponent.js b/wax-prosemirror-components/src/components/specialCharacters/SpecialCharactersComponent.js
index b0bf081f245ce086c79007fadfdf197b53ab0356..71e98f86aa3ed5bb8fea6a4cfd23e86242341c07 100644
--- a/wax-prosemirror-components/src/components/specialCharacters/SpecialCharactersComponent.js
+++ b/wax-prosemirror-components/src/components/specialCharacters/SpecialCharactersComponent.js
@@ -1,23 +1,69 @@
 /* eslint react/prop-types: 0 */
-import React from 'react';
+import React, { useRef, useState } from 'react';
 import styled from 'styled-components';
 import { grid } from '@pubsweet/ui-toolkit';
 import { WaxContext } from 'wax-prosemirror-core';
+import { each, groupBy, map } from 'lodash';
 import Icon from '../../helpers/Icon';
+import CharactersList from './CharactersList';
 
 const Wrapper = styled.div`
   width: 400px;
+  height: 200px;
+  overflow: hidden;
   background: #fff;
   font-size: 14px;
-  border-radius: 1.03093% / 8%;
   box-shadow: rgba(9, 30, 66, 0.25) 0px 4px 8px 0px,
     rgba(9, 30, 66, 0.31) 0px 0px 1px 0px;
   transform-origin: 50% 50% 0px;
   padding: ${grid(2)};
 `;
 
+const SearchInput = styled.input`
+  font-size: 15px;
+  font-weight: 400;
+  border-radius: 2px;
+  border: none;
+  padding: ${grid(1)} ${grid(10)} ${grid(1)} ${grid(1)};
+  width: 85%;
+  box-shadow: inset 0 0 0 1px rgba(27, 43, 75, 0.28);
+  ::placeholder {
+    color: #d8dae0;
+  }
+  &:focus {
+    outline: none;
+  }
+`;
+
+const CharactersListComponent = styled.div`
+  height: 150px;
+  overflow-y: sroll;
+`;
+
+const LastUsedComponent = styled.div``;
+
 const SpecialCharactersComponent = ({ close }) => {
-  return <Wrapper>Special Characters</Wrapper>;
+  const searchRef = useRef(null);
+  const [searchValue, setSearchValue] = useState('');
+  const GroupedCharacters = groupBy(CharactersList, 'group');
+  const onChange = () => {
+    setSearchValue(searchRef.current.value);
+    console.log(GroupedCharacters);
+  };
+
+  return (
+    <Wrapper>
+      <SearchInput
+        ref={searchRef}
+        type="text"
+        placeholder="Search"
+        value={searchValue}
+        onChange={onChange}
+      />
+      <CharactersListComponent>Characters List</CharactersListComponent>
+      <LastUsedComponent>Characters Last Used</LastUsedComponent>
+    </Wrapper>
+  );
 };
 
 export default SpecialCharactersComponent;
diff --git a/wax-prosemirror-components/src/components/specialCharacters/SpecialCharactersTool.js b/wax-prosemirror-components/src/components/specialCharacters/SpecialCharactersTool.js
index c6b2b3f26315b67824d04318ead7523482a757d0..ff6bbc9d409a243999ac791ca966306e329fe361 100644
--- a/wax-prosemirror-components/src/components/specialCharacters/SpecialCharactersTool.js
+++ b/wax-prosemirror-components/src/components/specialCharacters/SpecialCharactersTool.js
@@ -1,10 +1,11 @@
-import React, { useMemo, useState } from 'react';
+import React, { useMemo, useState, useRef } from 'react';
 
 import styled from 'styled-components';
 import { grid } from '@pubsweet/ui-toolkit';
 
 import MenuButton from '../../ui/buttons/MenuButton';
 import SpecialCharactersComponent from './SpecialCharactersComponent';
+import useOnClickOutside from '../../helpers/useOnClickOutside';
 
 const Wrapper = styled.div`
   font-size: 0;
@@ -22,10 +23,13 @@ const DropWrapper = styled.div`
 const SpecialCharactersTool = ({ view = {}, item }) => {
   const { icon, title } = item;
   const [isOpen, setIsOpen] = useState(false);
+  const ref = useRef();
+
+  useOnClickOutside(ref, () => setIsOpen(false));
 
   const MemorizedDropdown = useMemo(
     () => (
-      <Wrapper>
+      <Wrapper ref={ref}>
         <MenuButton
           active={isOpen}
           disabled={false}
diff --git a/wax-prosemirror-components/src/components/tables/CreateTable.js b/wax-prosemirror-components/src/components/tables/CreateTable.js
index 42a08ffa972278bde01cb1b1fcf79b814d0d8c09..032de1c8bedac63f55e3a63cb11f1121704a84af 100644
--- a/wax-prosemirror-components/src/components/tables/CreateTable.js
+++ b/wax-prosemirror-components/src/components/tables/CreateTable.js
@@ -31,7 +31,7 @@ const CreateTable = ({ view = {}, item }) => {
   }
 
   const { state } = view;
-  const { enable, icon, run, select, title } = item;
+  const { icon, run, select, title } = item;
   const ref = useRef();
   const [isOpen, setIsOpen] = useState(false);