             
             currentPlayerController = VideoPlayerViewController(player: playbackViewModel.player)
             
-            attachPlayerToShelf()
+            attachPlayerToShelf(controller)
         } catch {
             WWDCAlert.show(with: error)
         }

        currentPlayerController = nil
    }
    
    private func attachPlayerToShelf() {
        guard let playerController = currentPlayerController else { return }
        
        let shelf = videosController.detailViewController.shelfController
        
        shelf.addChildViewController(playerController)
        

extension AppCoordinator: ShelfViewControllerDelegate {
    
    func shelfViewControllerDidSelectPlay(_ controller: ShelfViewController) {
        guard let viewModel = controller.viewModel.value else { return }
        
        do {
            let playbackViewModel = try PlaybackViewModel(sessionViewModel: viewModel, storage: storage)
