 } // Setup
 
 void initialize() {
-  config.nodeId = eeprom_read_byte(RF12_EEPROM_ADDR);
-  config.group = eeprom_read_byte(RF12_EEPROM_ADDR + 1);
-  frequency = eeprom_read_byte(RF12_EEPROM_ADDR + 2);
-  config.flags = frequency >> 4;               // Extract the flag nibble
-  if (config.flags & V10)                      // Is this a pre v11 eeprom
-    frequency = 1600; 
-  else // Lose flag nibble to get frequency high order
-    frequency = ((frequency & 0x0F)  << 8) + (eeprom_read_byte(RF12_EEPROM_ADDR + 3));
+    // load from EEPROM
+  for (byte i = 0; i < sizeof config; ++i) {
+    byte b = ((byte*) &config)[i];
+    b = eeprom_read_byte(RF12_EEPROM_ADDR + i);
+  }
+
   nodes[(config.nodeId & RF12_HDR_MASK)] = 0;  // Prevent allocation of this nodes number.
 }
 /// Display stored nodes and show the command queued for each node

const char COMMA[] PROGMEM = ",";
const char SPACE[] PROGMEM = " ";
const char INITFAIL[] PROGMEM = "config save failed\n";
const char VERSION[] PROGMEM = "\n[RF12demo.11]";
///

// ATtiny's only support outbound serial @ 38400 baud, and no DataFlash logging

  else {
    config.nodeId = 0x41; // 433 MHz, node 1
    config.group = 0xD4;  // default group 212
    config.frequency_offset = 1600;
    config.quiet_mode = true;   // Default flags, quiet on
    nodes[(config.nodeId & RF12_HDR_MASK)] = 0;  // Prevent allocation of this nodes number.
//  saveConfig();         // Don't save to eeprom until we have changes.
  }
