diff --git a/step-06/js/main.js b/step-06/js/main.js
index 9ba7701..450d093 100644
--- a/step-06/js/main.js
+++ b/step-06/js/main.js
@@ -186,9 +186,11 @@ function signalingMessageCallback(message) {
 
   } else if (message.type === 'candidate') {
     peerConn.addIceCandidate(new RTCIceCandidate({
-      candidate: message.candidate
+      candidate: message.candidate,
+      sdpMLineIndex: message.label,
+      sdpMid: message.id
     }));
-
+    
   }
 }
 
@@ -218,7 +220,15 @@ if (isInitiator) {
   onDataChannelCreated(dataChannel);
 
   console.log('Creating an offer');
-  peerConn.createOffer(onLocalSessionCreated, logError);
+  peerConn.createOffer().then(function(offer) {
+    return peerConn.setLocalDescription(offer);
+  })
+  .then(() => {
+    console.log('sending local desc:', peerConn.localDescription);
+    sendMessage(peerConn.localDescription);
+  })
+  .catch(logError);
+
 } else {
   peerConn.ondatachannel = function(event) {
     console.log('ondatachannel:', event.channel);
@@ -230,10 +240,10 @@ if (isInitiator) {
 
 function onLocalSessionCreated(desc) {
   console.log('local session created:', desc);
-  peerConn.setLocalDescription(desc, function() {
+  peerConn.setLocalDescription(desc).then(function() {
     console.log('sending local desc:', peerConn.localDescription);
     sendMessage(peerConn.localDescription);
-  }, logError);
+  }).catch(logError);
 }
 
 function onDataChannelCreated(channel) {