    _ mode: MCSessionSendDataMode)
   -> Observable<()>
 
-  func receive() -> Observable<(Client, String, ResourceState)>
-
 }

public protocol Session {

  var iden: ClientIden { get }

  func connectedPeer() -> Observable<Client>
  func disconnectedPeer() -> Observable<Client>

  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,
