             collectionView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
         ])
         
-        navigationItem.searchController = searchController
-        definesPresentationContext = true
-        collectionView.dragDelegate = UIApplication.shared.supportsMultipleScenes ? self : nil
-        
-        dataSource = UICollectionViewDiffableDataSource<CollectionSection, County>(collectionView: collectionView) { [weak self] (collectionView, indexPath, county) -> UICollectionViewCell? in
-            guard let self = self else { return nil }
-            let countyCell = collectionView.dequeueReusableCell(withReuseIdentifier: "CountyCell", for: indexPath) as! CountyCell
-            countyCell.county = county
-            countyCell.displayStyle = self.styleForTraitCollection(self.traitCollection)
-            return countyCell
-        }
         dataSource.apply(snapshotForCurrentState(), animatingDifferences: false)
+        NotificationCenter.default.addObserver(self, selector: #selector(reloadData), name: FavouritesController.favouriteCountiesDidChangeNotification, object: FavouritesController.shared)
     }
     
     override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
         super.traitCollectionDidChange(previousTraitCollection)
         guard let previousTraitCollection = previousTraitCollection else { return }
-        if styleForTraitCollection(traitCollection) != styleForTraitCollection(previousTraitCollection) {
+        if cellStyleForTraitCollection(traitCollection) != cellStyleForTraitCollection(previousTraitCollection) {
             collectionView.reloadData() // Reload cells to adopt the new style
         }
     }

    override func viewDidLoad() {
        super.viewDidLoad()
        navigationItem.title = style.navigationItemTitle
        view.addSubview(collectionView)
        NSLayoutConstraint.activate([
            collectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor),

    init(style: Style) {
        self.style = style
        super.init(nibName: nil, bundle: nil)
        navigationItem.searchController = searchController
        definesPresentationContext = true
    }
    
    required init?(coder: NSCoder) {
