 public protocol Session {
 
   var iden: ClientIden { get }
+
+  // Connection concerns
+  //////////////////////////////////////////////////////////////////////////
 
   func connectedPeer() -> Observable<Client>
   func disconnectedPeer() -> Observable<Client>

   _ mode: MCSessionSendDataMode)
  -> Observable<()>

  func receive() -> Observable<(Client, String, ResourceState)>

}

  func disconnect()
  func connectionErrors() -> Observable<NSError>

  // Data reception concerns
  //////////////////////////////////////////////////////////////////////////

  func receive() -> Observable<(Client, NSData)>
  func receive() -> Observable<(Client, String, ResourceState)>

  // Data delivery concerns
  //////////////////////////////////////////////////////////////////////////

  func send
  (other: Client,
   _ data: NSData,
   _ mode: MCSessionSendDataMode)
  -> Observable<()>

  func send
  (other: Client,
