diff --git a/erpnext/public/js/hub/event_emitter.js b/erpnext/public/js/hub/event_emitter.js
deleted file mode 100644
index 1e72881..0000000
--- a/erpnext/public/js/hub/event_emitter.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Simple EventEmitter which uses jQuery's event system
- */
-class EventEmitter {
-    init() {
-        this.jq = jQuery(this);
-    }
-
-    trigger(evt, data) {
-        !this.jq && this.init();
-        this.jq.trigger(evt, data);
-    }
-
-    once(evt, handler) {
-        !this.jq && this.init();
-        this.jq.one(evt, (e, data) => handler(data));
-    }
-
-    on(evt, handler) {
-        !this.jq && this.init();
-        this.jq.bind(evt, (e, data) => handler(data));
-    }
-
-    off(evt, handler) {
-        !this.jq && this.init();
-        this.jq.unbind(evt, (e, data) => handler(data));
-    }
-}
-
-
-export default EventEmitter;
\ No newline at end of file
diff --git a/erpnext/public/js/hub/marketplace.js b/erpnext/public/js/hub/marketplace.js
index 7ef87c4..a1596e0 100644
--- a/erpnext/public/js/hub/marketplace.js
+++ b/erpnext/public/js/hub/marketplace.js
@@ -8,14 +8,13 @@
 
 // helpers
 import './hub_call';
-import EventEmitter from './event_emitter';
 
 frappe.provide('hub');
 frappe.provide('erpnext.hub');
 frappe.provide('frappe.route');
 
-$.extend(erpnext.hub, EventEmitter.prototype);
-$.extend(frappe.route, EventEmitter.prototype);
+frappe.utils.make_event_emitter(frappe.route);
+frappe.utils.make_event_emitter(erpnext.hub);
 
 erpnext.hub.Marketplace = class Marketplace {
 	constructor({ parent }) {
