Multiple blinking LEDs

I reviewed your suggestion (gammom blink) and rewrote code using millis function. Code below. However I am missing something. LED red, green are two LEDs, LED2 is a bi-color red/green LED. Using the code, LED2 goes red/green as expected. The LEDs red comes on, goes off and green comes on, then both come on and then are off for a second and the cycle repeats (red,green both,off) What am missing?

I am using this as an example for something in the future.

Thanks for your help.

//sketch_blink_2_sets_LEDs
//Blink 2 set of LEDs at different rates
//gammon.com.au/blink

const int redledPin = 12;              //red led pin
const int greenledPin = 13;            //green led pin
const int redled2Pin = 11;             //red led 2 pin
const int greenled2Pin = 10;           //green led 2 pin
//const int redbutton = 2;               // 5v red input
//const int greenbutton = 3;             // 5v green input
//const int redbutton2 = 4;               // 5v red input 2
//const int greenbutton2 = 5;            // 5v green input 2

//time peroid of blink
const unsigned long redledPininterval = 1000;
const unsigned long greenledPininterval = 2000;
const unsigned long redled2Pininterval = 5000;
const unsigned long greenled2Pininterval = 000;

//variablle holding the timer value

unsigned long redledPintimer;
unsigned long greenledPintimer;
unsigned long redled2Pintimer;
unsigned long greenled2Pintimer;

void setup() {
 pinMode (redledPin, OUTPUT);
 pinMode (greenledPin, OUTPUT);
 pinMode (redled2Pin, OUTPUT);
 pinMode (greenled2Pin, OUTPUT);
 
 redledPintimer = millis ();
 greenledPintimer = millis ();
 redled2Pintimer = millis ();
 greenled2Pintimer = millis ();
}

 void toggleredledPin ()
 {
  if (digitalRead (redledPin) == LOW)
     digitalWrite (redledPin, HIGH);
  else
     digitalWrite (redledPin, LOW);

     redledPintimer = millis ();
 }

 void togglegreenledPin () {
  if (digitalRead (greenledPin) == LOW)
    digitalWrite (greenledPin, HIGH);
    else
    digitalWrite (greenledPin, LOW);

       greenledPintimer = millis ();
 }
 
void toggleredled2Pin ()
{
  if (digitalRead (redled2Pin) == LOW)
     digitalWrite (redled2Pin, HIGH);
  else
     digitalWrite (redled2Pin, LOW);

     redled2Pintimer = millis ();
 }

 void togglegreenled2Pin ()
 {
 if (digitalRead (greenled2Pin) == LOW)
       digitalWrite (greenled2Pin, HIGH);
 else
    digitalWrite (greenled2Pin, LOW);

    greenled2Pintimer = millis ();
   
 }

 void toggledredled2Pin ()
 {
  if (digitalRead (redled2Pin) == LOW)
       digitalWrite (redled2Pin, HIGH);
       else
       digitalWrite (redled2Pin, LOW);

       redled2Pintimer = millis ();
 }
  void loop ()     
  {     
  if ( (millis() - greenledPintimer) >= greenledPininterval)  //handling the blink of green led
  togglegreenledPin ();

  if ( (millis () - redledPintimer) >= redledPininterval)
  toggleredledPin ();

  if ( (millis() - greenled2Pintimer) >= greenled2Pininterval)  //handling the blink of green led 2
  togglegreenled2Pin ();

  if ( (millis () - redled2Pintimer) >= redled2Pininterval)   // handling the blink of red led 2
  toggleredled2Pin ();
}