diff --git a/src/createHTMLAudioElementWithLoopEvent.js b/src/createHTMLAudioElementWithLoopEvent.js
index <HASH>..<HASH> 100644
--- a/src/createHTMLAudioElementWithLoopEvent.js
+++ b/src/createHTMLAudioElementWithLoopEvent.js
@@ -1,23 +1,13 @@
 const loopchange = new Event('loopchange');
 
-class HTMLAudioElementWithLoopEvent extends HTMLAudioElement {
-  get loop () {
-    return super.loop;
-  }
-
-  set loop (value) {
-    super.loop = value;
-    this.dispatchEvent(loopchange);
-  }
-}
-
-document.registerElement('audio-with-loop-event', {
-  prototype: HTMLAudioElementWithLoopEvent.prototype,
-  extends: 'audio'
-});
-
 function createHTMLAudioElementWithLoopEvent () {
-  return document.createElement('audio', 'audio-with-loop-event');
+  const audio = document.createElement('audio');
+  new MutationObserver(() => {
+    audio.dispatchEvent(loopchange);
+  }).observe(audio, {
+    attributeFilter: ['loop']
+  });
+  return audio;
 }
 
 module.exports = createHTMLAudioElementWithLoopEvent;
Custom audio element actually native audio element with MutationObserver on loop.