adding caching of devices