diff --git a/esoui/ingame/group/gamepad/zo_groupmenu_gamepad.lua b/esoui/ingame/group/gamepad/zo_groupmenu_gamepad.lua
index c080816..8c1fad2 100755
--- a/esoui/ingame/group/gamepad/zo_groupmenu_gamepad.lua
+++ b/esoui/ingame/group/gamepad/zo_groupmenu_gamepad.lua
@@ -6,60 +6,15 @@ local ZO_GroupMenu_Gamepad = ZO_Gamepad_ParametricList_Screen:Subclass()
 
 local MENU_ENTRY_TYPE_ROLES = 1
 local MENU_ENTRY_TYPE_CURRENT_GROUP = 2
-local MENU_ENTRY_TYPE_FIND_GROUP = 3
-local MENU_ENTRY_TYPE_DUNGEON_DIFFICULTY = 4
-local MENU_ENTRY_TYPE_INVITE_PLAYER = 5
-local MENU_ENTRY_TYPE_INVITE_FRIEND = 6
-local MENU_ENTRY_TYPE_LEAVE_GROUP = 7
-local MENU_ENTRY_TYPE_DISBAND_GROUP = 8
+local MENU_ENTRY_TYPE_DUNGEON_DIFFICULTY = 3
+local MENU_ENTRY_TYPE_INVITE_PLAYER = 4
+local MENU_ENTRY_TYPE_INVITE_FRIEND = 5
+local MENU_ENTRY_TYPE_LEAVE_GROUP = 6
+local MENU_ENTRY_TYPE_DISBAND_GROUP = 7
 
 local CATEGORY_HEADER_TEMPLATE = "ZO_GamepadMenuEntryHeaderTemplate"
 local MENU_ENTRY_TEMPLATE = "ZO_GamepadMenuEntryTemplate"
 
-local TOOLTIP_INFO_TEXT = 
-{
-    [MENU_ENTRY_TYPE_DUNGEON_DIFFICULTY] = 
-    {
-        title = GetString(SI_GAMEPAD_GROUP_DUNGEON_DIFFICULTY),
-        text = 
-        {
-            -- Only one error will display. This table is prioritized from most important to least.
-            errors =
-            {
-                {
-                    text = GetString(SI_DUNGEON_DIFFICULTY_VETERAN_TOOLTIP_FAILED_REQUIREMENT),
-                    canDisplay = function()
-                        return GetUnitVeteranRank("player") == 0
-                    end,
-                },
-                {
-                    text = GetString(SI_DUNGEON_DIFFICULTY_VETERAN_TOOLTIP_LEADER_MUST_CHANGE),
-                    canDisplay = function()
-                        local isPlayerVeteran = GetUnitVeteranRank("player") > 0
-                        return isPlayerVeteran and IsUnitGrouped("player") and not IsUnitGroupLeader("player")
-                    end,
-                },
-                {
-                    text = GetString(SI_DUNGEON_DIFFICULTY_VETERAN_TOOLTIP_IN_DUNGEON),
-                    canDisplay = function() 
-                        local isPlayerVeteran = GetUnitVeteranRank("player") > 0
-                        local isLeader = IsUnitGrouped("player") and IsUnitGroupLeader("player")
-                        local isAnyGroupMemberInDungeon = IsAnyGroupMemberInDungeon()
-                        return isPlayerVeteran and isLeader and isAnyGroupMemberInDungeon
-                    end,
-                },
-                {
-                    text = GetString(SI_DUNGEON_DIFFICULTY_VETERAN_TOOLTIP_IN_LFG_GROUP),
-                    canDisplay = function()
-                        return IsInLFGGroup()
-                    end,
-                },
-            },
-            bodyText = GetString(SI_DUNGEON_DIFFICULTY_HELP_TOOLTIP),
-        }
-    },
-}
-
 function ZO_GroupMenu_Gamepad:New(...)
     return ZO_Gamepad_ParametricList_Screen.New(self, ...)
 end
@@ -81,7 +36,6 @@ function ZO_GroupMenu_Gamepad:InitializeScene()
             self:SelectMenuList()
 
             ZO_GamepadGenericHeader_Activate(self.header)
-            self:RefreshFooter()
 
             SCENE_MANAGER:AddFragment(GAMEPAD_GROUP_ROLES_FRAGMENT)
             TriggerTutorial(TUTORIAL_TRIGGER_YOUR_GROUP_OPENED)
