updated to device detector 2.1.1 with caching