     public func tunnelReplies(#identifier: String) {
         wormhole.listenForMessageWithIdentifier(identifier) { (message) -> Void in
             if let message: AnyObject = message {
-                let allPeers = PeerKit.session?.connectedPeers as? [MCPeerID]
-                PeerKit.sendEvent(identifier, object: message, toPeers: allPeers)
                 if let callback = self.callback {
                     callback(message: "Received message from watch: \(message) for \(identifier)")
                 }
 
+                self.sendMultipeerMessage(message, identifier: identifier)
             }
         }
     }

        super.init(applicationGroupIdentifier: applicationGroupIdentifier)

        PeerKit.transceive(sanitizedIdentifier)

        wormhole = MMWormhole(applicationGroupIdentifier: applicationGroupIdentifier, optionalDirectory: "stargate")
    }

    public func debug(callback: DebugHandler) {


    public func passMessage(message: NSCoding, identifier: String) {
        fatalError("passMessageObject() needs to be overidden in subclasses.")
    }

    public func sendMultipeerMessage(message: AnyObject, identifier: String) {
        let allPeers = PeerKit.session?.connectedPeers as? [MCPeerID]
        PeerKit.sendEvent(identifier, object: message, toPeers: allPeers)
    }

    public func stopListeningForMessage(#identifier: String) {
