implement graceful degradation for iOS devices