 			trackIdsToSenders[rtcMediaStreamTrack.trackId] = rtcSender;
 			return true;
 		}
-		
+
 		return false;
 	}
-	
+
 	func removeTrack(_ pluginMediaTrack: PluginMediaStreamTrack) {
 		NSLog("PluginRTCPeerConnection#removeTrack()")
-		
-		if self.rtcPeerConnection.signalingState == RTCSignalingState.closed {
-			return
-		}
-		
+
+		if self.rtcPeerConnection.signalingState == RTCSignalingState.closed {
+			return
+		}
+
 		let rtcMediaStreamTrack = pluginMediaTrack.rtcMediaStreamTrack;
 		let rtcSender = trackIdsToSenders[rtcMediaStreamTrack.trackId];
-		
+
 		if (rtcSender != nil) {
 			self.rtcPeerConnection.removeTrack(rtcSender!)
 			trackIdsToSenders[rtcMediaStreamTrack.trackId] = nil

		}

		let pluginRTCPeerConnectionConstraints = PluginRTCPeerConnectionConstraints(pcConstraints: options)
		
		self.onCreateRemoteDescriptionSuccessCallback = { (rtcSessionDescription: RTCSessionDescription) -> Void in
			NSLog("PluginRTCPeerConnection#createAnswer() | success callback")


		if self.rtcPeerConnection.signalingState == RTCSignalingState.closed {
			return false
		}

		if (IsUnifiedPlan()) {

			var streamAdded : Bool = false;
			let streamId = pluginMediaStream.rtcMediaStream.streamId;
			for (_, pluginMediaTrack) in pluginMediaStream.audioTracks {
				streamAdded = self.addTrack(pluginMediaTrack, [streamId]) && streamAdded;
			}

			for (_, pluginMediaTrack) in pluginMediaStream.videoTracks {
				streamAdded = self.addTrack(pluginMediaTrack, [streamId]) && streamAdded;
			}

			return streamAdded;

		} else {
			self.rtcPeerConnection.add(pluginMediaStream.rtcMediaStream)
		}

		return true
	}

