 
     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) {

    }

    public func tunnel() {
        PeerKit.onEvent = { (peerID, event, object) -> Void in
            if let object = object as? NSCoding {
                if let callback = self.callback {

        super.init(applicationGroupIdentifier: applicationGroupIdentifier)

        PeerKit.transceive(sanitizedIdentifier)
        sendMultipeerMessage(pingPayload, identifier: pingIdentifier)

        wormhole = MMWormhole(applicationGroupIdentifier: applicationGroupIdentifier, optionalDirectory: "stargate")
        wormhole.passMessageObject(pingPayload, identifier: pingIdentifier)
    }

    public func debug(callback: DebugHandler) {
