fix: add mobile detect