Step 0: Implementing the basic structure of the project Step 1: Creating the main Window Step 2: Implementing the core.event_holder class Step 3: Implementing the basic behaviour of core.game class Step 4: Implementing the core.grid_system class Step 5: Adding render_cells method to GridSystem Step 6: Implementing the core.snake class Step 7: Creating a pg.time.Clock object and controlling the fps Step 8: Adding movement functionality to Snake Step 9: Adding movement key listeners to Snake.check_events Step 10: Adding tempo control to Snake Step 11: Overall visual improvement