 void loadConfiguration() {
     // Ensure the version string matches our version string; if it doesn't, we
     // should just use the default configuration
-    if (EEPROM.readByte(config_address + sizeof(config) - 1) == *config.version[3]
-        && EEPROM.readByte(config_address + sizeof(config) - 2) == *config.version[2]
-        && EEPROM.readByte(config_address + sizeof(config) - 3) == *config.version[1]
-        && EEPROM.readByte(config_address + sizeof(config) - 4) == *config.version[0]) {
-        Serial.println("Configuration matched!");
-        EEPROM.readBlock(config_address, config);
+    char stored_version[4];
+    EEPROM.readBlock(config_address, stored_version);
+
+    if (strcmp(stored_version, config.version) == 0) {
+        int bytes_read = EEPROM.readBlock(config_address, config);
+
+        Serial.print("Loaded configuration; version: ");
+        Serial.print(stored_version);
+        Serial.print("; bytes read: ");
+        Serial.println(bytes_read);
     } else {
-        Serial.println("Configuration did not match!");
+        Serial.print("Not loading old configuration; version: ");
+        Serial.println(stored_version);
     }
 }
 

 */
void loop()
{
    determinePowerState();
    determineSleepState();

    delay(config.loop_delay);

 */
void saveConfiguration() {
    Serial.println("Saving configuration");

    int bytes_written = EEPROM.updateBlock(config_address, config);

    Serial.print("Configuration saved; version: ");
    Serial.print(config.version);
    Serial.print("; bytes written: ");
    Serial.println(bytes_written);
}

/**
