 
   Serial << F("Setting up menu...") << endl;
 
-  _menu *r, *s1, *s11, *s12, *s13, *s14, *s15, *s2, *s21, *s22, *s3;
+  _menu *r, *s1, *s11, *s12, *s13, *s14, *s15, *s2, *s21, *s22, *s23, *s24, *s25, *s3;
 
   menu.begin(&lcd, 16, 2); //declare lcd object and screen size to menwiz lib
 
   r = menu.addMenu(MW_ROOT, NULL, F("Main Menu"));
+  
   s1 = menu.addMenu(MW_SUBMENU, r, F("Config"));
-    s11 = menu.addMenu(MW_VAR, s1, F("Light Index"));
+    s11 = menu.addMenu(MW_VAR, s1, F("TowerLights"));
       s11->addVar(MW_LIST, &towerLightIndex);
-      s11->addItem(MW_LIST, F("Individual"));
-      s11->addItem(MW_LIST, F("All"));
-      s11->setBehaviour(MW_SCROLL_HORIZONTAL, true);
-  
-    s12 = menu.addMenu(MW_VAR, s1, F("Fire Index"));
+      s11->addItem(MW_LIST, F("Each2Own"));
+      s11->addItem(MW_LIST, F("AllIn"));  
+    s12 = menu.addMenu(MW_VAR, s1, F("TowerFire"));
       s12->addVar(MW_LIST, &towerFireIndex);
-      s12->addItem(MW_LIST, F("Individual"));
-      s12->addItem(MW_LIST, F("All"));
-      s12->setBehaviour(MW_SCROLL_HORIZONTAL, true);
-    s13 = menu.addMenu(MW_VAR, s1, F("Fire Time Min"));
+      s12->addItem(MW_LIST, F("Each2Own"));
+      s12->addItem(MW_LIST, F("AllIn"));
+    s13 = menu.addMenu(MW_VAR, s1, F("FireTimeMax"));
       s13->addVar(MW_AUTO_INT, &towerFireMin, FIRE_MIN, FIRE_MAX, FIRE_STEP);
-    s14 = menu.addMenu(MW_VAR, s1, F("Fire Time Min"));
-      s14->addVar(MW_AUTO_INT, &towerFireMax, FIRE_MIN, FIRE_MAX, FIRE_STEP);
-    s15 = menu.addMenu(MW_VAR, s1, F("Send Configuration"));
+    s14 = menu.addMenu(MW_VAR, s1, F("FireTimeMin"));
+      s14->addVar(MW_AUTO_INT, &towerFireMax, FIRE_MIN, FIRE_MAX, FIRE_STEP*10);
+    s15 = menu.addMenu(MW_VAR, s1, F("!!!Send!!!"));
       s15->addVar(MW_ACTION, configSend);
 
   s2 = menu.addMenu(MW_SUBMENU, r, F("Control"));
-    s21 = menu.addMenu(MW_VAR, s2, F("Control Index"));
-      s21->addVar(MW_LIST, &controlIndex);
-      s21->addItem(MW_LIST, F("Red"));
-      s21->addItem(MW_LIST, F("Green"));
-      s21->addItem(MW_LIST, F("Blue"));
-      s21->addItem(MW_LIST, F("Yellow"));
-      s21->addItem(MW_LIST, F("All"));
-      s21->setBehaviour(MW_SCROLL_HORIZONTAL, true);
-
-    s22 = menu.addMenu(MW_VAR, s2, F("Send Control"));
-      s22->addVar(MW_ACTION, controlSend);
- 
+    s24 = menu.addMenu(MW_VAR, s2, F("LightSet"));
+      s24->addVar(MW_AUTO_INT, &testLightLevel, LEVEL_MIN, LEVEL_MAX, LEVEL_STEP);
+    s25 = menu.addMenu(MW_VAR, s2, F("FireSet"));
+      s25->addVar(MW_AUTO_INT, &testFireLevel, LEVEL_MIN, LEVEL_MAX, LEVEL_STEP);
+    s21 = menu.addMenu(MW_VAR, s2, F("Light Test"));
+      s21->addVar(MW_ACTION, lightTest);
+      s21->setBehaviour(MW_ACTION_CONFIRM, false); // just do it.
+    s22 = menu.addMenu(MW_VAR, s2, F("Sound Test"));
+      s22->addVar(MW_ACTION, soundTest);
+      s22->setBehaviour(MW_ACTION_CONFIRM, false); // just do it.
+    s23 = menu.addMenu(MW_VAR, s2, F("Fire Test"));
+      s23->addVar(MW_ACTION, fireTest);
+      s23->setBehaviour(MW_ACTION_CONFIRM, true);  // yeah.
+       
   s3 = menu.addMenu(MW_VAR, r, F("Save Settings"));
     s3->addVar(MW_ACTION, saveSettings);
 

void printInstruction() {
  static char buf[3];

  menu.sbuf = ""; // 1st row
  strcat(menu.sbuf, "R");
  strcat(menu.sbuf, itoa(tInst.lightLevel[I_RED], buf, 10));
  strcat(menu.sbuf, itoa(tInst.fireLevel[I_RED], buf, 10));
  strcat(menu.sbuf, " G");
  strcat(menu.sbuf, itoa(tInst.lightLevel[I_GRN], buf, 10));
  strcat(menu.sbuf, itoa(tInst.fireLevel[I_GRN], buf, 10));

  strcat(menu.sbuf, "\n"); // 2nd row

  strcat(menu.sbuf, "B");
  strcat(menu.sbuf, itoa(tInst.lightLevel[I_BLU], buf, 10));
  strcat(menu.sbuf, itoa(tInst.fireLevel[I_BLU], buf, 10));
  strcat(menu.sbuf, " Y");
  strcat(menu.sbuf, itoa(tInst.lightLevel[I_YEL], buf, 10));
  strcat(menu.sbuf, itoa(tInst.fireLevel[I_YEL], buf, 10));

  menu.drawUsrScreen(menu.sbuf);
}

void configSend() {

// include the library code:
#include <Streaming.h> // <<-style printing
#include <Metro.h> // timers

// the glue
#include <Simon_Common.h> // sizes, indexing and comms common to Towers and Console

// radio
#include <SPI.h> // radio board is a SPI device
#include <avr/eeprom.h> // eeprom block r/w
#include <RFM69.h> // RFM12b radio transmitter module

// LCD
#include <Wire.h>
#include <Adafruit_MCP23017.h>
#include <Adafruit_RGBLCDShield.h>
#include <EEPROM.h> // saving and loading radio and menu settings
#include <MENWIZ.h>

// this is where the lights and fire instructions from Console are placed
