diff --git a/src/publicapi.js b/src/publicapi.js
index f5df089..2ccdeb2 100644
--- a/src/publicapi.js
+++ b/src/publicapi.js
@@ -139,19 +139,6 @@
       this.__controller.root.postOrder('reflow');
       return this;
     };
-  _.clickAt = function(clientX, clientY, target) {
-    target = target || document.elementFromPoint(clientX, clientY);
-
-    var ctrlr = this.__controller, root = ctrlr.root;
-    if (!jQuery.contains(root.jQ[0], target)) target = root.jQ[0];
-    ctrlr.seek($(target), clientX + pageXOffset, clientY + pageYOffset);
-    if (ctrlr.blurred) this.focus();
-    return this;
-  };
-  _.ignoreNextMousedown = function(fn) {
-    this.__controller.cursor.options.ignoreNextMousedown = fn;
-    return this;
-  };
   });
   MQ.prototype = AbstractMathQuill.prototype;
 
@@ -226,6 +213,19 @@
       var cmd = Embed().setOptions(options);
       cmd.createLeftOf(this.__controller.cursor);
     };
+    _.clickAt = function(clientX, clientY, target) {
+      target = target || document.elementFromPoint(clientX, clientY);
+
+      var ctrlr = this.__controller, root = ctrlr.root;
+      if (!jQuery.contains(root.jQ[0], target)) target = root.jQ[0];
+      ctrlr.seek($(target), clientX + pageXOffset, clientY + pageYOffset);
+      if (ctrlr.blurred) this.focus();
+      return this;
+    };
+    _.ignoreNextMousedown = function(fn) {
+      this.__controller.cursor.options.ignoreNextMousedown = fn;
+      return this;
+    };
   });
   MQ.EditableField = function() { throw "wtf don't call me, I'm 'abstract'"; };
   MQ.EditableField.prototype = APIClasses.EditableField.prototype;
