https://daviddalbusco.medium.com/essential-javascript-functions-for-detecting-users-device-characteristics-763e397514cd