 
 class CardList: OverWindowController {
 
-    @IBOutlet weak var table: NSTableView!
+    @IBOutlet weak var table: NSTableView?
 
     var cards = [Card]()
 
     override func windowDidLoad() {
         super.windowDidLoad()
 
-        table.intercellSpacing = NSSize(width: 0, height: 0)
+        table?.intercellSpacing = NSSize(width: 0, height: 0)
 
-        table.backgroundColor = NSColor.clear
-        table.autoresizingMask = [NSAutoresizingMaskOptions.viewWidthSizable,
+        table?.backgroundColor = NSColor.clear
+        table?.autoresizingMask = [NSAutoresizingMaskOptions.viewWidthSizable,
                                        NSAutoresizingMaskOptions.viewHeightSizable]
 
         NotificationCenter.default

// MARK: - CardCellHover
extension CardList: CardCellHover {
    func hover(cell: CardBar, card: Card) {
        let row = table.row(for: cell)
        let rect = table.frameOfCell(atColumn: 0, row: row)

        let offset = rect.origin.y - table.enclosingScrollView!.documentVisibleRect.origin.y
        let windowRect = self.window!.frame

        let hoverFrame = NSRect(x: 0, y: 0, width: 200, height: 300)


    func set(cards: [Card]) {
        self.cards = cards
        table?.reloadData()
    }
    
    var frameHeight: CGFloat {
        var rowHeight: CGFloat = 0
        switch Settings.cardSize {
        case .tiny: rowHeight = CGFloat(kTinyRowHeight)
        case .small: rowHeight = CGFloat(kSmallRowHeight)
