diff --git a/src/behaviours/joystick-dpad4.js b/src/behaviours/joystick-dpad4.js
index d0cc1e2a87d1882346deb724d5ba14570d46b02c..0eae7e1d194dfb6f207da53a7499caaf8e483c02 100644
--- a/src/behaviours/joystick-dpad4.js
+++ b/src/behaviours/joystick-dpad4.js
@@ -8,10 +8,16 @@ function joystick_dpad4(el, outputPrefix) {
   this.previous = "none";
   this.hapticIntensity = "low";
   this.emitDPad4 = this.emitDPad4.bind(this);
-  el.addEventListener("axismove", this.emitDPad4);
+  this.el = el;
 }
 
 joystick_dpad4.prototype = {
+  addEventListeners: function() {
+    this.el.addEventListener("axismove", this.emitDPad4);
+  },
+  removeEventListeners: function() {
+    this.el.removeEventListener("axismove", this.emitDPad4);
+  },
   emitDPad4: function(event) {
     const x = event.detail.axis[0];
     const y = event.detail.axis[1];
diff --git a/src/behaviours/trackpad-dpad4.js b/src/behaviours/trackpad-dpad4.js
index b23ca1dbdb1f61ec6d99e9d2fab17ab4c96b0248..f15908d34d5854d60ae158af7026007745293dfb 100644
--- a/src/behaviours/trackpad-dpad4.js
+++ b/src/behaviours/trackpad-dpad4.js
@@ -10,12 +10,20 @@ function trackpad_dpad4(el, outputPrefix) {
   this.unpress = this.unpress.bind(this);
   this.hapticIntensity = "low";
   this.centerRadius = 0.6;
-  el.addEventListener("axismove", this.emitDPad4);
-  el.addEventListener("trackpaddown", this.press);
-  el.addEventListener("trackpadup", this.unpress);
+  this.el = el;
 }
 
 trackpad_dpad4.prototype = {
+  addEventListeners: function() {
+    this.el.addEventListener("axismove", this.emitDPad4);
+    this.el.addEventListener("trackpaddown", this.press);
+    this.el.addEventListener("trackpadup", this.unpress);
+  },
+  removeEventListeners: function() {
+    this.el.removeEventListener("axismove", this.emitDPad4);
+    this.el.removeEventListener("trackpaddown", this.press);
+    this.el.removeEventListener("trackpadup", this.unpress);
+  },
   press: function() {
     this.pressed = true;
   },
diff --git a/yarn.lock b/yarn.lock
index 6ae1ce2d8e2b6fb237724d975e27a2145a189ca7..c1b55583abc4b15c98410da390c0fb2c500c5c7d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -168,7 +168,7 @@ aframe-extras@^4.0.0:
 
 "aframe-input-mapping-component@https://github.com/johnshaughnessy/aframe-input-mapping-component#feature/map-to-array":
   version "0.1.2"
-  resolved "https://github.com/johnshaughnessy/aframe-input-mapping-component#4c7e493ad6c4a25eef27d32551c94d8b78541191"
+  resolved "https://github.com/johnshaughnessy/aframe-input-mapping-component#33d7ad4c82a5e2b74defca39c7fa5ef15aab493e"
 
 "aframe-physics-extras@https://github.com/infinitelee/aframe-physics-extras#fix/physics-collider-crash":
   version "0.1.2"