diff --git a/wax-prosemirror-components/src/components/comments/ConnectedComment.js b/wax-prosemirror-components/src/components/comments/ConnectedComment.js
index 6123e7382bb9dc8761fee39e671d82dfdff61ee3..5ec6b61fe68cfa3898d70a92d819f9792627e23a 100644
--- a/wax-prosemirror-components/src/components/comments/ConnectedComment.js
+++ b/wax-prosemirror-components/src/components/comments/ConnectedComment.js
@@ -30,11 +30,14 @@ export default ({ comment, top, commentId, recalculateTops }) => {
 
   const { state, dispatch } = activeView;
   const viewId = comment.attrs.viewid;
+  let allCommentsWithSameId = [];
 
-  const allCommentsWithSameId = DocumentHelpers.findAllMarksWithSameId(
-    view[viewId].state,
-    comment,
-  );
+  if (view[viewId]) {
+    allCommentsWithSameId = DocumentHelpers.findAllMarksWithSameId(
+      view[viewId].state,
+      comment,
+    );
+  }
 
   const commentMark = state.schema.marks.comment;
 
diff --git a/wax-prosemirror-components/src/components/rightArea/RightArea.js b/wax-prosemirror-components/src/components/rightArea/RightArea.js
index 961f93a3e3499d2b5469d053331d2dff958e62d2..ebbedc6ca85fe0002429427181af389e7b5e2150 100644
--- a/wax-prosemirror-components/src/components/rightArea/RightArea.js
+++ b/wax-prosemirror-components/src/components/rightArea/RightArea.js
@@ -66,11 +66,11 @@ export default ({ area }) => {
       if (markNodeEl) {
         boxEl = document.querySelector(`div[data-box="${id}"]`);
       }
-      if (boxEl) boxHeight = parseInt(boxEl.offsetHeight, 10);
-
-      // where the box should move to
-      top = boxEl ? annotationTop : -2000;
-
+      if (boxEl) {
+        boxHeight = parseInt(boxEl.offsetHeight, 10);
+        // where the box should move to
+        top = annotationTop;
+      }
       // if the above comment box has already taken up the height, move down
       if (pos > 0) {
         const previousBox = marksNodes[area][pos - 1];
diff --git a/wax-prosemirror-core/src/WaxContext.js b/wax-prosemirror-core/src/WaxContext.js
index b5a934509a6907f93bfc39f2795fd1002a4e588c..6889bc6a0ddb607d883aba7966ae85121b4262b1 100644
--- a/wax-prosemirror-core/src/WaxContext.js
+++ b/wax-prosemirror-core/src/WaxContext.js
@@ -18,10 +18,8 @@ export default props => {
     view: props.view || {},
     activeView: props.activeView || {},
     activeViewId: props.activeViewId || {},
-    removeView: view => {
-      const newContext = { ...context, view };
-
-      setContext({ ...newContext });
+    removeView: deletedView => {
+      delete context.view[deletedView];
     },
     updateView: (newView, activeViewId) => {
       const view = Object.assign(context.view, newView);
diff --git a/wax-prosemirror-services/src/NoteService/NoteComponent.js b/wax-prosemirror-services/src/NoteService/NoteComponent.js
index a24fd02d393b897195981f2813a0c52085624c6e..c49d7c3343ac018d52901b0833823018bc4c56c7 100644
--- a/wax-prosemirror-services/src/NoteService/NoteComponent.js
+++ b/wax-prosemirror-services/src/NoteService/NoteComponent.js
@@ -6,13 +6,13 @@ import { DocumentHelpers } from 'wax-prosemirror-utilities';
 import NoteEditor from './NoteEditor';
 
 export default () => {
+  const context = useContext(WaxContext);
   const {
     view,
     view: { main },
-  } = useContext(WaxContext);
+  } = context;
 
   const [notes, setNotes] = useState([]);
-
   const cleanUpNoteViews = () => {
     if (view) {
       const currentNotes = DocumentHelpers.findChildrenByType(
@@ -21,18 +21,24 @@ export default () => {
         true,
       );
       if (notes.length > currentNotes.length) {
-        // TODO remove from context views that no loger exist
         const difference = differenceBy(notes, currentNotes, 'node.attrs.id');
         difference.forEach((item, i) => {
-          // delete view[item.node.attrs.id];
+          context.removeView(item.node.attrs.id);
         });
+
+        // const newView = Object.keys(view).reduce((object, key) => {
+        //   if (key !== difference[0].node.attrs.id) {
+        //     object[key] = view[key];
+        //   }
+        //   return object;
+        // }, {});
       }
     }
   };
 
   useDeepCompareEffect(() => {
     setNotes(updateNotes(main));
-    // cleanUpNoteViews();
+    cleanUpNoteViews();
   }, [updateNotes(main)]);
 
   const noteComponent = useMemo(