@@ -111,7 +65,11 @@ function ZO_GroupMenu_Gamepad:PerformDeferredInitialization()
     self:InitializeKeybindDescriptors()
     self:InitializeEvents()
     
-    ZO_GamepadGenericHeader_RefreshData(self.header, GAMEPAD_GROUP_DATA:GetHeaderData())
+    local headerData =
+    {
+        titleText = GetString(SI_MAIN_MENU_GROUP),
+    }
+    ZO_GamepadGenericHeader_RefreshData(self.header, headerData)
 
     self.currentFragmentGroup = nil
     self.menuEntries[MENU_ENTRY_TYPE_CURRENT_GROUP].fragmentGroup = { GROUP_LIST_GAMEPAD:GetListFragment(), GAMEPAD_NAV_QUADRANT_2_3_4_BACKGROUND_FRAGMENT }
@@ -145,10 +103,8 @@ function ZO_GroupMenu_Gamepad:InitializeKeybindDescriptors()
                     end
 
                     local isAnyGroupMemberInDungeon = IsAnyGroupMemberInDungeon()
-                    local isGrouped = IsUnitGrouped("player")
-                    local isLeader = isGrouped and IsUnitGroupLeader("player")
 
-                    return not IsInLFGGroup() and not isAnyGroupMemberInDungeon and (not isGrouped or isLeader)
+                    return not IsInLFGGroup() and not isAnyGroupMemberInDungeon and IsUnitSoloOrGroupLeader("player")
                 elseif type == MENU_ENTRY_TYPE_CURRENT_GROUP then
                     return GetGroupSize() > 0
                 end
@@ -162,14 +118,11 @@ function ZO_GroupMenu_Gamepad:InitializeKeybindDescriptors()
                 if type == MENU_ENTRY_TYPE_DUNGEON_DIFFICULTY then
                     self:DeactivateCurrentList()
                     self.dungeonDifficultyDropdown:Activate()
-                    self.dungeonDifficultyDropdown:SetHighlightedItem(IsUnitUsingVeteranDifficulty("player") and DIFFICULTY_VETERAN_INDEX or DIFFICULTY_NORMAL_INDEX)
+                    self.dungeonDifficultyDropdown:SetHighlightedItem(ZO_GetEffectiveDungeonDifficulty() == DUNGEON_DIFFICULTY_VETERAN and DIFFICULTY_VETERAN_INDEX or DIFFICULTY_NORMAL_INDEX)
 
                 elseif type == MENU_ENTRY_TYPE_CURRENT_GROUP then
                     self:SelectGroupList(SOUNDS.GAMEPAD_MENU_FORWARD)
 
-                elseif type == MENU_ENTRY_TYPE_FIND_GROUP then
-                    SCENE_MANAGER:Push("groupingToolsGamepad")
-
                 elseif type == MENU_ENTRY_TYPE_INVITE_PLAYER then
                     local platform = GetUIPlatform()
                     if platform == UI_PLATFORM_PS4 then
@@ -254,7 +207,7 @@ function ZO_GroupMenu_Gamepad:InitializeEvents()
         end
     end
 
-    local function OnVeteranDifficultyChanged()
+    local function OnGroupVeteranDifficultyChanged()
         if not self.control:IsControlHidden() then
             self:UpdateMenuList()
         end
@@ -278,18 +231,6 @@ function ZO_GroupMenu_Gamepad:InitializeEvents()
         end
     end
 
-    local lastUpdateS = 0
-    local function OnUpdate(control, currentFrameTimeSeconds)
-        --Refresh Grouping Tools tooltip
-        if currentFrameTimeSeconds - lastUpdateS > 1 then
-            local data = self:GetMainList():GetTargetData()
-            if data and data.type == MENU_ENTRY_TYPE_FIND_GROUP then
-                GAMEPAD_TOOLTIPS:LayoutGroupFinder(GAMEPAD_LEFT_TOOLTIP)
-                lastUpdateS = currentFrameTimeSeconds
-            end
-        end
-    end
-
     self.control:RegisterForEvent(EVENT_GROUP_MEMBER_JOINED, function(eventCode, ...) OnGroupMemberJoined(...) end)
     self.control:RegisterForEvent(EVENT_GROUP_MEMBER_LEFT, function(eventCode, ...) OnGroupMemberLeft(...) end)
     self.control:RegisterForEvent(EVENT_GROUP_UPDATE, function(eventCode, ...) OnGroupUpdate(...) end)
