     }
 
     private func bindDidChangePlayback() {
-        listenTo(container, eventName: InternalEvent.didChangePlayback.rawValue) { [weak self] _ in self?.didChangePlayback() }
+        if let container = self.container {
+            listenTo(container, eventName: InternalEvent.didChangePlayback.rawValue) { [weak self] _ in self?.didChangePlayback() }
+        }
     }
 
     fileprivate func playbackStalled() {

    }

    func playTouched() {
        container.playback?.seek(0)
        container.playback?.play()
    }

    fileprivate func configureViews() {
        container.addMatchingConstraints(self)
        addSubviewMatchingConstraints(poster)

        addSubview(playButton)

    }

    private func bindPlaybackEvents() {
        if let playback = container?.playback {
            listenTo(playback, eventName: Event.playing.rawValue) { [weak self] _ in self?.playbackStarted() }
            listenTo(playback, eventName: Event.ready.rawValue) { [weak self] _ in self?.playbackReady() }
            listenTo(playback, eventName: Event.stalled.rawValue) { [weak self] _ in self?.playbackStalled() }
