* It should run and reboot the device if it detects a change is taking too long * The timeout for changes taking too long should be configurable * It should write out the all the existing and current change information to a JSON document, also configurable * It should keep track of internal errors and also reboot itself if too many of those occur, also configurable * Rebooting should be configurable * It should avoid re-writing the changes document if not rebooting