<s>[INST] Here is a simple Python class for a board game, with classes for `Player` and `Game`:
```python
class Player:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return self.name


class Game:
    def __init__(self, num_players):
        self.players = [Player("Player %d" % i) for i in range(num_players)]
        self.current_player = 0

    def next_player(self):
        self.current_player = (self.current_player + 1) % len(self.players)

    def get_current_player(self):
        return self.players[self.current_player]

    __str__ = lambda self: ', '.join([str(p) for p in self.players])
```
Can you review this code and give me some feedback on best practices, generality and any suggestions for improvements?[/INST]