The core is compiled into a single binary image and is usually not modified after deployment, although it is possible to use a special boot loader to overwrite or patch the core. Programs are loaded into the system by the program loader. The program loader is in charge of loading/unloading the programs into the system either by using the communication stack or directly attached storage (such as EEPROM).