using localStorage for cross-tab session storage