       return;
     }
 
-    players[active_player]->clock->update();
-    players[active_player]->update_display();
+    players[active_player]->tick();
   }
 
   if ((active_player == NONE || Button::button_pressed == active_player) && Button::button_pressed != NONE)   {


  Button(int interrupt_number, void (*interrupt_handler)()) {
    attachInterrupt(interrupt_number, interrupt_handler, RISING);
  }
};
volatile int Button::button_pressed = NONE;

inline void handle_button_interrupt(int button) {
  Button::button_pressed = button;
}

void handle_button_interrupt_0() {
  handle_button_interrupt(0);
}
void handle_button_interrupt_1() {
  handle_button_interrupt(1);
}

class Screen {


  for(unsigned int i = 0; i < sizeof(players) / sizeof(players[0]); i++) {
    players[i]->init();
    players[i]->clock->start();
    players[i]->update_display();
  }

