             return UICollectionViewCell()
         }
         let item = pageHistorySections[indexPath.section].items[indexPath.item]
-        if let date = item.revisionDate {
-            // TODO: Local to UTC
-            cell.time = DateFormatter.wmf_shortTime()?.string(from: date)
-        }
-        // TODO: Use logged-in icon when available
-        cell.authorImage = item.isAnon ? UIImage(named: "bot") : UIImage(named: "anon")
-        cell.author = item.user
-        cell.sizeDiff = item.revisionSize > 0 ? "+\(item.revisionSize)" : "\(item.revisionSize)"
-        cell.comment = item.parsedComment?.removingHTML
-        cell.apply(theme: theme)
+        configure(cell: cell, for: item, at: indexPath)
         return cell
     }
 


    private var batchComplete = false
    private var isLoadingData = false

    var shouldLoadNewData: Bool {
        if batchComplete || isLoadingData {

    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        delegate?.pageHistoryViewControllerDidDisappear(self)
    }

    override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
        super.traitCollectionDidChange(previousTraitCollection)
        cellLayoutEstimate = nil
    }

    private func getPageHistory() {
