         setup()
     }
 
+    override func prepareForReuse() {
+        viewModel = nil
+        delegate = nil
+        disclosureRow.disclosureButton.removeTarget(nil, action: nil, for: .allEvents)
+        disclosureRow.subscribeButton.removeTarget(nil, action: nil, for: .allEvents)
+    }
+
     func setup() {
         contentView.addSubview(rootContainer)
         rootContainer.addSubview(stackView)

    func apply(theme: Theme) {
        rootContainer.backgroundColor = theme.colors.paperBackground
        rootContainer.layer.borderColor = theme.colors.border.cgColor
    }

}

import Foundation
import UIKit
import WMF

protocol TalkPageCellDelegate: AnyObject {
    func userDidTapDisclosureButton(cellViewModel: TalkPageCellViewModel?)
    func userDidTapSubscribeButton(cellViewModel: TalkPageCellViewModel?)
}

final class TalkPageCell: UICollectionViewCell {

    // MARK: - Properties

    static let reuseIdentifier = "TalkPageCell"

    weak var viewModel: TalkPageCellViewModel?
    weak var delegate: TalkPageCellDelegate?

    // MARK: - UI Elements

