diff --git a/editors/demo/src/NCBI/NCBI.js b/editors/demo/src/NCBI/NCBI.js
index cde261806fb08af3ced7380b6f7748d5f511c408..7b72e421adf0883b7ac6a336da5b8b8a79be86fe 100644
--- a/editors/demo/src/NCBI/NCBI.js
+++ b/editors/demo/src/NCBI/NCBI.js
@@ -61,8 +61,6 @@ const ContentArea = styled.div`
   overflow-y: auto;
 `;
 
-let a = '';
-
 const Ncbi = () => {
   const [content, setContent] = useState('');
 
diff --git a/wax-prosemirror-services/src/CommentsService/CommentsService.js b/wax-prosemirror-services/src/CommentsService/CommentsService.js
index 989f1cf7899ec3ffaaa9afbae2780e0ed61d4fdc..48d3b07b3f09bcd9f62b13546f43a52675bf0d2c 100644
--- a/wax-prosemirror-services/src/CommentsService/CommentsService.js
+++ b/wax-prosemirror-services/src/CommentsService/CommentsService.js
@@ -19,6 +19,7 @@ export default class CommentsService extends Service {
       CommentBubbleComponent,
       {},
       {
+        nodeType: '',
         markType: '',
         followCursor: false,
         selection: true,
diff --git a/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js b/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js
index f3ce5b96dea8736f53a3c95373b348f31b109b86..a90cdd3da09535764315962e971b83bf3c467bb8 100644
--- a/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js
+++ b/wax-prosemirror-services/src/CustomTagService/CustomTagInlineService/CustomTagInlineService.js
@@ -11,6 +11,7 @@ class CustomTagInlineService extends Service {
       CustomTagInlineOverlayComponent,
       {},
       {
+        nodeType: '',
         markType: 'customTagInline',
         followCursor: false,
         selection: true,
diff --git a/wax-prosemirror-services/src/LinkService/LinkService.js b/wax-prosemirror-services/src/LinkService/LinkService.js
index f89d026c9102f42f1811ef92485dbcad99c82288..9230852441bce0f4976c6a29e6c80f3ba6a781f8 100644
--- a/wax-prosemirror-services/src/LinkService/LinkService.js
+++ b/wax-prosemirror-services/src/LinkService/LinkService.js
@@ -17,6 +17,7 @@ export default class LinkService extends Service {
       LinkComponent,
       {},
       {
+        nodeType: '',
         markType: 'link',
         followCursor: false,
         selection: false,
diff --git a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js
index baf381edecdc76f4136d9d89c56fde5632dcd634..1cc337257460860f6892a67aaed47e17e051ff9e 100644
--- a/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js
+++ b/wax-prosemirror-services/src/MultipleDropDownService/CreateDropDownService/CreateDropDownService.js
@@ -14,7 +14,8 @@ class CreateDropDownService extends Service {
       DropDownComponent,
       {},
       {
-        markType: 'multiple_drop_down_option',
+        nodeType: 'multiple_drop_down_option',
+        markType: '',
         followCursor: true,
         selection: false,
       },
diff --git a/wax-prosemirror-services/src/OverlayService/usePosition.js b/wax-prosemirror-services/src/OverlayService/usePosition.js
index 5827b9db4898e89c3263c0891a5efea5b464c35f..615e1d460bd9a29e7e19d83be759273fe31aa83f 100644
--- a/wax-prosemirror-services/src/OverlayService/usePosition.js
+++ b/wax-prosemirror-services/src/OverlayService/usePosition.js
@@ -21,7 +21,7 @@ export default options => {
   });
 
   let mark = {};
-
+  let node = {};
   /* Sets Default position at the end of the annotation. You
   can overwrite the default position in your component.
   Check: wax-prosemirror-components/src/components/comments/CommentBubbleComponent.js
@@ -52,6 +52,25 @@ export default options => {
     };
   };
 
+  const displayOnNode = (focusedView, overlayOptions) => {
+    const { nodeType, followCursor } = overlayOptions;
+    const PMnode = focusedView.state.schema.nodes[nodeType];
+
+    node = DocumentHelpers.findNode(focusedView.state, PMnode);
+
+    if (!isObject(node)) return defaultOverlay;
+    const { from, to } = followCursor ? focusedView.state.selection : node;
+
+    const { left, top } = calculatePosition(focusedView, from, to);
+
+    return {
+      left,
+      top,
+      from,
+      to,
+    };
+  };
+
   const displayOnMark = (focusedView, overlayOptions) => {
     const { markType, followCursor } = overlayOptions;
     const PMmark = focusedView.state.schema.marks[markType];
@@ -92,7 +111,11 @@ export default options => {
   const updatePosition = useCallback((followCursor = true) => {
     if (Object.keys(activeView).length === 0) return defaultOverlay;
 
-    const { markType, selection } = options;
+    const { markType, selection, nodeType } = options;
+
+    if (nodeType) {
+      return displayOnNode(activeView, options);
+    }
 
     if (markType && selection)
       return displayOnMarkOrSelection(activeView, options);
diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js
index f04cb39f502c4168ad95aee8b9167c5c865673ea..095464e4d034e09533204bd123a078d5e496051e 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleChoiceDropDownToolGroupService/MultipleChoiceDropDown.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-underscore-dangle */
 import React, { useMemo } from 'react';
 import { injectable, inject } from 'inversify';
 import { isEmpty } from 'lodash';
diff --git a/wax-prosemirror-utilities/src/document/DocumentHelpers.js b/wax-prosemirror-utilities/src/document/DocumentHelpers.js
index 7a3cb17fa3f797961362292c0f213a3cbf65ba77..1b6409a24c7a6f7160b20c4280f4eac923029269 100644
--- a/wax-prosemirror-utilities/src/document/DocumentHelpers.js
+++ b/wax-prosemirror-utilities/src/document/DocumentHelpers.js
@@ -27,6 +27,18 @@ const findMark = (state, PMmark, toArr = false) => {
   return markFound;
 };
 
+const findNode = (state, PMnode) => {
+  let nodeFound;
+  if (state.selection.node && state.selection.node.type.name === PMnode.name) {
+    nodeFound = {
+      from: state.selection.from,
+      to: state.selection.to,
+      node: state.selection.node,
+    };
+  }
+  return nodeFound;
+};
+
 const getCommentsTracksCount = main => {
   const marks = findInlineNodes(main.state.doc);
   const commentsTracksFormat = [];
@@ -270,6 +282,7 @@ const findParentOfType = (state, nodeType) => {
 
 export default {
   findMark,
+  findNode,
   findBlockNodes,
   findChildrenByType,
   findInlineNodes,