 
         // Countdown view only counts down when we have a superview.
         if let _ = newSuperview {
-            countdownView.startTimer()
+            countdownView?.startTimer()
         } else {
-            countdownView.stopTimer()
+            countdownView?.stopTimer()
         }
     }
 

class AuctionBannerView: UIView {
    let viewModel: SaleViewModel

    // Note: These are in order as they'll be in the view hierarchy (ie: first in the list is at the back)
    private let backgroundImageView = UIImageView()
    private let darkeningView = DarkeningView()
    private let logoImageView = UIImageView()
    private let countdownView = ARCountdownView(color: .whiteColor())

    init(viewModel: SaleViewModel) {
        self.viewModel = viewModel
        super.init(frame: CGRect.zero)

        countdownView.targetDate = viewModel.closingDate
        countdownView.heading = "Closing In"
    }

    required init?(coder aDecoder: NSCoder) {


extension AuctionBannerView {
    private func setupViews() {

        // Note: These are in order as they'll be in the view hierarchy (ie: first in the list is at the back)
        let backgroundImageView = UIImageView()
        let darkeningView = DarkeningView()
        let logoImageView = UIImageView()
        let countdownView = ARCountdownView(color: .whiteColor()).then {
            $0.targetDate = self.viewModel.closingDate
            $0.heading = "Closing In"
        }
        self.countdownView = countdownView

        // Add all as subviews to self.
        [backgroundImageView, darkeningView, logoImageView, countdownView].forEach(apply(addSubview))
