           card.credits = 0;
         } else { // Known card
           // Fetch current credits
-          uint16_t four = 4;
-          uint16_t credit_addr = addr+4;
-          //Serial.print("Z ");
-          Serial.println(addr,DEC);
-          Serial.println(addr+4,DEC);
-          Serial.println(addr+four,DEC);
-          //Serial.print(" + ");
-          //Serial.print(CARD_UID_SIZE);
-          //Serial.print(" = ");
-          Serial.println(credit_addr);
-          credit_addr = addr+four;
-          Serial.println(credit_addr);
-          EEPROM_readAnything(credit_addr,card.credits);
+          EEPROM_readAnything(addr+sizeof(card_uid_t),card.credits);
         }
         card.credits += credits_in_machine;
         // Card found! (Known card OR found free spot for new card)


int16_t findFreeCardSpot(){
  uint16_t credits = 0;
  uint16_t addr = CARD_UID_SIZE; // Offset pointer, so we are looking at the card.credits
  uint16_t last_addr = 1024-sizeof(card_t); // EEPROM size minus size of one element
  for(addr; addr <= last_addr; addr = addr + sizeof(card_t)){
    if(EEPROM_compareAnything(addr,credits)){ // If bytes at address match, ok!
      Serial.println(addr-CARD_UID_SIZE);
      return addr-CARD_UID_SIZE; // Offset pointer again, so it points to beginning of card_t
    }
  }
  return 65535; // Error value

        } else { // Known card!
          // Card found!
          // Withdraw from card
          EEPROM_readAnything(addr+sizeof(card_uid_t),card.credits);
          if(card.credits == 0){
            // ERR Beep + display "NO CREDITS"?
            Serial.println("NO CREDITS - KNOWN CARD");
