diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceNodeView.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceNodeView.js
index 02ce8fd7e7b8e687d1aaaf8b430bae35696fab21..5df7616c08e064996aceb89271a2b533ecfce75f 100644
--- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceNodeView.js
+++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceNodeView.js
@@ -3,13 +3,22 @@ import { EditorView } from 'prosemirror-view';
 import { AbstractNodeView } from 'wax-prosemirror-services';
 import { StepMap } from 'prosemirror-transform';
 
-let questionView;
 export default class MultipleChoiceNodeView extends AbstractNodeView {
-  constructor(node, view, getPos, decorations, createPortal, Component) {
-    super(node, view, getPos, decorations, createPortal, Component);
+  constructor(
+    node,
+    view,
+    getPos,
+    decorations,
+    createPortal,
+    Component,
+    context,
+  ) {
+    super(node, view, getPos, decorations, createPortal, Component, context);
+    console.log('ccc', context);
     this.node = node;
     this.outerView = view;
     this.getPos = getPos;
+    this.context = context;
 
     this.innerView = new EditorView(
       {
@@ -41,6 +50,12 @@ export default class MultipleChoiceNodeView extends AbstractNodeView {
   }
 
   dispatchInner(tr) {
+    this.context.updateView(
+      {
+        ['mytest']: this.innerView,
+      },
+      'mytest',
+    );
     let { state, transactions } = this.innerView.state.applyTransaction(tr);
     this.innerView.updateState(state);
 
diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
index 47a34c158639d79283534a7a5f12aee92159593d..5324dd73f3985b9eeabdb8207f9d2453ed60a44a 100644
--- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
+++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
@@ -16,8 +16,7 @@ class MultipleChoiceQuestionService extends Service {
     });
 
     const addPortal = this.container.get('AddPortal');
-
-    addPortal({ nodeView, component: TestComponent });
+    addPortal({ nodeView, component: TestComponent, context: this.app });
   }
 }
 
diff --git a/wax-prosemirror-core/src/PortalContext.js b/wax-prosemirror-core/src/PortalContext.js
index 8e5b7d9a68d816c3e7f33a7e728696977f3ffcb7..193cc1d36f4e603db1d233bc8d162664e2afdf83 100644
--- a/wax-prosemirror-core/src/PortalContext.js
+++ b/wax-prosemirror-core/src/PortalContext.js
@@ -17,7 +17,16 @@ export default props => {
     id: null,
     getPos: () => {},
     decorations: [],
-    createPortal: (element, component, node, view, getPos, decorations) => {
+    context: {},
+    createPortal: (
+      element,
+      component,
+      node,
+      view,
+      getPos,
+      decorations,
+      context,
+    ) => {
       setPortal({
         ...portal,
         id: uuidv4(),
@@ -27,6 +36,7 @@ export default props => {
         view,
         getPos,
         decorations,
+        context,
       });
     },
   });
diff --git a/wax-prosemirror-services/src/PortalService/AbstractNodeView.js b/wax-prosemirror-services/src/PortalService/AbstractNodeView.js
index 19df6c1181a324b4e3cda3c1c2273982668425c7..14d529f163f689269e530f7d1fc76b02feefc5e6 100644
--- a/wax-prosemirror-services/src/PortalService/AbstractNodeView.js
+++ b/wax-prosemirror-services/src/PortalService/AbstractNodeView.js
@@ -1,13 +1,21 @@
 import { v4 as uuidv4 } from 'uuid';
 
 export default class AbstractNodeView {
-  constructor(node, view, getPos, decorations, createPortal, Component) {
+  constructor(
+    node,
+    view,
+    getPos,
+    decorations,
+    createPortal,
+    Component,
+    context,
+  ) {
     this.dom = document.createElement('div');
 
     this.dom.id = uuidv4();
     this.dom.classList.add('portal');
 
-    createPortal(this.dom, Component, node, view, getPos, decorations);
+    createPortal(this.dom, Component, node, view, getPos, decorations, context);
   }
 
   update(node) {
diff --git a/wax-prosemirror-services/src/PortalService/portalPlugin.js b/wax-prosemirror-services/src/PortalService/portalPlugin.js
index 3c0b49d82cdcc51225dc287cb457a31079459aae..ae23ce938a3cd8f1d8b46cbb4b9c4f7d9311a031 100644
--- a/wax-prosemirror-services/src/PortalService/portalPlugin.js
+++ b/wax-prosemirror-services/src/PortalService/portalPlugin.js
@@ -3,20 +3,29 @@ import AbstractNodeView from './AbstractNodeView';
 
 const portalPlugin = new PluginKey('portalPlugin');
 
-const CreateNodeView = (createPortal, Component, NodeView) => {
+const CreateNodeView = (createPortal, Component, NodeView, context) => {
   return (theNode, view, getPos, decorations) =>
-    new NodeView(theNode, view, getPos, decorations, createPortal, Component);
+    new NodeView(
+      theNode,
+      view,
+      getPos,
+      decorations,
+      createPortal,
+      Component,
+      context,
+    );
 };
 
 export default props => {
   const nodeViews = {};
   props.portals.forEach(p => {
     const name = p.nodeView ? p.nodeView.name() : p.name;
-
+    console.log('ppp', p);
     nodeViews[name] = CreateNodeView(
       props.createPortal,
       p.component,
       p.nodeView || AbstractNodeView,
+      p.context.context,
     );
   });