<s>[INST] import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock()
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    screen.fill((0, 0, 0))
    pygame.display.flip()
    clock.tick(60)
pygame.quit()

This is a basic Pygame program that creates a black window. What would be the best way to structure your code to make it easy to implement new features and be able to maintain it in the future.

Here is the a simple way to structure it:

# game.py
import pygame
pygame.init()

class Game:
    def __init__(self):
        self.screen = pygame.display.set_mode((800, 600))
        self.clock = pygame.time.Clock()
        self.running = True

    def run(self):
        while self.running:
            self.handle_events()
            self.update()
            self.render()

    def handle_events(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                self.running = False

    def update(self):
        pass

    def render(self):
        self.screen.fill((0, 0, 0))
        pygame.display.flip()

    def cleanup(self):
        pygame.quit()

if __name__ == "__main__":
    game = Game()
    game.run()
    game.cleanup()

This is a very simple structure but it's much cleaner and easier to add new features. What else can be done to improve this structure?[/INST]