     self.webService?.deleteVideo(identifier: identifier)
       .observeOn(MainScheduler.instance)
       .do(onNext: nil, onError: { (error: Error) in
-        let message = "Failed to delete video with error : \(error)"
-        self.delegate?.error(message: message)
-        logger.error(.webServiceClient, message)
+        
       }, onCompleted: { _ in
-        self.delegate?.deleted()
+        
       }, onSubscribe: nil, onSubscribed: nil, onDispose: nil)
-      .subscribe()
+      .subscribe({ (event: Event<()>) in
+        switch event {
+        case .next(_): break
+        case .error(let error):
+          let message = "Failed to delete video with error : \(error)"
+          self.delegate?.error(message: message)
+          logger.error(.webServiceClient, message)
+        case .completed: self.delegate?.deleted()
+          
+        }
+      })
       .addDisposableTo(self.disposeBag)
   }
 }

    }
    self.webService?.add(video: video)
      .observeOn(MainScheduler.instance)
      .do(onNext: { (video: Video) in
        self.delegate?.added(video: video)
      }, onError: { (error: Error) in
        let message = "Failed to add video with error : \(error)"
        self.delegate?.error(message: message)
        logger.error(.webServiceClient, message)
      }, onCompleted: nil, onSubscribe: nil, onSubscribed: nil, onDispose: nil)
      .subscribe()
      .addDisposableTo(self.disposeBag)
  }
  

  func fetchVideos() {
    self.webService?.fetchAllVideos()
      .observeOn(MainScheduler.instance)
      .subscribe({ (event: Event<[Video]>) in
        switch event {
        case .next(let videos): self.delegate?.fetched(videos: videos)
        case .error(let error):
          let message = "Failed to fetch videos with error : \(error)"
          self.delegate?.error(message: message)
          logger.error(.webServiceClient, message)
        case .completed: break
        }
      })
      .addDisposableTo(self.disposeBag)
  }
  
