diff --git a/editors/demo/src/HHMI/HHMI.js b/editors/demo/src/HHMI/HHMI.js
index a9a1f565a5a0f238a17a178b2bd1b2ad63c07964..77c52f59b717a961acacc022526d75577c6238e7 100644
--- a/editors/demo/src/HHMI/HHMI.js
+++ b/editors/demo/src/HHMI/HHMI.js
@@ -15,7 +15,16 @@ const renderImage = file => {
   });
 };
 
-const t = `<p class="paragraph">Based on the equation below</p><math-display class="math-node">x + y = 5</math-display><p class="paragraph">Which ones are correct?</p><p class="paragraph"></p><div id="" class="multiple-choice"><div class="multiple-choice-option" id="d7b65415-ff82-446f-afa4-accaa3837f4a" correct="false" feedback=""><p class="paragraph">answer 1</p><p class="paragraph"><math-inline class="math-node">x+y=1</math-inline></p></div><div class="multiple-choice-option" id="e7d6bb2f-7cd7-44f1-92a0-281e72157538" correct="true" feedback=""><p class="paragraph">answer 2</p></div><div class="multiple-choice-option" id="d6fc749f-afae-4203-9562-d68c380a86e5" correct="false" feedback="1111111"><p class="paragraph">answer 3</p></div></div><div id="" class="fill-the-gap"><p class="paragraph">A <span id="bfd4376c-4424-455e-9187-f53282fa1024" class="fill-the-gap">DNA</span> molecule is very long and usually consists of hundreds or thousands of genes.</p><p class="paragraph">An electron having a certain discrete amount of <span id="14dedf44-728f-4384-835f-e3af82b25623" class="fill-the-gap">energy</span> is something like a ball on a staircase.</p></div><p class="paragraph"></p>`;
+const t = `<p class="paragraph">Based on the equation below</p>
+<math-display class="math-node">x + y = 5</math-display><p class="paragraph">Which ones are correct?</p>
+<p class="paragraph"></p>
+<div id="" class="multiple-choice"><div class="multiple-choice-option" id="d7b65415-ff82-446f-afa4-accaa3837f4a" correct="false" feedback="">
+<p class="paragraph">answer 1</p><p class="paragraph"><math-inline class="math-node">x+y=1</math-inline></p></div>
+<div class="multiple-choice-option" id="e7d6bb2f-7cd7-44f1-92a0-281e72157538" correct="true" feedback="">
+<p class="paragraph">answer 2</p></div><div class="multiple-choice-option" id="d6fc749f-afae-4203-9562-d68c380a86e5" correct="false" feedback="1111111">
+<p class="paragraph">answer 3</p></div></div>
+
+<div id="" class="fill-the-gap"><p class="paragraph">A <span id="bfd4376c-4424-455e-9187-f53282fa1024" class="fill-the-gap">DNA</span> molecule is very long and usually consists of hundreds or thousands of genes.</p><p class="paragraph">An electron having a certain discrete amount of <span id="14dedf44-728f-4384-835f-e3af82b25623" class="fill-the-gap">energy</span> is something like a ball on a staircase.</p></div><p class="paragraph"></p>`;
 
 const Hhmi = () => {
   return (
diff --git a/editors/demo/src/HHMI/layout/EditorElements.js b/editors/demo/src/HHMI/layout/EditorElements.js
index 4d3b79fc0c922fe76bca10d0c36807d780af3101..537e7b9f87587090aaeaba83e67cc67cae42beb9 100644
--- a/editors/demo/src/HHMI/layout/EditorElements.js
+++ b/editors/demo/src/HHMI/layout/EditorElements.js
@@ -324,7 +324,8 @@ export default css`
 
   /* -- Multiple Choice ---------------------------------- */
 
-  .multiple-choice {
+  .multiple-choice,
+  .multiple-choice-single-correct {
     border: 3px solid #f5f5f7;
     counter-reset: question-item-multiple;
     margin: 38px;
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
index e5b708061c4b059cb0cc8dfcd2e2e81a8562c41f..754bc979a7451f5e808b9ec4bd11a253b174a8e3 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
@@ -62,7 +62,18 @@ class MultipleChoiceQuestion extends Tools {
   }
 
   get active() {
-    return state => {};
+    return state => {
+      let type = '';
+      const predicate = node =>
+        node.type === state.config.schema.nodes.multiple_choice;
+      for (let i = state.selection.$from.depth; i > 0; i--) {
+        const node = state.selection.$from.node(i);
+        if (predicate(node)) {
+          type = 'multiple';
+        }
+      }
+      return type;
+    };
   }
 
   select = (state, activeView) => {
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/EditorComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/EditorComponent.js
index ca16b28ec6758d630d907ec81e6a93c08209cebe..82b25b619ce8a037240276e3410c6e420262dbbf 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/EditorComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/EditorComponent.js
@@ -82,8 +82,6 @@ const EditorComponent = ({ node, view, getPos }) => {
     ...plugins,
   ]);
 
-  const { activeViewId } = context;
-
   useEffect(() => {
     questionView = new EditorView(
       {
@@ -100,14 +98,21 @@ const EditorComponent = ({ node, view, getPos }) => {
         disallowedTools: ['Images', 'Lists', 'lift', 'MultipleChoice'],
         handleDOMEvents: {
           mousedown: () => {
-            context.view[activeViewId].dispatch(
-              context.view[activeViewId].state.tr.setSelection(
-                TextSelection.between(
-                  context.view[activeViewId].state.selection.$anchor,
-                  context.view[activeViewId].state.selection.$head,
+            context.view.main.dispatch(
+              context.view.main.state.tr.setSelection(
+                new TextSelection(
+                  context.view.main.state.tr.doc.resolve(getPos() + 2),
                 ),
               ),
             );
+            // context.view[activeViewId].dispatch(
+            //   context.view[activeViewId].state.tr.setSelection(
+            //     TextSelection.between(
+            //       context.view[activeViewId].state.selection.$anchor,
+            //       context.view[activeViewId].state.selection.$head,
+            //     ),
+            //   ),
+            // );
             context.updateView({}, questionId);
             // Kludge to prevent issues due to the fact that the whole
             // footnote is node-selected (and thus DOM-selected) when
diff --git a/wax-prosemirror-services/src/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js b/wax-prosemirror-services/src/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js
index d53b66ed152353dfbe8e7bfa3295856f74553423..50903454355eb11149ae9c273471e756df97ad2b 100644
--- a/wax-prosemirror-services/src/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js
+++ b/wax-prosemirror-services/src/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js
@@ -62,7 +62,18 @@ class MultipleChoiceSingleCorrectQuestion extends Tools {
   }
 
   get active() {
-    return state => {};
+    return state => {
+      let type = '';
+      const predicate = node =>
+        node.type === state.config.schema.nodes.multiple_choice_single_correct;
+      for (let i = state.selection.$from.depth; i > 0; i--) {
+        const node = state.selection.$from.node(i);
+        if (predicate(node)) {
+          type = 'multipleSingle';
+        }
+      }
+      return type;
+    };
   }
 
   select = (state, activeView) => {
diff --git a/wax-prosemirror-services/src/MultipleChoiceSingleCorrectQuestionService/components/EditorComponent.js b/wax-prosemirror-services/src/MultipleChoiceSingleCorrectQuestionService/components/EditorComponent.js
index 8a80dbd4af0fab4425ddcf784328ca3ea44da486..68add35bead4009d38ab079341439dbc5b61d35e 100644
--- a/wax-prosemirror-services/src/MultipleChoiceSingleCorrectQuestionService/components/EditorComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceSingleCorrectQuestionService/components/EditorComponent.js
@@ -82,8 +82,6 @@ const EditorComponent = ({ node, view, getPos }) => {
     ...plugins,
   ]);
 
-  const { activeViewId } = context;
-
   useEffect(() => {
     questionView = new EditorView(
       {
@@ -100,11 +98,10 @@ const EditorComponent = ({ node, view, getPos }) => {
         disallowedTools: ['Images', 'Lists', 'lift', 'MultipleChoice'],
         handleDOMEvents: {
           mousedown: () => {
-            context.view[activeViewId].dispatch(
-              context.view[activeViewId].state.tr.setSelection(
-                TextSelection.between(
-                  context.view[activeViewId].state.selection.$anchor,
-                  context.view[activeViewId].state.selection.$head,
+            context.view.main.dispatch(
+              context.view.main.state.tr.setSelection(
+                new TextSelection(
+                  context.view.main.state.tr.doc.resolve(getPos() + 2),
                 ),
               ),
             );
diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js
index 898cdaa54a3b16d6e1f07cdd9a237102714d6fd0..35ef85b2aef1785ca8b12175dff4736b5cab5a42 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js
@@ -64,25 +64,37 @@ class MultipleDropDown extends ToolGroup {
     const { state } = view;
 
     const dropDownOptions = [
-      { label: 'Multiple Choice ', value: '0', item: this._tools[0] },
       {
-        label: 'Multiple Choice (single correct)  ',
+        label: 'Multiple Choice',
+        value: '0',
+        item: this._tools[0],
+        type: 'multiple',
+      },
+      {
+        label: 'Multiple Choice (single correct)',
         value: '1',
         item: this._tools[1],
+        type: 'multipleSingle',
+      },
+      {
+        label: 'True/False',
+        value: '2',
+        item: this._tools[0],
+        type: 'trueFalse',
       },
-      { label: 'True/False ', value: '2', item: this._tools[0] },
       {
-        label: 'True/False (single correct) ',
+        label: 'True/False (single correct)',
         value: '3',
         item: this._tools[0],
+        type: 'trueFalseSingle',
       },
     ];
 
     const isDisabled = this._tools[0].select(state, activeView);
     let found = '';
-    dropDownOptions.forEach((item, i) => {
-      if (item.item.select(state, activeView) === false) {
-        found = item.item.label;
+    dropDownOptions.forEach((option, i) => {
+      if (option.item.active(main.state) === option.type) {
+        found = option.label;
       }
     });