The memory storage was based on earlier EPROM and EEPROM technologies. It offers serial and parallel EEPROM, as well as one-time programmable (OTP) EPROM. An improvement on EPROM, EEPROM, soon followed. Variants starting with 87 have a user programmable EPROM, sometimes UV erasable. The code space is generally implemented as on-chip ROM, EPROM or flash ROM. Firmware is held in non-volatile memory devices such as ROM, EPROM, or flash memory. Some microcontroller devices were available with on-board EPROM. A more expensive alternative is an external EPROM/flash programmer. However, writing new data to an EPROM requires a special programmer circuit. The PIC, however, was upgraded with an internal EPROM to produce a programmable channel controller. Erasure of the EPROM begins to occur with wavelengths shorter than 400 nm. Frohman designed the Intel 1702, a 2048-bit EPROM, which was announced by Intel in 1971. Each storage location of an EPROM consists of a single field-effect transistor. EPROM programming is slow compared to other forms of memory. Programs could be saved and loaded via cassette tape or EPROM.