diff --git a/src/components/grabbable-toggle.js b/src/components/grabbable-toggle.js
index f3d4bc7e79099c20342cb9bdb231c545b14c1e9e..d7e978e8c3032b82b8386811dd724d90c9e6b504 100644
--- a/src/components/grabbable-toggle.js
+++ b/src/components/grabbable-toggle.js
@@ -121,7 +121,6 @@ AFRAME.registerComponent(
       }
 
       if (handIndex !== -1) {
-        this.grabbers.splice(handIndex, 1);
         this.grabber = this.grabbers[0];
       }
 
@@ -134,6 +133,10 @@ AFRAME.registerComponent(
         this.lastGrabber = null;
       }
 
+      if (handIndex !== -1) {
+        this.grabbers.splice(handIndex, 1);
+      }
+
       this.physicsEnd(evt);
       if (!this.resetGrabber()) {
         this.grabbed = false;
diff --git a/src/components/super-spawner.js b/src/components/super-spawner.js
index f2b43e2813451838bde8dd426905bd5c22e4531e..a7fa520bae72f0e4d9f857b3b11592fb02bbfe8f 100644
--- a/src/components/super-spawner.js
+++ b/src/components/super-spawner.js
@@ -103,7 +103,7 @@ AFRAME.registerComponent("super-spawner", {
     entity.object3D.rotation.copy(
       this.data.useCustomSpawnRotation ? this.data.spawnRotation : this.el.object3D.rotation
     );
-    entity.object3D.scale.copy(this.data.useCustomSpawnRotation ? this.data.spawnScale : this.el.object3D.scale);
+    entity.object3D.scale.copy(this.data.useCustomSpawnScale ? this.data.spawnScale : this.el.object3D.scale);
 
     this.activateCooldown();
 
diff --git a/src/components/tools/drawing-manager.js b/src/components/tools/drawing-manager.js
index 34d8f64887094c35fb2ffdcb214278f842181520..31f7c490e5fd232c94d283b2fc9b4308ede9ca01 100644
--- a/src/components/tools/drawing-manager.js
+++ b/src/components/tools/drawing-manager.js
@@ -10,26 +10,13 @@ AFRAME.registerComponent("drawing-manager", {
   init() {
     this.handleDrawingInitialized = this.handleDrawingInitialized.bind(this);
 
-    // this.drawingEl = document.querySelector(this.data.drawing);
     this.drawingToPen = new Map();
-
-    // if (this.drawingEl.hasLoaded) {
-    //   this.drawing = this.drawingEl.components["networked-drawing"];
-    // } else {
-    //   this.drawingEl.addEventListener("componentinitialized", this.handleDrawingInitialized);
-    // }
-  },
-
-  remove() {
-    // this.drawingEl.removeEventListener("componentinitialized", this.handleDrawingInitialized);
   },
 
   play() {
     this.drawing = document.querySelector(this.data.drawing).components["networked-drawing"];
   },
 
-  pause() {},
-
   handleDrawingInitialized(e) {
     if (e.detail.name === "networked-drawing") {
       this.drawing = this.drawingEl.components["networked-drawing"];
diff --git a/src/hub.html b/src/hub.html
index 8569192806a5c890774071c8f040748fd2624df6..65787209d3986576fdf3a27edea77951fe30d4b3 100644
--- a/src/hub.html
+++ b/src/hub.html
@@ -170,7 +170,7 @@
                     super-networked-interactable="counter: #pen-counter; mass: 1;"
                     body="type: dynamic; shape: none; mass: 1;"
                     sticky-object="autoLockOnRelease: true; autoLockOnLoad: true;"
-                    grabbable-toggle="maxGrabbers: 1; maxGrabBehavior: drop;"
+                    grabbable-toggle="maxGrabbers: 1;"
                     hoverable
                     activatable__draw-hand="buttonStartEvents: secondary_hand_grab; buttonEndEvents: secondary_hand_release;"
                     activatable__draw-cursor="buttonStartEvents: secondary-cursor-grab; buttonEndEvents: secondary-cursor-release;"
@@ -438,7 +438,7 @@
 
         <!-- TODO: remove this once the pens are added into the environments -->
         <a-entity 
-            gltf-model-plus="src: https://asset-bundles-prod.reticulum.io/interactables/DrawingPen/DrawingPen-484ae5682f.gltf"
+            media-loader="src: https://asset-bundles-prod.reticulum.io/interactables/DrawingPen/DrawingPen-484ae5682f.gltf"
             class="interactable toggle" 
             super-spawner="template: #pen-interactable; src: https://asset-bundles-prod.reticulum.io/interactables/DrawingPen/DrawingPen-484ae5682f.gltf;" 
             position="-1 1.2 -5.5"
diff --git a/src/hub.js b/src/hub.js
index a22c0968023ea84fe253a192abd66e57d6739d5a..17ef7acf4cf3701c30329a8c60101b8bf16972a2 100644
--- a/src/hub.js
+++ b/src/hub.js
@@ -134,6 +134,10 @@ import "./components/cursor-controller";
 
 import "./components/nav-mesh-helper";
 
+import "./components/tools/pen";
+import "./components/tools/networked-drawing";
+import "./components/tools/drawing-manager";
+
 import registerNetworkSchemas from "./network-schemas";
 import { inGameActions, config as inputConfig } from "./input-mappings";
 import registerTelemetry from "./telemetry";
@@ -141,10 +145,6 @@ import registerTelemetry from "./telemetry";
 import { getAvailableVREntryTypes, VR_DEVICE_AVAILABILITY } from "./utils/vr-caps-detect.js";
 import ConcurrentLoadDetector from "./utils/concurrent-load-detector.js";
 
-import "./components/tools/pen";
-import "./components/tools/networked-drawing";
-import "./components/tools/drawing-manager";
-
 import qsTruthy from "./utils/qs_truthy";
 
 const isBotMode = qsTruthy("bot");
diff --git a/src/utils/sharedbuffergeometry.js b/src/utils/sharedbuffergeometry.js
index 189176ffd9f764d0207e4b0d714d78804aa61dc3..0b044be87d17c35b95e627bf3c822a788f11e323 100644
--- a/src/utils/sharedbuffergeometry.js
+++ b/src/utils/sharedbuffergeometry.js
@@ -66,9 +66,9 @@ export default class SharedBufferGeometry {
     mesh.frustumCulled = false;
     mesh.vertices = vertices;
 
-    this.object3D = new THREE.Object3D();
-    this.drawing.add(this.object3D);
-    this.object3D.add(mesh);
+    const object3D = new THREE.Object3D();
+    this.drawing.add(object3D);
+    object3D.add(mesh);
 
     geometry.setDrawRange(0, 0);
     geometry.addAttribute("position", new THREE.BufferAttribute(vertices, 3).setDynamic(true));