device detection and customization