            :publications nil
            :connections nil
            :virtual-peers nil
+           :multiplex-id nil
            :compress-f nil :decompress-f nil 
            :inbound-ch nil :release-ch nil :retry-ch nil )))
 
+(defrecord PeerChannels [acking-ch inbound-ch release-ch retry-ch])
+
 (defmethod extensions/open-peer-site AeronConnection
-  [{:keys [virtual-peers] :as messenger} {:keys [aeron/id]}]
-  (swap! virtual-peers assoc id messenger)) 
+  [{:keys [virtual-peers multiplex-id acking-ch inbound-ch release-ch retry-ch] :as messenger} 
+   {:keys [aeron/id]}]
+  (reset! multiplex-id id)
+  (swap! virtual-peers assoc id (->PeerChannels acking-ch inbound-ch release-ch retry-ch))) 
 
 (def no-op-error-handler
   (reify ErrorHandler 


(defrecord AeronPeerConnection [channel id])

;;;; THIS CAN BE MADE FASTER BY NOT GOING THROUGH PEER-LINK IN OPERATION
(defmethod extensions/connect-to-peer AeronConnection
  [messenger peer-id event {:keys [aeron/external-addr aeron/port aeron/id]}]
  (->AeronPeerConnection (aeron-channel external-addr port) id))

             :release-ch release-ch
             :retry-ch retry-ch)))

  (stop [{:keys [release-ch retry-ch virtual-peers multiplex-id] :as component}]
    (taoensso.timbre/info "Stopping Aeron")
    (try 
      ;;; TODO; could handle the inbound-ch in a similar way - rather than using messenger-buffer
      (close! release-ch)
      (close! retry-ch)
      (when @multiplex-id 
        (swap! virtual-peers dissoc @multiplex-id))
      (catch Throwable e (fatal e)))
    (assoc component
           :send-idle-strategy nil 
