   serprintf("Initializing...");
 
   for(unsigned int i = 0; i < sizeof(players) / sizeof(players[0]); i++) {
-    init_display(&players[i]);
+    init_player(&players[i]);
     update_display(&players[i]);
     attachInterrupt(players[i].button->interrupt_number, players[i].button->interrupt_handler, RISING);
   }

};

typedef struct {
  long time_remaining_ms;
  long last_update_ms;
  char display_time[12];
  int display_width_chars;
  Button *button;
  Screen *screen;
} Player;

Player players[2] = { 
  {
    .time_remaining_ms = INITIAL_TIME_MS,
    .last_update_ms = 0,
    .display_time = {},
    .display_width_chars = 0,
    .button = &buttons[0],
    .screen = &screens[0]
  },
  {
    .time_remaining_ms = INITIAL_TIME_MS,
    .last_update_ms = 0,
    .display_time = {},
    .display_width_chars = 0,
    .button = &buttons[1],
    .screen = &screens[1]
  }
};

void init_display(Player *p) {
  Screen *screen = p->screen;
  screen->tft = new TFT(screen->cs_pin, screen->dc_pin, screen->rst_pin);
  screen->tft->begin();


void update_display(Player *p) {
  static char timea[12];
  ltoa(p->clock->time_remaining_ms/100, timea, 10);
  update_changed_chars(p, timea);
}

