     static let padding: CGFloat = 16
   }
 
-  private lazy var label: UILabel = {
-    let label = UILabel()
-    label.textColor = AppTheme.defaultTheme.colorScheme.primaryColor
-    label.font = MDCTypography.buttonFont()
+  private let label = UILabel()
+  private lazy var tile = MDCCatalogTileView(frame: CGRect.zero)
 
-    return label
-  }()
-  private lazy var tile = MDCCatalogTileView(frame: CGRect.zero)
+  deinit {
+    NotificationCenter.default.removeObserver(self,
+                                              name: AppTheme.didChangeGlobalThemeNotificationName,
+                                              object: nil)
+  }
 
   override init(frame: CGRect) {
     super.init(frame: frame)

    contentView.addSubview(tile)
    self.isAccessibilityElement = true
    self.accessibilityTraits |= UIAccessibilityTraitButton
  }

  @available(*, unavailable)

    label.text = ""
  }

  func updateTheme() {
    label.font = AppTheme.globalTheme.typographyScheme.button
    label.textColor = AppTheme.globalTheme.colorScheme.onBackgroundColor
  }

  func themeDidChange(notification: NSNotification) {
    updateTheme()
  }

  func populateView(_ componentName: String) {
    label.text = componentName
    tile.componentName = componentName
