diff --git a/.eslintcache b/.eslintcache
index 96d9a22f6cb9db1f56996a9ec353daeada0dc899..02cc68f804c2f55081b339f84339d2290a764231 100644
--- a/.eslintcache
+++ b/.eslintcache
@@ -1 +1 @@
-{"/Users/leon/liowebrtc/test/selenium/index.js":{"size":160,"mtime":1526638470508,"hashOfConfig":"1kw6cgg","results":{"filePath":"/Users/leon/liowebrtc/test/selenium/index.js","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0}}}
\ No newline at end of file
+{"/Users/leon/liowebrtc/test/selenium/index.js":{"size":160,"mtime":1526638470508,"hashOfConfig":"1dw2gtw","results":{"filePath":"/Users/leon/liowebrtc/test/selenium/index.js","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0}}}
diff --git a/.eslintrc b/.eslintrc
index 32f3b494e30d346324a50fa346237e13c04c44ce..fa3083b87089a5ede14928a5646028cc556613e0 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -10,6 +10,8 @@
     "max-len": 0,
     "no-multi-assign": 0,
     "no-restricted-syntax": 0,
-    "no-param-reassign": 0
+    "no-param-reassign": 0,
+    "no-shadow": 0,
+    "consistent-return": 0
     }
 }
diff --git a/.gitignore b/.gitignore
index da592f8d929a709e27a696e18c1da232c1390814..74c2dde808d7413fd72819824b6c80256f6e48f7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
 node_modules
 .DS_Store
 dist
+yarn-error.log
+.eslintcache
diff --git a/src/liowebrtc.js b/src/liowebrtc.js
index e9fdc37e5766c57287a4416977e30612d0ff550f..82e56e81b68e9388ac1fba954154b9eb5dad5eae 100644
--- a/src/liowebrtc.js
+++ b/src/liowebrtc.js
@@ -134,7 +134,7 @@ class LioWebRTC extends WildEmitter {
     });
 
     // proxy events from WebRTC
-    this.webrtc.on('*', () => {
+    this.webrtc.on('*', function () {
       self.emit(...arguments);
     });
 
@@ -173,7 +173,7 @@ class LioWebRTC extends WildEmitter {
     });
 
     this.webrtc.on('iceFailed', (peer) => {
-
+      // local ice failure
     });
     this.webrtc.on('connectivityError', (peer) => {
       // remote ice failure
@@ -399,6 +399,10 @@ class LioWebRTC extends WildEmitter {
     });
   }
 
+  attachStream(stream, el) {
+    attachMediaStream(stream, el);
+  }
+
   testReadiness() {
     const self = this;
     if (this.sessionReady) {
diff --git a/src/peer.js b/src/peer.js
index c6eb9f152174fb51fbce1c78b4e146d849e0615b..47dc98521da686f2a0b8a2d23319a453156fca47 100644
--- a/src/peer.js
+++ b/src/peer.js
@@ -106,50 +106,39 @@ class Peer extends WildEmitter {
     this.logger.log('getting', message.type, message);
     if (message.prefix) this.browserPrefix = message.prefix;
 
-    switch (message.type) {
-      case 'offer':
-        if (!this.nick) this.nick = message.payload.nick;
-        delete message.payload.nick;
-        this.pc.handleOffer(message.payload, (err) => {
-          if (!err) {
-            self.pc.answer((err, sessionDescription) => {
-              // self.send('answer', sessionDescription);
-            });
-          }
-        });
-        break;
-      case 'answer':
-        if (!this.nick) this.nick = message.payload.nick;
-        delete message.payload.nick;
-        this.pc.handleAnswer(message.payload);
-        break;
-      case 'candidate':
-        this.pc.processIce(message.payload);
-        break;
-      case 'connectivityError':
-        this.parent.emit('connectivityError', self);
-        break;
-      case 'mute':
-        this.parent.emit('mute', {
-          id: message.from,
-          name: message.payload.name,
-        });
-        break;
-      case 'unmute':
-        this.parent.emit('unmute', { id: message.from, name: message.payload.name });
-        break;
-      case 'endOfCandidates':
-        // Edge requires an end-of-candidates. Since only Edge will have mLines or tracks on the
-        // shim this will only be called in Edge.
-        const mLines = this.pc.pc.transceivers || [];
-        mLines.forEach((mLine) => {
-          if (mLine.iceTransport) {
-            mLine.iceTransport.addRemoteCandidate({});
-          }
+    if (message.type === 'offer') {
+      if (!this.nick) this.nick = message.payload.nick;
+      delete message.payload.nick;
+      this.pc.handleOffer(message.payload, (err) => {
+        if (err) {
+          return;
+        }
+        // auto-accept
+        self.pc.answer((err, sessionDescription) => {
+          // self.send('answer', sessionDescription);
         });
-        break;
-      default:
-        break;
+      });
+    } else if (message.type === 'answer') {
+      if (!this.nick) this.nick = message.payload.nick;
+      delete message.payload.nick;
+      this.pc.handleAnswer(message.payload);
+    } else if (message.type === 'candidate') {
+      this.pc.processIce(message.payload);
+    } else if (message.type === 'connectivityError') {
+      this.parent.emit('connectivityError', self);
+    } else if (message.type === 'mute') {
+      this.parent.emit('mute', { id: message.from, name: message.payload.name });
+    } else if (message.type === 'unmute') {
+      this.parent.emit('unmute', { id: message.from, name: message.payload.name });
+    } else if (message.type === 'endOfCandidates') {
+      // Edge requires an end-of-candidates. Since only Edge will have mLines or tracks on the
+      // shim this will only be called in Edge.
+      const mLines = this.pc.pc.transceivers || [];
+      mLines.forEach((mLine) => {
+        if (mLine.iceTransport) {
+          mLine.iceTransport.addRemoteCandidate({});
+        }
+      });
     }
   }
 
diff --git a/yarn-error.log b/yarn-error.log
index 8e96622d970fc1802680e9165810d9d77771a8c0..8c298f8b125cd13448e61889446be46774cc27b4 100644
--- a/yarn-error.log
+++ b/yarn-error.log
@@ -1520,6 +1520,7 @@ Lockfile:
     version "1.3.48"
     resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz#d3b0d8593814044e092ece2108fc3ac9aea4b900"
   
+<<<<<<< HEAD
   emoji-regex@^6.1.0:
     version "6.5.1"
     resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2"
@@ -1530,6 +1531,8 @@ Lockfile:
     dependencies:
       iconv-lite "~0.4.13"
   
+=======
+>>>>>>> emit-fix
   engine.io-client@1.5.4:
     version "1.5.4"
     resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.5.4.tgz#c6ad65a65752a29cb930c6911e579d2b28d1106c"