 */
 void beaconFill(NSFastLED::CHSV color); //This function fills the beacon with various colors based on the input beacon color calculated
 void beaconSpin(); //This function spins the beacon colors
-
+void ColorUpdate(const char *name, const char *data);
+
+/*
+__________________________Timer Declarations__________________________
+*/
+Timer decayTimer(decayRate, colorDecay);
+Timer spinTimer (spinRate, beaconSpin);
 /*
 __________________________The Big Show__________________________
 */
 void setup() {
     pinMode(button, INPUT_PULLDOWN); //Push button (for now... muhaahahaha)
 	delay(3000); // 3 second delay for recovery
-    Particle.subscribe("Beacon Update", ColorUpdate, MY_DEVICES); //Subscribe to the updates
+    Particle.subscribe("Beacon_Update",ColorUpdate); //Subscribe to the updates
 
   	FastLED.addLeds<NEOPIXEL, RING_PIN>(ringLeds, RING_LEDS); //initalize the ring
 	FastLED.addLeds<NEOPIXEL, STRIP_PIN>(stripLeds, STRIP_LEDS); //initialize the strip

	beaconColor = color; //assign the final color to beacon
	beaconFill(color); //fill the beacon accordingly
	
	char publishString [64];
	sprintf(publishString, "%u~%u~%u",beaconColor.hue,beaconColor.saturation,beaconColor.value);
    Spark.publish("Beacon Update", String(selfName) + "~" + publishString); //Publish the beacon color to the cloud
}



	    }
	    ringLeds[RING_LEDS - 1] = tempColor;
	    FastLED.show();
	    delay(50); //slow the spin a bit
	}
  	// set master brightness control
  	FastLED.setBrightness(brightness);
  	decayTimer.start();
  	spinTimer.start();
}

void loop()
