diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestion.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
index 02b0d0d71c0c34ef3653974d7cc6269b6fd5f72b..6bc570e48708ad4beeaff02341253d7c172ce040 100644
--- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
+++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
@@ -4,6 +4,8 @@ import { injectable } from 'inversify';
 import { Tools } from 'wax-prosemirror-services';
 import { Commands } from 'wax-prosemirror-utilities';
 import { Fragment } from 'prosemirror-model';
+import { findWrapping } from 'prosemirror-transform';
+
 import { v4 as uuidv4 } from 'uuid';
 import helpers from './helpers/helpers';
 import ToolBarBtn from './components/ToolBarBtn';
@@ -42,26 +44,24 @@ class MultipleChoiceQuestion extends Tools {
       const { from, to } = state.selection;
       const { tr } = state;
 
-      state.schema.nodes.question_wrapper.spec.atom = false;
+      state.doc.nodesBetween(from, to, (node, pos) => {
+        if (node.type.name === 'question_wrapper') {
+          createQuestion(state, dispatch, tr, context);
+        } else {
+          let { $from, $to } = state.selection;
+          let range = $from.blockRange($to),
+            wrapping =
+              range &&
+              findWrapping(
+                range,
+                state.config.schema.nodes.question_wrapper,
+                {},
+              );
+          if (!wrapping) return false;
+          if (dispatch) tr.wrap(range, wrapping).scrollIntoView();
 
-      setTimeout(() => {
-        state.doc.nodesBetween(from, to, (node, pos) => {
-          if (node.type.name === 'question_wrapper') {
-            createQuestion(state, dispatch, tr, context);
-          } else {
-            tr.setBlockType(
-              from,
-              to,
-              state.config.schema.nodes.question_wrapper,
-              {
-                class: 'question',
-              },
-            );
-            if (!tr.steps.length) return false;
-            createQuestion(state, dispatch, tr, context);
-          }
-        });
-        state.schema.nodes.question_wrapper.spec.atom = true;
+          createQuestion(state, dispatch, tr, context);
+        }
       });
     };
   }
diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
index 6634fdacadc79993221958159c680c961404852b..a7b59b9a2b23e01ee8498c3cb5b53134780e5ec7 100644
--- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
+++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
@@ -30,10 +30,10 @@ class MultipleChoiceQuestionService extends Service {
         },
         group: 'block',
         atom: true,
-        content: 'inline*',
+        content: 'block+',
         parseDOM: [
           {
-            tag: 'p.mutiple-choice',
+            tag: 'div.mutiple-choice',
             getAttrs(dom) {
               return {
                 id: dom.dataset.id,
@@ -43,7 +43,7 @@ class MultipleChoiceQuestionService extends Service {
           },
         ],
         toDOM(node) {
-          return ['p', node.attrs, 0];
+          return ['div', node.attrs, 0];
         },
       },
     });
diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/schema/multipleChoiceNode.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/schema/multipleChoiceNode.js
index 747a9c1d9fe35f7d12a1c4fb235a96b54d84374f..61e6edde27220d27d4ce86afc98292a91c0836f2 100644
--- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/schema/multipleChoiceNode.js
+++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/schema/multipleChoiceNode.js
@@ -4,9 +4,8 @@ const multipleChoiceNode = {
     correct: { default: false },
     feedback: { default: false },
   },
-  group: 'inline',
-  content: 'block*',
-  inline: true,
+  group: 'block',
+  content: 'block+',
   // atom: true,
   toDOM: node => ['multiple-choice', node.attrs, 0],
   parseDOM: [
@@ -21,27 +20,4 @@ const multipleChoiceNode = {
   ],
 };
 
-// const multipleChoiceNode = {
-//   group: 'block multiple',
-//   content: 'text*',
-//   atom: true,
-//   code: true,
-//   toDOM: () => ['multiple-choice', { class: 'multiple-choice' }, 0],
-//   parseDOM: [
-//     {
-//       tag: 'multiple-choice',
-//     },
-//   ],
-// };
-
-// const multipleChoiceNode = {
-//   content: 'block+',
-//   group: 'block',
-//   defining: true,
-//   //   parseDOM: [{ tag: 'multiple-choice' }],
-//   toDOM() {
-//     // return ['multiple-choice', 0];
-//   },
-// };
-
 export default multipleChoiceNode;