         var verticalSequenceCounter = Array<Int>(count: Configuration.MaxMovesInSequence, repeatedValue: 0)
 //      Or: var verticalSequenceCounter = [0,0,0]
         for row in 0...Configuration.RowsCount - 1 {
+            // Using 'guard' keyword for optimization in runtime, skips redundant loops
             guard winner == nil else { return winner }
 
             // Count \

    
    func playerMadeMove(row: Int, column: Int) -> Bool {
        var didPlay = false
        guard isGameEnabled && matrix[row][column] == nil else { return didPlay }

        matrix[row][column] = currentPlayer.intValue()


    // Computed property
    private var isGameEnabled: Bool {
        // Using 'guard' keyword to ensure that the delegate exists (not null):
        guard let delegate = delegate else { return false }
        // If exists: Make a new (and not optional!) object and continue
        // If it doesn't exist: do nothing and return 'false'

        return delegate.isGameEnabled(self)
    }

