 
   EVERY_N_MILLISECONDS_I(thisTimer, 50) {
     thisTimer.setPeriod(map(analogRead(RATE_POT), 0, 1253, 10, 200));
-    lead = (lead+1)%numLED;
-  }
+    lead = (lead + 1) % numLED;
+  }
+
+
+
+  if (fill) {
+    //fill_solid(leds, lead, ColorFromPalette(gPalette, pal_index, gBrightness, gBlending));
+    fill_solid(leds, lead, CRGB::Red);
+  }
+  else {
+    fill_solid(leds, lead, CRGB::Black);
+  }
+  FastLED.show();
 
   // Switch fill flag if we are done filling. If we are done emptying, switch
-  // the flag and also grab the next color in the palette.
-  if(lead == 0) {
+  // the flag and also grab the next color in the palette. Try this in here
+  // to see if it fixes the issue of missing the switch at 0
+  if (lead == numLED - 1) {
     if (fill) {
       fill = false;
     }


  // Select animation to run based on global counter
  /*if (!dj_control) {
    switch( gAnimCounter ) {     
      case 0:
        theater_chase();
        break;

  // so that we can check which diretion we are heading on the sin wave later on
  EVERY_N_MILLISECONDS_I(thisTimer, 50) {
    thisTimer.setPeriod(map(analogRead(RATE_POT), 0, 1253, 10, 200));
    lead = (lead + 1) % (2 * lead_max);
  }

  // If the eq bar is about to be empty, generate a new max length to fill.
  // Also increment the index of the palette, for a little more modulation cuz
  // why not.
  if (lead == 0) {
    pal_index += 16;
    lead_max = random8(numLED / 3, numLED);
  }

  // Fill the the bar until we get to lead_max, then work our way back down. This doesn't use
