 
 public class YPImagePicker: UINavigationController {
     
-    @available(*, deprecated, message: "Use didFinishPicking callback instead")
-    public var didSelectImage: ((UIImage) -> Void)?
-    @available(*, deprecated, message: "Use didFinishPicking callback instead")
-    public var didSelectVideo: ((Data, UIImage, URL) -> Void)?
-    @available(*, deprecated, message: "Use didFinishPicking callback instead")
-    public var didCancel: (() -> Void)?
-    
     private var _didFinishPicking: (([YPMediaItem], Bool) -> Void)?
     public func didFinishPicking(completion: @escaping (_ items: [YPMediaItem], _ cancelled: Bool) -> Void) {
         _didFinishPicking = completion

    // This keeps the backwards compatibility keeps the api as simple as possible.
    // Multiple selection becomes available as an opt-in.
    private func didSelect(items: [YPMediaItem]) {
        if items.count == 1 {
            if let didSelectImage = didSelectImage, let first = items.first,
                case let .photo(pickedPhoto) = first {
                didSelectImage(pickedPhoto.image)
            } else if let didSelectVideo = didSelectVideo, let first = items.first,
                case let .video(pickedVideo) = first {
                pickedVideo.fetchData { videoData in
                    didSelectVideo(videoData, pickedVideo.thumbnail, pickedVideo.url)
                }
            } else {
                _didFinishPicking?(items, false)
            }
        } else {
            _didFinishPicking?(items, false)
        }
    }
    
    let loadingView = YPLoadingView()

    override public func viewDidLoad() {
        super.viewDidLoad()
        picker.didClose = { [weak self] in
            self?._didFinishPicking?([], true)
        }
        viewControllers = [picker]
