 //		strip[i] = CRGB::Black;
 //	}
 //	FastLED.show();
-//	delay(200);
-
-	halfTopBottom(true, 25, CRGB::Amethyst, CRGB::DarkRed);
+
+	colorCounter = random8();
 	for (int i = 0; i < NUM_LED; i++) {
+		strip[i].setHue(colorCounter);
+	}
+	FastLED.show();
+	meteorChaser(true, 14, 20, 160, true);
+	for (int i = 0; i < 500; i++) {
 		shift(true);
 		FastLED.show();
-		Serial.println("Did done it");
-	}
-	delay(100);
-	halfTopBottom(true, 25, CRGB::SpringGreen, CRGB::LightSalmon);
+		delay(20);
+	}
+
+	wipeRainbow(25);
+	halfTopBottom(true, 23, strip[15], strip[45]);
 	for (int i = 0; i < NUM_LED; i++) {
 		shift(false);
-	}
-
-//	halfTopBottom(true, 30, CRGB::DarkRed, CRGB::Amethyst);
-//	delay(100);
-//	fill_solid( &(leds[i]), NUM_LED , CRGB::Black);
-//	delay(100);
-
-//	colorCounter = 0;
-//	wipeRainbow(25);
-//	while (delMe < 750) {
-//		rainbowShift(10, false, colorCounter);
-//		delMe++;
-//	}
-//
-//	colorCounter = random8();
-//	chasingInfinity(true, 10);
-//	chasingInfinity(true, 20);
-//	chasingFromSides(false, 45);
-//	chasingInfinity(true, 50);
-//	chasingFromSides(false, 30);
-//	chasingInfinity(false, 10);
-//	chasingInfinity(false, 20);
-//	chasingInfinity(false, 50);
-//	doubleSymmetricalFlipFlow(30);
-//	chasingFromSides(false, 30);
-//	doubleSymmetricalFlipFlow(15);
-//	chasingFromSides(false, 30);
-//	doubleSymmetricalFlipFlow(15);
-//	doubleSymmetricalFlipFlow(30);
-//	doubleSymmetricalFlipFlow(30);
-//	doubleSymmetricalFlipFlow(15);
+		FastLED.show();
+		delay(20);
+	}
+
+	chasingInfinity(true, 10);
+	chasingInfinity(true, 20);
+	chasingFromSides(false, 45);
+	chasingInfinity(true, 50);
+	chasingFromSides(false, 30);
+	chasingInfinity(false, 10);
+	chasingInfinity(false, 20);
+	chasingInfinity(false, 50);
+	doubleSymmetricalFlipFlow(30);
+	chasingFromSides(false, 30);
+	doubleSymmetricalFlipFlow(15);
+	chasingFromSides(false, 30);
+	doubleSymmetricalFlipFlow(15);
+	doubleSymmetricalFlipFlow(30);
+	doubleSymmetricalFlipFlow(30);
+	doubleSymmetricalFlipFlow(15);
+	checkColorCounter(colorCounter, true);
+
+	wipeRainbow(25);
+	while (delMe < 750) {
+		rainbowShift(10, false, colorCounter);
+		delMe++;
+	}
 }
 
 void wipeRainbow(int delayTime) {

}

//TODO: Impletment fadeValue
void meteorChaser(bool animate, uint8_t tailLength, uint16_t meteorBodyPixel, uint8_t fadeValue,
		bool shitRandomColorsSometimes) {
	uint16_t i;
	fadeValue = 0;
	for (i = meteorBodyPixel; i > meteorBodyPixel - tailLength; i--) {
		strip[i].setHue(random8());
		strip[i].fadeLightBy(fadeValue);
		if(animate == true) {
			FastLED.show();
		}
	}
}

//Check out the  memmove function to maybe do it more quickly
void shift(bool changeDirection) {
	uint32_t wrapAroundPixel;
	if (changeDirection == true) {
		wrapAroundPixel = strip[NUM_LED - 1];
		for (int i = NUM_LED - 1; i > 0; i++) {
			strip[i] = strip[i - 1];
		}
		strip[0] = wrapAroundPixel;

float r, g, b;

void setup() {
//	Serial.begin(9600);

//Initialize FastLED for the infinity symbol strip
	FastLED.addLeds<NEOPIXEL, PIN>(strip, NUM_LED);