@@ -297,14 +238,10 @@ function ZO_GroupMenu_Gamepad:InitializeEvents()
     self.control:RegisterForEvent(EVENT_GROUPING_TOOLS_STATUS_UPDATE, function(eventCode, ...) OnGroupingToolsStatusUpdate(...) end)
     self.control:RegisterForEvent(EVENT_GROUP_MEMBER_CONNECTED_STATUS, function(eventCode, ...) OnGroupMemberConnectedStatus(...) end)
 
-    self.control:RegisterForEvent(EVENT_VETERAN_DIFFICULTY_CHANGED, function(eventCode, ...) OnVeteranDifficultyChanged(...) end)
+    self.control:RegisterForEvent(EVENT_GROUP_VETERAN_DIFFICULTY_CHANGED, function(eventCode, ...) OnGroupVeteranDifficultyChanged(...) end)
     self.control:RegisterForEvent(EVENT_VETERAN_RANK_UPDATE, function(eventCode, ...) OnVeteranRankChanged(...) end)
 
     self.control:RegisterForEvent(EVENT_ZONE_UPDATE, function(eventCode, ...) OnZoneUpdate(...) end)
-
-    self.control:SetHandler("OnUpdate", OnUpdate)
-
-    CALLBACK_MANAGER:RegisterCallback("OnGroupStatusChange", function() self:RefreshFooter() end)
 end
 
 
@@ -327,7 +264,6 @@ function ZO_GroupMenu_Gamepad:UpdateMenuList()
     end
 
     list:AddEntry(MENU_ENTRY_TEMPLATE, self.menuEntries[MENU_ENTRY_TYPE_CURRENT_GROUP])
-    list:AddEntry(MENU_ENTRY_TEMPLATE, self.menuEntries[MENU_ENTRY_TYPE_FIND_GROUP])
     list:AddEntryWithHeader("ZO_GroupMenuGamepadDungeonDifficultyEntry", self.menuEntries[MENU_ENTRY_TYPE_DUNGEON_DIFFICULTY])  
     
     if groupSize == 0 or (playerIsLeader and groupSize < GROUP_SIZE_MAX) then
@@ -404,7 +340,7 @@ function ZO_GroupMenu_Gamepad:SetupList(list)
     local function SetupDungeonDifficultyEntry(control, data, selected, selectedDuringRebuild, enabled, activated)
         ZO_SharedGamepadEntry_OnSetup(control, data, selected, selectedDuringRebuild, enabled, active)
 
-        local isVeteran = IsUnitUsingVeteranDifficulty("player")
+        local isVeteran = ZO_GetEffectiveDungeonDifficulty() == DUNGEON_DIFFICULTY_VETERAN
         control.icon:ClearIcons()
         control.icon:AddIcon(isVeteran and data.veteranIcon or data.normalIcon)
         control.icon:Show()
@@ -432,24 +368,9 @@ function ZO_GroupMenu_Gamepad:SetupList(list)
 
     --Menu
     local function UpdateTooltipText(menuEntryType)
-        local tooltipInfo = TOOLTIP_INFO_TEXT[menuEntryType]
-        if tooltipInfo then
-            local textEntry = tooltipInfo.text
-            local bodyText, errorText
-            if type(textEntry) == "string" then
-                bodyText = textEntry
-            else
-                bodyText = textEntry.bodyText
-                for _, error in ipairs(textEntry.errors) do
-                    if error.canDisplay() then
-                        errorText = error.text
-                        break
-                    end
-                end
-            end
-            GAMEPAD_TOOLTIPS:LayoutGroupTooltip(GAMEPAD_LEFT_TOOLTIP, tooltipInfo.title, bodyText, errorText)
-		elseif menuEntryType == MENU_ENTRY_TYPE_FIND_GROUP then
-            GAMEPAD_TOOLTIPS:LayoutGroupFinder(GAMEPAD_LEFT_TOOLTIP)
+        if menuEntryType == MENU_ENTRY_TYPE_DUNGEON_DIFFICULTY then
+            local hasControlOfDifficulty, difficultyControlReason = CanPlayerChangeGroupDifficulty()
+            GAMEPAD_TOOLTIPS:LayoutGroupTooltip(GAMEPAD_LEFT_TOOLTIP,  GetString(SI_GAMEPAD_GROUP_DUNGEON_DIFFICULTY),  GetString(SI_DUNGEON_DIFFICULTY_HELP_TOOLTIP), GetString("SI_GROUPDIFFICULTYCHANGEREASON", difficultyControlReason))
         else
             GAMEPAD_TOOLTIPS:ClearTooltip(GAMEPAD_LEFT_TOOLTIP)
         end
