Flash memory is a technology that allows changing any bit from '1' to '0' anywhere, but to change bits back to '1' requires erasing a portion of the memory, which is termed an erase block. Typical size of an erase block is 64 Kbytes, and erasing it sets all bits inside that portion to '1', When updating a variable, the implementation needs to store its new revision in a location that has been previously erased, not in the same location where the current value is stored, and for that reason, updating a value of a variable creates a new version which consumes new space. For maintaining multiple versions of variables require additional overhead per variable, and may also include a data integrity check (per variable), thus increasing the amount of space consumed by storing a new variable or updating one. When configuration is stored in EEPROM, data may be updated in place but such memories are significantly smaller in size than Flash memories.