   if (strcmp(p_menu_component->get_name(), "Light") == 0) {
     Serial.println("Setting to Light");
     currentActivity = &blinkActivity;
-    currentActivity->begin();
   } else if (strcmp(p_menu_component->get_name(), "Sound") == 0) {
     Serial.println("Setting to Null");
     currentActivity = &nullActivity;
-    currentActivity->begin();
   } else {
     Serial.println("UNKNOWN ACTIVITY");
   }
 
-  sprintf(messageBuffer,"nullActivity is %p  blinkActivity '%s' is %p current is %p", 
-  &nullActivity, 
-  blinkActivity.getName(), 
-  &blinkActivity, 
-  currentActivity);
+  sprintf(messageBuffer, "nullActivity is %p  blinkActivity '%s' is %p current is %p",
+          &nullActivity,
+          blinkActivity.getName(),
+          &blinkActivity,
+          currentActivity);
   Serial.println(messageBuffer);
 
   Serial.print(" Blink activity is ");

  mmSetupMenu.add_item(&setupDebugOff);

  currentActivity = &blinkActivity;


  Serial.println("Starting");
  //Serial.print("Debug is ");

// TO DO make virtual?
class Activity {
  protected:
    unsigned long currTime = 0;      // Current time in millis, updated every call to update()
    unsigned long lastUpdateTime = 0; // Last time the update ran
    unsigned long interval = 0;      // How many millis between updates
    char* name;                      // Name of the activity
  public:
    Activity(char* name, unsigned long interval) {
      this->name = name;
      this->interval = interval;
    }

    virtual void update() {
    }

    char* getName() {
      return name;
    }

    boolean isTimeToUpdate() {
      currTime = millis();
      sprintf(messageBuffer, "Update? %lu %lu %lu", currTime, lastUpdateTime, interval);
      Serial.println(messageBuffer);
      if ((lastUpdateTime == 0) || (currTime - lastUpdateTime > interval) ) {
        lastUpdateTime = currTime;
        return true;
      } else {
        return false;
      }
    }

};

class NullActivity : public Activity {
  private:
  public:
  NullActivity() : Activity("NullActivity", 1000) {
    }
    
    void update() {
      Activity::update();
      debug("NulllActivity updates");
    }
};

class BlinkActivity : public Activity {
  private:
    boolean isLightOn = false;
  public:
    BlinkActivity() : Activity("BlinkActivity", 2000) {
    }
    
    void update() {
      debug("LightActivity updating?");
      if (isTimeToUpdate()) {