@@ -487,7 +408,7 @@ function ZO_GroupMenu_Gamepad:SetupList(list)
     local _, point1, relativeTo1, relativePoint1, offsetX1, offsetY1 = listControl:GetAnchor(0)
     local _, point2, relativeTo2, relativePoint2, offsetX2, offsetY2 = listControl:GetAnchor(1)
     listControl:ClearAnchors()
-    listControl:SetAnchor(point1, relativeTo1, relativePoint1, offsetX1, offsetY1 + ZO_ROLES_BAR_ADDITIONAL_HEADER_SPACE)
+    listControl:SetAnchor(point1, relativeTo1, relativePoint1, offsetX1, offsetY1 + ZO_GAMEPAD_ROLES_BAR_ADDITIONAL_HEADER_SPACE)
     listControl:SetAnchor(point2, relativeTo2, relativePoint2, offsetX2, offsetY2)
 
     list:SetDefaultSelectedIndex(2) --don't select MENU_ENTRY_TYPE_ROLES by default
@@ -496,8 +417,7 @@ function ZO_GroupMenu_Gamepad:SetupList(list)
     self.menuEntries = {
         [MENU_ENTRY_TYPE_ROLES] = CreateListEntry("", MENU_ENTRY_TYPE_ROLES),
         [MENU_ENTRY_TYPE_CURRENT_GROUP] = CreateListEntry(SI_GAMEPAD_GROUP_CURRENT_GROUP, MENU_ENTRY_TYPE_CURRENT_GROUP, "EsoUI/Art/LFG/Gamepad/LFG_menuIcon_currentGroup.dds"),
-        [MENU_ENTRY_TYPE_FIND_GROUP] = CreateListEntry(SI_GAMEPAD_GROUP_FIND_MEMBERS, MENU_ENTRY_TYPE_FIND_GROUP, "EsoUI/Art/LFG/Gamepad/LFG_menuIcon_groupFinder.dds"),
-        [MENU_ENTRY_TYPE_DUNGEON_DIFFICULTY] = CreateDifficultyListEntry("", MENU_ENTRY_TYPE_DUNGEON_DIFFICULTY, "EsoUI/Art/LFG/Gamepad/gp_LFG_menuIcon_normalDungeon.dds", "EsoUI/Art/LFG/Gamepad/gp_LFG_menuIcon_veteranDungeon.dds"),
+        [MENU_ENTRY_TYPE_DUNGEON_DIFFICULTY] = CreateDifficultyListEntry("", MENU_ENTRY_TYPE_DUNGEON_DIFFICULTY, GetGamepadDungeonDifficultyIcon(DUNGEON_DIFFICULTY_NORMAL), GetGamepadDungeonDifficultyIcon(DUNGEON_DIFFICULTY_VETERAN)),
         [MENU_ENTRY_TYPE_INVITE_PLAYER] = CreateListEntry(SI_GROUP_WINDOW_INVITE_PLAYER, MENU_ENTRY_TYPE_INVITE_PLAYER, "EsoUI/Art/LFG/Gamepad/LFG_menuIcon_invitePlayer.dds"),
         [MENU_ENTRY_TYPE_INVITE_FRIEND] = CreateListEntry(SI_GROUP_WINDOW_INVITE_FRIEND, MENU_ENTRY_TYPE_INVITE_FRIEND, "EsoUI/Art/LFG/Gamepad/LFG_menuIcon_invitePlayer.dds"),
         [MENU_ENTRY_TYPE_LEAVE_GROUP] = CreateListEntry(SI_GROUP_LIST_MENU_LEAVE_GROUP, MENU_ENTRY_TYPE_LEAVE_GROUP),
@@ -532,12 +452,6 @@ function ZO_GroupMenu_Gamepad:DeactivateCurrentList()
     ZO_Gamepad_ParametricList_Screen.DeactivateCurrentList(self)
 end
 
---Other updates
-function ZO_GroupMenu_Gamepad:RefreshFooter()
-    GAMEPAD_GENERIC_FOOTER:Refresh(GAMEPAD_GROUP_DATA:GetFooterData())
-end
-
-
 --XML Calls
 function ZO_GroupMenuGamepad_OnInitialized(control)
     GAMEPAD_GROUP_MENU = ZO_GroupMenu_Gamepad:New(control)