       // step_period is reset inside step_led();
       step_led();
     }*/
-    draw_walker(seconds_left--);
+    draw_walker(decaseconds_left--);
   }
   /*
   if(millis()-prevCounterTime >= 500){

  
  LEDS.show();
  Serial.begin(57600);
  
  seed_walker(1);
}


uint16_t seconds_left = TOTAL_SECONDS;


unsigned long prevStepTime = 0;

}

#define UPDATE_TIME 20
#define WALKER_TIMESTEP 25
uint16_t step_period = 1;
uint8_t leds_index = 0;
uint8_t colour_counter=0; //keep track of the remaining colours in led (100-leds_left)
uint8_t step_counter=0; //keep track of the remaining steps of the currently-moving colour

const CRGB moving_colours[] = {CRGB::Blue, CRGB::Green, CRGB::Red};

#define TOTAL_SECONDS ((uint16_t)(90*60))
#define SECONDS_PER_LED ((uint16_t)TOTAL_SECONDS/NUM_LEDS)
#define SECONDS_PER_COLOUR ((uint16_t) SECONDS_PER_LED/3)
#define DECASECONDS_PER_LED (10*SECONDS_PER_LED)
#define DECASECONDS_PER_COLOUR (10*SECONDS_PER_COLOUR)

void draw_walker(uint16_t decasecs){
  // Draw the complete walker for the current amount of seconds left
  
  // 1: determine the led that is currently 'walking out'
  //    Since each led should take equal time to walk out, this is simply 100*s/T
  uint8_t current_led = 100-(decasecs / DECASECONDS_PER_LED);
  // 2: determine which of the three colours is moving out
  uint8_t decasecs_in_led = DECASECONDS_PER_LED - decasecs % DECASECONDS_PER_LED;
  uint8_t current_colour = ((uint16_t) decasecs_in_led * 3) / DECASECONDS_PER_LED;
  // 3: determine the position of the current colour
  uint8_t current_pos = current_led-1 - ((decasecs_in_led % DECASECONDS_PER_COLOUR) * current_led) / DECASECONDS_PER_COLOUR;
  
  // The following happens at the very end of the last led
  if(current_colour==3){
