diff --git a/esoui/ingame/leaderboards/gamepad/campaignleaderboards_gamepad.lua b/esoui/ingame/leaderboards/gamepad/campaignleaderboards_gamepad.lua
index 9a54664..5fd06b6 100755
--- a/esoui/ingame/leaderboards/gamepad/campaignleaderboards_gamepad.lua
+++ b/esoui/ingame/leaderboards/gamepad/campaignleaderboards_gamepad.lua
@@ -1,4 +1,4 @@
-local GAMEPAD_CAMPAIGN_LEADERBOARDS
+GAMEPAD_CAMPAIGN_LEADERBOARDS = nil
 
 local ACTIVE_CAMPAIGN_INDEX = 1
 local ICON_SIZE = 60
@@ -46,12 +46,18 @@ end
 function ZO_LeaderboardCampaignSelector_Gamepad:RefreshQueryTypes()
     local campaignName = GetCampaignName(self:GetCampaignId())
 
-    if self.selectedQueryType == HOME_TAB.queryType then
-        self:SetActiveCampaign(campaignName, HOME_TAB)
-    elseif GetCurrentCampaignId() ~= 0 and self.selectedQueryType == GUEST_TAB.queryType then
-        self:SetActiveCampaign(campaignName, GUEST_TAB)
+    if not self.selectedQueryType then
+        if self:IsHomeSelectable() then
+            self:OnQueryTypeChanged(HOME_TAB)
+        elseif self:IsGuestSelectable() then
+            self:OnQueryTypeChanged(GUEST_TAB)
+        end
     else
+        if self.selectedQueryType == HOME_TAB.queryType then
             self:OnQueryTypeChanged(HOME_TAB)
+        elseif GetCurrentCampaignId() ~= 0 and self.selectedQueryType == GUEST_TAB.queryType then
+            self:OnQueryTypeChanged(GUEST_TAB)
+        end
     end
 end
 
@@ -72,8 +78,7 @@ end
 local ZO_CampaignLeaderboardsManager_Gamepad = ZO_CampaignLeaderboardsManager_Shared:Subclass()
 
 function ZO_CampaignLeaderboardsManager_Gamepad:New(...)    
-    local manager = ZO_CampaignLeaderboardsManager_Shared.New(self, ...)
-    return manager
+    return ZO_CampaignLeaderboardsManager_Shared.New(self, ...)
 end
 
 function ZO_CampaignLeaderboardsManager_Gamepad:Initialize(control)
@@ -81,8 +86,6 @@ function ZO_CampaignLeaderboardsManager_Gamepad:Initialize(control)
 
     ZO_CampaignLeaderboardsManager_Shared.Initialize(self, control, GAMEPAD_LEADERBOARDS, GAMEPAD_LEADERBOARDS_SCENE, GAMEPAD_CAMPAIGN_LEADERBOARD_FRAGMENT)
 
-    self:InitializeCategories()
-
     GAMEPAD_CAMPAIGN_LEADERBOARD_FRAGMENT:RegisterCallback("StateChange", function(oldState, newState)
                                                  if newState == SCENE_FRAGMENT_SHOWING then
                                                      self:PerformDeferredInitialization(control)
@@ -154,12 +157,13 @@ function ZO_CampaignLeaderboardsManager_Gamepad:InitializeKeybindStripDescriptor
                 self.selector:OnQueryTypeChanged(HOME_TAB)
             end
         end,
-        visible = function() return self.selector:ShouldAllowSwitchingTabs() end,
+        visible = function() return self.selector:IsHomeSelectable() and self.selector:IsGuestSelectable() end,
         sound = SOUNDS.DEFAULT_CLICK,
     }
 end
 
 function ZO_CampaignLeaderboardsInformationArea_Gamepad_OnInitialized(self)
     GAMEPAD_CAMPAIGN_LEADERBOARDS = ZO_CampaignLeaderboardsManager_Gamepad:New(self)
+    GAMEPAD_LEADERBOARDS:UpdateCategories()
     GAMEPAD_CAMPAIGN_LEADERBOARDS.selector = ZO_LeaderboardCampaignSelector_Gamepad:New(self)
 end
\ No newline at end of file