(Resolved) Continue running one part of code while still checking other inputs?

Do you really need an interupt?

#include "Led.h"
#include "constants.h"
#include <WProgram.h>

Led::Led(unsigned char pin, unsigned char initialState, unsigned short fi, unsigned short si)
{
  this->pin = pin;
  mode = initialState;
  pinMode(pin, OUTPUT);

  fastInt = fi;
  slowInt = si;

  update();
}

Led::~Led(){}

void Led::setFastInterval(unsigned short fi)
{
  fastInt = fi;
}

void Led::setSlowInterval(unsigned short si)
{
  slowInt = si;
}  

void Led::slow()
{
  mode = LED_SLOW_BLINK;
  update();
}

void Led::fast()
{
  mode = LED_FAST_BLINK;
  update();
}

void Led::on()
{
  mode = LED_ON;
  update();
}

void Led::off()
{
  mode = LED_OFF;
  update();
}    

void Led::reverse(void)
{
  if(mode != LED_ON && mode != LED_OFF)
  {
    mode = LED_ON;
  }

  if(mode == LED_ON)
  {
    mode = LED_OFF;
  }
  else
  {
    mode = LED_ON;
  }
  
  update();
  
}


void Led::update(void)
{
  short interval = 0;
    
  if(mode == LED_ON)
  {
    state = LED_ON;
  }

  if(mode == LED_OFF)
  {
    state = LED_OFF;
  }
  
  if(mode == LED_FAST_BLINK)
  {
    interval = fastInt;    
  }

  if(mode == LED_SLOW_BLINK)
  {
    interval = slowInt;
  }

  if(mode == LED_SLOW_BLINK || mode == LED_FAST_BLINK)
  {

    if(millis() - lastMs > interval)
    {
      // save the last time you blinked the LED 
      lastMs = millis();   

      // if the LED is off turn it on and vice-versa:
      if(state == LED_ON)
      {
        state = LED_OFF;
      }  
      else
      {
        state = LED_ON;
      }
    }  
  }

  if(state == LED_ON)
  {
    digitalWrite(pin, LOW);
  }

  if(state == LED_OFF)
  {
    digitalWrite(pin, HIGH);   
  }
}
// Led.h

#ifndef LED_H
#define LED_H

#include "constants.h"

class Led
{
  public:

  Led(unsigned char pin, unsigned char initialState = LED_OFF, unsigned short fi = 100, unsigned short si = 750);
  ~Led(void);
  
  void setFastInterval(unsigned short fi);
  void setSlowInterval(unsigned short si);
  void slow(void);
  void fast(void);
  void on(void);
  void off(void);
  void reverse(void);

  void update(void);

  private:
  
  unsigned char pin;
  unsigned long lastMs;
  unsigned char mode;
  unsigned char state;
  unsigned short millDiff;
  
  unsigned short fastInt;
  unsigned short slowInt;
};

#endif