     static State returnToState;
     static boolean isFirstRun = true;
     static int numCoinsMined = 0;
-    static boolean weKnowWhereWeAre = true;
-    static int startTime;
+    static unsigned long startTime;
+    static int numResetEndTimer = 0;
    // static int targetCoins;
 
     // Always do

        }

        // if 15 seconds left on the timer, dump everything in 8
        if(millis() > 105*ONE_SEC) {
            currState = BACKING_UP;
            returnToState = SEEKING_EXCHANGE;
            Backup(2, BACKWARD);

        sideServerBeacon.Clear();
        sideExchangeBeacon.Clear();
        TMRArd_InitTimer(CLEAR_BEACON_TIMER, BEACON_CLEAR_PERIOD);
    }
    
    if (TMRArd_IsTimerExpired(ENDGAME_TIMER))
    {
        if(numResetEndTimer == 3) {
          currState = WAITING_TO_END;
          turntable.Stop();
          drivetrain.Stop();
          presser.Rest();
        } else {
          TMRArd_InitTimer(ENDGAME_TIMER, (unsigned long)(30 * ONE_SEC));   
          numResetEndTimer++;
        }
    }

    // State dependent
