   push_color(random_color());
 }
 
+int do_mirror(){
+  for(int i = 0; i < LED_COUNT / 2; i++){
+    colors[LED_COUNT - i - 1] = colors[i];
+    effects[LED_COUNT - i - 1] = effects[i];
+  }
+}
+
 void setup_buffer(){
   for(int i = 0; i < LED_COUNT; i++){
-    if(states[i] == BLINK_ON){
+    if(effects[i] == BLINK_ON){
       if(blink_state){
         render[i] = scale_color(colors[i], DEFAULT_BRIGHTNESS_SCALE); 
       } else {
         render[i] = scale_color(colors[i], MINIMUM_BRIGHTNESS_SCALE);
       }
-    } else if(states[i] == BREATHE_ON){
+    } else if(effects[i] == BLINK_ON_1){
+      if(blink_state_1){
+        render[i] = scale_color(colors[i], DEFAULT_BRIGHTNESS_SCALE); 
+      } else {
+        render[i] = scale_color(colors[i], MINIMUM_BRIGHTNESS_SCALE);
+      }
+    } else if(effects[i] == BLINK_ON_2){
+      if(blink_state_2){
+        render[i] = scale_color(colors[i], DEFAULT_BRIGHTNESS_SCALE); 
+      } else {
+        render[i] = scale_color(colors[i], MINIMUM_BRIGHTNESS_SCALE);
+      }
+    } else if(effects[i] == BLINK_ON_3){
+      if(blink_state_3){
+        render[i] = scale_color(colors[i], DEFAULT_BRIGHTNESS_SCALE); 
+      } else {
+        render[i] = scale_color(colors[i], MINIMUM_BRIGHTNESS_SCALE);
+      }
+    } else if(effects[i] == BLINK_ON_4){
+      if(blink_state_4){
+        render[i] = scale_color(colors[i], DEFAULT_BRIGHTNESS_SCALE); 
+      } else {
+        render[i] = scale_color(colors[i], MINIMUM_BRIGHTNESS_SCALE);
+      }
+    } else if(effects[i] == BLINK_ON_5){
+      if(blink_state_5){
+        render[i] = scale_color(colors[i], DEFAULT_BRIGHTNESS_SCALE); 
+      } else {
+        render[i] = scale_color(colors[i], MINIMUM_BRIGHTNESS_SCALE);
+      }
+    } else if(effects[i] == BLINK_ON_6){
+      if(blink_state_6){
+        render[i] = scale_color(colors[i], DEFAULT_BRIGHTNESS_SCALE); 
+      } else {
+        render[i] = scale_color(colors[i], MINIMUM_BRIGHTNESS_SCALE);
+      }
+    } else if(effects[i] == BREATHE_ON){
       render[i] = scale_color(colors[i], DEFAULT_BRIGHTNESS_SCALE * breathe_steps[BREATHE_MAX_STEP - breathe_step]);
+    } else if(effects[i] == STATIC_ON){
+      render[i] = random_color();
     } else {
       render[i] = scale_color(colors[i], DEFAULT_BRIGHTNESS_SCALE);
     }

    else if(is_command(str, "seafoam"))  push_color(seafoam);
    else if(is_command(str, "ltblue"))   push_color(ltblue);
    else if(is_command(str, "dkgray"))   push_color(dkgray);
    
  } else {
    bool should_flush = false;
    
    blink_counter = (blink_counter + 1) % MAX_BLINK;
    if(blink_counter == 0){
      if(blink_state){
        blink_state = false;
      } else {

};

void start_breathing(){
  effects[0] = BREATHE_ON;
}

void start_static(){
  effects[0] = STATIC_ON;
}

rgb_color blend_colors(rgb_color color1, rgb_color color2){
