         super.viewDidLoad()
 
         collectionView.register(ProgrammaticallyGameCell.self, forCellWithReuseIdentifier: ProgrammaticallyGameCell.REUSE_IDENTIFIER)
-        collectionView.register(XibGameCell.self, forCellWithReuseIdentifier: XibGameCell.REUSE_IDENTIFIER)
+        collectionView.register(UINib(nibName: className(XibGameCell.self), bundle: nil), forCellWithReuseIdentifier: XibGameCell.REUSE_IDENTIFIER)
     }
 
     override func viewDidAppear(_ animated: Bool) {

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        // This will: (1) dequeue the cell, if it doesn't exist it will create one. (2) will cast it to our custom cell. (3) will assert that the casting is legal.
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: StoryboardGameCell.REUSE_IDENTIFIER, for: indexPath) as! GameCell

        cell.configCell()



    var playerMarkLabel: UILabel!

    override func awakeFromNib() {
        📘("Created a \(className(self.classForCoder)) object")
    }
    
    func configCell() {
        self.backgroundColor = UIColor.red
        self.playerMarkLabel.text = ""
