 //      serprintf("mode button, _in_ SET_TIME, button_pressed is %d held for %lu and previous %lu\r\n", button_pressed, mode_button_held, mode_button_previous_hold_time_ms);
       // we don't want to be in here because we changed state but the button is still pressed
 
-      //if (mode_button_held > 0 && !button_pressed && mode_button_last_pressed_at_ms != state->pressed_at) {
       if ((mode_button_held < mode_button_previous_hold_time_ms) && !button_pressed) {
-      //if (mode_button_held > 0 && !button_pressed && mode_button_last_pressed_state) {
-      
-      //if (mode_button_held > 0 && !button_pressed) {
         serprintf("reset button was held for %lu and is pressed: %d\r\n", state->press_duration_ms, state->pressed);
         // move to the next clock to set or exit
         serprintf("in handle_mode_button, calling set_time_next_step\r\n");

    if (game_state == PRE_GAME) return;
    serprintf("Controller reset...\r\n");
    game_state = PRE_GAME;

    for(unsigned int i = 0; i < NUM_PLAYERS; i++) {
      serprintf("player %d clock...\r\n", i);


    switch (game_state) {
      case INIT:
        return;
        break;
      case PRE_GAME:
        handle_pre_game_player_buttons();
        break;
      case IN_PROGRESS:
        handle_in_progress_player_buttons();
        if (players[active_player]->out_of_time()) {
          players[active_player]->flag();
          break;
        } 
        players[active_player]->tick();
        break;
      case SET_TIME:
      case SET_TIME_CLOCK_1:
      case SET_TIME_CLOCK_2:
        handle_set_time_player_buttons();
        break;
      case PAUSED:
        handle_paused_player_buttons();
        break;
      default:
        serprintf("Should not get here; default case of controller tick switch!\r\n");
        break;
    }
    handle_mode_button();
/*
    if (interrupt_fired != NONE) {
      // Someone pressed a button since the last time we checked.
