updated UIDevice extension