- runWorkers takes an array of SensorControllers to start - controllers are initialised in the main agent Run function rather than the run* functions - move controller logic out of device package