diff --git a/wax-prosemirror-core/index.js b/wax-prosemirror-core/index.js
index d969e668be7cd60e07725a49126c99ab2d136c04..0a82d854a80de35a8f99f2c4d1aa421b89808cc7 100644
--- a/wax-prosemirror-core/index.js
+++ b/wax-prosemirror-core/index.js
@@ -1,2 +1,2 @@
-export { WaxContext, useInjection } from "./src/ioc-react";
+export { WaxContext, useInjection } from "./src/WaxContext";
 export { default as Wax } from "./src/Wax";
diff --git a/wax-prosemirror-core/src/Wax.js b/wax-prosemirror-core/src/Wax.js
index 7e260db033b0b44a183d9fa7a6536dabafda3c82..825a00e273284b7605a2704fd6ef85aeda1e64d6 100644
--- a/wax-prosemirror-core/src/Wax.js
+++ b/wax-prosemirror-core/src/Wax.js
@@ -1,5 +1,5 @@
 import React, { useEffect, useState } from "react";
-import WaxProvider from "./ioc-react";
+import WaxProvider from "./WaxContext";
 import Application from "./Application";
 
 import debounce from "lodash/debounce";
diff --git a/wax-prosemirror-core/src/ioc-react.js b/wax-prosemirror-core/src/WaxContext.js
similarity index 100%
rename from wax-prosemirror-core/src/ioc-react.js
rename to wax-prosemirror-core/src/WaxContext.js
diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js
index 439515b5e3744696ce5da416bbba4cf120a96330..7f593654d6c1311e1aba1cf8e96c7e209b44323d 100644
--- a/wax-prosemirror-core/src/WaxView.js
+++ b/wax-prosemirror-core/src/WaxView.js
@@ -3,10 +3,12 @@ import React, { useEffect, useRef, useContext } from "react";
 import applyDevTools from "prosemirror-dev-tools";
 import { EditorState } from "prosemirror-state";
 import { EditorView } from "prosemirror-view";
+
 import "prosemirror-view/style/prosemirror.css";
 
 import { trackedTransaction } from "wax-prosemirror-services";
-import { WaxContext } from "./ioc-react";
+import { WaxContext } from "./WaxContext";
+import transformPasted from "./helpers/TransformPasted";
 
 export default props => {
   const {
@@ -36,6 +38,9 @@ export default props => {
                 onBlur(view.state.doc.content);
               }
             : null
+        },
+        transformPasted: slice => {
+          return transformPasted(slice, view);
         }
       }
     );
diff --git a/wax-prosemirror-core/src/helpers/TransformPasted.js b/wax-prosemirror-core/src/helpers/TransformPasted.js
new file mode 100644
index 0000000000000000000000000000000000000000..5fc679e6db852dabe7f01b0f5fca876c34888a00
--- /dev/null
+++ b/wax-prosemirror-core/src/helpers/TransformPasted.js
@@ -0,0 +1,36 @@
+import { v4 as uuidv4 } from "uuid";
+import { DocumentHelpers } from "wax-prosemirror-utilities";
+
+const transformPasted = (slice, view) => {
+  const { content } = slice;
+  const commentNodes = DocumentHelpers.findChildrenByMark(
+    content,
+    view.state.schema.marks.comment,
+    true
+  );
+
+  const notes = DocumentHelpers.findChildrenByType(
+    content,
+    view.state.schema.nodes.footnote,
+    true
+  );
+
+  const allComments = commentNodes.map(node => {
+    return node.node.marks.filter(comment => {
+      return comment.type.name === "comment";
+    });
+  });
+
+  //TODO check to alter attr with transform
+  allComments.forEach(comment => {
+    comment[0].attrs.id = uuidv4();
+  });
+
+  notes.forEach(note => {
+    note.node.attrs.id = uuidv4();
+  });
+
+  return slice;
+};
+
+export default transformPasted;
diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js
index f10e5ea5342043af49d58477db69cbe7e525e27f..12ce67a8888d038999c8868a8cafe5e6d775ff00 100644
--- a/wax-prosemirror-services/src/NoteService/Editor.js
+++ b/wax-prosemirror-services/src/NoteService/Editor.js
@@ -10,6 +10,7 @@ import { Commands } from "wax-prosemirror-utilities";
 import { NoteEditorContainer } from "wax-prosemirror-components";
 import { DocumentHelpers } from "wax-prosemirror-utilities";
 import { filter } from "lodash";
+import transformPasted from "./helpers/TransformPasted";
 
 export default ({ node, view }) => {
   const editorRef = useRef();
@@ -62,6 +63,9 @@ export default ({ node, view }) => {
             // the parent editor is focused.
             if (noteView.hasFocus()) noteView.focus();
           }
+        },
+        transformPasted: slice => {
+          return transformPasted(slice, noteView);
         }
       }
     );
diff --git a/wax-prosemirror-services/src/NoteService/helpers/TransformPasted.js b/wax-prosemirror-services/src/NoteService/helpers/TransformPasted.js
new file mode 100644
index 0000000000000000000000000000000000000000..0e2e797a260b87da7afce1d498014253aeb63060
--- /dev/null
+++ b/wax-prosemirror-services/src/NoteService/helpers/TransformPasted.js
@@ -0,0 +1,26 @@
+import { v4 as uuidv4 } from "uuid";
+import { DocumentHelpers } from "wax-prosemirror-utilities";
+
+const transformPasted = (slice, view) => {
+  const { content } = slice;
+  const commentNodes = DocumentHelpers.findChildrenByMark(
+    content,
+    view.state.schema.marks.comment,
+    true
+  );
+
+  const allComments = commentNodes.map(node => {
+    return node.node.marks.filter(comment => {
+      return comment.type.name === "comment";
+    });
+  });
+
+  //TODO check to alter attr with transform
+  allComments.forEach(comment => {
+    comment[0].attrs.id = uuidv4();
+  });
+
+  return slice;
+};
+
+export default transformPasted;