Proyecto Multipulsador y Led

Hola!
estoy intentando hacer una configuracion que veo algo compleja.
La primera idea es:
3 pulsadores, 1 Led azul y un Led rojo
Si se pulsa una vez el pulsador 1 se enciende el led azul en modo fijo
Si se pulsa una vez el pulsador 2 se enciende el led azul en parpadeo.
y el 3º pulsador seria para encender y apagar el led rojo

tengo este codigo para el 3º caso, para el Led rojo

int pulsador1 = 7;
int led = 16;
int estado= LOW;

void setup(){
pinMode(pulsador1, INPUT);
pinMode(led, OUTPUT);
digitalWrite(led, HIGH);
}
void loop(){
while(digitalRead(pulsador1)==LOW);
estado = digitalRead(led);
digitalWrite(led, !estado);
while(digitalRead(pulsador1)==HIGH);

}

pero el otro caso me parece un poco complicado de hacer, se me ha ocurrido otro caso mas facil
con 2 Pulsadores y 2 LED, uno rojo y otro azul
1º Pulsador cambiar entre Led azul encendido o parpadeando
2º Pulsador cambiar entre Led rojo encendido o apagado.
y regular el encendido completo con un interruptor directamente desde la alimentacion.

he trasteado algo con los Millis, pero no se como hacerlo todo en un mismo codigo, y hacer las "subrutinas" con los pulsadores.

algun consejo?