 	pinMode(CFG::RPIN, OUTPUT);
 	pinMode(CFG::GPIN, OUTPUT);
 	pinMode(CFG::BPIN, OUTPUT);
+	//setup the button pins with internal pullup enables to make wiring slightly easier
+	pinMode(CFG::BTN1, INPUT_PULLUP);
+	pinMode(CFG::BTN2, INPUT_PULLUP);
 	//set pins as with high or low depending of whether or not they are sourcing current
 	digitalWrite(CFG::RPIN, CFG::MODE);
 	digitalWrite(CFG::GPIN, CFG::MODE);
 	digitalWrite(CFG::BPIN, CFG::MODE);
 	//init other stuff
+	randomSeed(CFG::RANDPIN);//setup randomness
 	Moody::anim_init();
 	//setup serial if we need to do debugging printing
 	#ifdef DEBUGGING

		if (len == 1) //if there is only one color abort
			return *(clist);
		if (activeMode->random) {//check if the next color should be random or not
			return *(clist + (getRand() % (len-1)));//get random number, and limit it with modulo length - 1 to keep it in bounds
		} 
		else //simply go to the next color if random is turned off
			if (++currentColor >= len) {//increment the color index and check if it is out of bounds

	}
	int getRand () {
		//return a random number
		// return analogRead(CFG::RANDPIN);//analog pin 'static' method of getting a random number
		return random(1024);
	}
	void setOutputColor(RGB color) {
		//set the input color as the pwm output color
