     return session.send(other.iden, name: name, url: url, mode)
   }
 
-  public func send
-  (other: Client<I>,
-   name: String,
-   url: NSURL,
-   _ mode: MCSessionSendDataMode = .Reliable,
-   onProgress pcb: (NSProgress) -> () = { _ in },
-   onComplete cb: () -> ()) {
-    send(other, name: name, url: url, mode)
-    .doOn(onNext: pcb)
-    .subscribeCompleted(cb)
-    .addDisposableTo(disposeBag)
-  }
 
   // Receiving data
 
   public func receive() -> Observable<(Client<I>, NSData)> {
     return session.receive().map { (Client(iden: $0), $1) }
-  }
-
-  public func receive(cb: (Client<I>, NSData) -> ()) {
-    receive()
-    .subscribeNext(cb)
-    .addDisposableTo(disposeBag)
   }
 
   public func receive() -> Observable<(Client<I>, [String: AnyObject])> {

    }
  }

  public func incomingConnections(cb: ((Client<I>, [String: AnyObject]?, (Bool) -> ())) -> ()) {
    incomingConnections()
    .subscribeNext(cb)
    .addDisposableTo(disposeBag)
  }

  public func nearbyPeers() -> Observable<[(Client<I>, [String: String]?)]> {
    return session.nearbyPeers().map { $0.map { (Client(iden: $0), $1) } }
  }

  public func nearbyPeers(cb: ([(Client<I>, [String: String]?)]) -> ()) {
    nearbyPeers()
    .subscribeNext(cb)
    .addDisposableTo(disposeBag)
  }

  public func startAdvertising() {

    .merge()
  }

  public func receive() -> Observable<(Client<I>, String)> {
    return session.receive()
    .map { (Client(iden: $0), NSString(data: $1, encoding: NSUTF8StringEncoding)) }
