move isMobile detection