Quantcast

Renamed Generic_MakeCheckButton() to InitializeCheckButton()

torhal [11-28-09 - 17:19]
Renamed Generic_MakeCheckButton() to InitializeCheckButton()
Moved creation of MainPanel.filter_menu.obtain and its CheckBoxes from addon:InitializeFrame() to the main file body.
Moved creation of MainPanel.filter_menu.binding and its CheckBoxes from addon:InitializeFrame() to the main file body.
Made the CheckBoxes for these two filter_menu sections members of the menu frame and removed them from the global namespace.
Moved creation of MainPanel.filter_menu.item from addon:InitializeFrame() to the main file body.
Updated references in FilterValueMap.
Filename
ARLFrame.lua
diff --git a/ARLFrame.lua b/ARLFrame.lua
index 573a9b4..1f189c1 100644
--- a/ARLFrame.lua
+++ b/ARLFrame.lua
@@ -1711,7 +1711,7 @@ MainPanel.filter_menu.texture:SetTexCoord(0, (FILTERMENU_DOUBLE_WIDTH/256), 0, (
 -- Function to initialize a check-button with the given values. Used in all of
 -- the sub-menus of MainPanel.filter_menu
 -------------------------------------------------------------------------------
-local Generic_MakeCheckButton
+local InitializeCheckButton
 do
 	local PUSHDOWN = {
 		["cloak"]	= true,
@@ -1720,7 +1720,7 @@ do
 		["trinket"]	= true,
 		["shield"]	= true,
 	}
-	function Generic_MakeCheckButton(cButton, anchorFrame, ttText, scriptVal, row, col, misc)
+	function InitializeCheckButton(cButton, anchorFrame, ttText, scriptVal, row, col, misc)
 		-- set the position of the new checkbox
 		local xPos = 2 + ((col - 1) * 100)
 		local yPos = -3 - ((row - 1) * 17)
@@ -1776,23 +1776,23 @@ MainPanel.filter_menu.general:Hide()
 -- Create the CheckButtons for MainPanel.filter_menu.general
 -------------------------------------------------------------------------------
 MainPanel.filter_menu.general.specialty = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.specialty, MainPanel.filter_menu.general, L["SPECIALTY_DESC"], "specialty", 1, 1, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.specialty, MainPanel.filter_menu.general, L["SPECIALTY_DESC"], "specialty", 1, 1, 0)
 MainPanel.filter_menu.general.specialty.text:SetText(L["Specialties"])

 MainPanel.filter_menu.general.skill = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.skill, MainPanel.filter_menu.general, L["SKILL_DESC"], "skill", 1, 2, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.skill, MainPanel.filter_menu.general, L["SKILL_DESC"], "skill", 1, 2, 0)
 MainPanel.filter_menu.general.skill.text:SetText(_G.SKILL)

 MainPanel.filter_menu.general.faction = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.faction, MainPanel.filter_menu.general, L["FACTION_DESC"], "faction", 2, 1, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.faction, MainPanel.filter_menu.general, L["FACTION_DESC"], "faction", 2, 1, 0)
 MainPanel.filter_menu.general.faction.text:SetText(_G.FACTION)

 MainPanel.filter_menu.general.known = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.known, MainPanel.filter_menu.general, L["KNOWN_DESC"], "known", 2, 2, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.known, MainPanel.filter_menu.general, L["KNOWN_DESC"], "known", 2, 2, 0)
 MainPanel.filter_menu.general.known.text:SetText(L["Show Known"])

 MainPanel.filter_menu.general.unknown = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.unknown, MainPanel.filter_menu.general, L["UNKNOWN_DESC"], "unknown", 3, 1, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.unknown, MainPanel.filter_menu.general, L["UNKNOWN_DESC"], "unknown", 3, 1, 0)
 MainPanel.filter_menu.general.unknown.text:SetText(L["Show Unknown"])

 -------------------------------------------------------------------------------
@@ -1805,17 +1805,17 @@ MainPanel.filter_menu.general.class_toggle:SetHighlightTexture("Interface\\Butto
 MainPanel.filter_menu.general.class_toggle:RegisterForClicks("LeftButtonUp", "RightButtonUp")
 MainPanel.filter_menu.general.class_toggle:SetScript("OnClick",
 						     function(self, button)
-							     local filterdb = addon.db.profile.filters
+							     local classes = addon.db.profile.filters.classes
 							     local toggle = (button == "LeftButton") and true or false

-							     for class in pairs(filterdb.classes) do
-								     filterdb.classes[class] = toggle
+							     for class in pairs(classes) do
+								     classes[class] = toggle
 								     MainPanel.filter_menu.general[class]:SetChecked(toggle)
 							     end

 							     if toggle == false then
 								     local class = strlower(Player["Class"])
-								     filterdb.classes[class] = true
+								     classes[class] = true
 								     MainPanel.filter_menu.general[class]:SetChecked(true)
 							     end
 							     MainPanel:UpdateTitle()
@@ -1823,46 +1823,156 @@ MainPanel.filter_menu.general.class_toggle:SetScript("OnClick",
 						     end)

 MainPanel.filter_menu.general.deathknight = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.deathknight, MainPanel.filter_menu.general, L["CLASS_DESC"], "deathknight", 6, 1, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.deathknight, MainPanel.filter_menu.general, L["CLASS_DESC"], "deathknight", 6, 1, 0)
 MainPanel.filter_menu.general.deathknight.text:SetText(LOCALIZED_CLASS_NAMES_MALE["DEATHKNIGHT"])

 MainPanel.filter_menu.general.druid = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.druid, MainPanel.filter_menu.general, L["CLASS_DESC"], "druid", 6, 2, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.druid, MainPanel.filter_menu.general, L["CLASS_DESC"], "druid", 6, 2, 0)
 MainPanel.filter_menu.general.druid.text:SetText(LOCALIZED_CLASS_NAMES_MALE["DRUID"])

 MainPanel.filter_menu.general.hunter = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.hunter, MainPanel.filter_menu.general, L["CLASS_DESC"], "hunter", 7, 1, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.hunter, MainPanel.filter_menu.general, L["CLASS_DESC"], "hunter", 7, 1, 0)
 MainPanel.filter_menu.general.hunter.text:SetText(LOCALIZED_CLASS_NAMES_MALE["HUNTER"])

 MainPanel.filter_menu.general.mage = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.mage, MainPanel.filter_menu.general, L["CLASS_DESC"], "mage", 7, 2, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.mage, MainPanel.filter_menu.general, L["CLASS_DESC"], "mage", 7, 2, 0)
 MainPanel.filter_menu.general.mage.text:SetText(LOCALIZED_CLASS_NAMES_MALE["MAGE"])

 MainPanel.filter_menu.general.paladin = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.paladin, MainPanel.filter_menu.general, L["CLASS_DESC"], "paladin", 8, 1, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.paladin, MainPanel.filter_menu.general, L["CLASS_DESC"], "paladin", 8, 1, 0)
 MainPanel.filter_menu.general.paladin.text:SetText(LOCALIZED_CLASS_NAMES_MALE["PALADIN"])

 MainPanel.filter_menu.general.priest = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.priest, MainPanel.filter_menu.general, L["CLASS_DESC"], "priest", 8, 2, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.priest, MainPanel.filter_menu.general, L["CLASS_DESC"], "priest", 8, 2, 0)
 MainPanel.filter_menu.general.priest.text:SetText(LOCALIZED_CLASS_NAMES_MALE["PRIEST"])

 MainPanel.filter_menu.general.rogue = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.rogue, MainPanel.filter_menu.general, L["CLASS_DESC"], "rogue", 9, 1, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.rogue, MainPanel.filter_menu.general, L["CLASS_DESC"], "rogue", 9, 1, 0)
 MainPanel.filter_menu.general.rogue.text:SetText(LOCALIZED_CLASS_NAMES_MALE["ROGUE"])

 MainPanel.filter_menu.general.shaman = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.shaman, MainPanel.filter_menu.general, L["CLASS_DESC"], "shaman", 9, 2, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.shaman, MainPanel.filter_menu.general, L["CLASS_DESC"], "shaman", 9, 2, 0)
 MainPanel.filter_menu.general.shaman.text:SetText(LOCALIZED_CLASS_NAMES_MALE["SHAMAN"])

 MainPanel.filter_menu.general.warlock = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.warlock, MainPanel.filter_menu.general, L["CLASS_DESC"], "warlock", 10, 1, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.warlock, MainPanel.filter_menu.general, L["CLASS_DESC"], "warlock", 10, 1, 0)
 MainPanel.filter_menu.general.warlock.text:SetText(LOCALIZED_CLASS_NAMES_MALE["WARLOCK"])

 MainPanel.filter_menu.general.warrior = CreateFrame("CheckButton", nil, MainPanel.filter_menu.general)
-Generic_MakeCheckButton(MainPanel.filter_menu.general.warrior, MainPanel.filter_menu.general, L["CLASS_DESC"], "warrior", 10, 2, 0)
+InitializeCheckButton(MainPanel.filter_menu.general.warrior, MainPanel.filter_menu.general, L["CLASS_DESC"], "warrior", 10, 2, 0)
 MainPanel.filter_menu.general.warrior.text:SetText(LOCALIZED_CLASS_NAMES_MALE["WARRIOR"])

 -------------------------------------------------------------------------------
+-- Create MainPanel.filter_menu.obtain, and set its scripts.
+-------------------------------------------------------------------------------
+MainPanel.filter_menu.obtain = CreateFrame("Frame", nil, MainPanel.filter_menu)
+MainPanel.filter_menu.obtain:SetWidth(FILTERMENU_SMALL)
+MainPanel.filter_menu.obtain:SetHeight(280)
+MainPanel.filter_menu.obtain:EnableMouse(true)
+MainPanel.filter_menu.obtain:EnableKeyboard(true)
+MainPanel.filter_menu.obtain:SetMovable(false)
+MainPanel.filter_menu.obtain:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
+MainPanel.filter_menu.obtain:Hide()
+
+-------------------------------------------------------------------------------
+-- Create the CheckButtons for MainPanel.filter_menu.obtain
+-------------------------------------------------------------------------------
+MainPanel.filter_menu.obtain.instance = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.instance, MainPanel.filter_menu.obtain, L["INSTANCE_DESC"], "instance", 1, 1, 0)
+MainPanel.filter_menu.obtain.instance.text:SetText(_G.INSTANCE)
+
+MainPanel.filter_menu.obtain.raid = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.raid, MainPanel.filter_menu.obtain, L["RAID_DESC"], "raid", 1, 2, 0)
+MainPanel.filter_menu.obtain.raid.text:SetText(_G.RAID)
+
+MainPanel.filter_menu.obtain.quest = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.quest, MainPanel.filter_menu.obtain, L["QUEST_DESC"], "quest", 2, 1, 0)
+MainPanel.filter_menu.obtain.quest.text:SetText(L["Quest"])
+
+MainPanel.filter_menu.obtain.seasonal = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.seasonal, MainPanel.filter_menu.obtain, L["SEASONAL_DESC"], "seasonal", 2, 2, 0)
+MainPanel.filter_menu.obtain.seasonal.text:SetText(SEASONAL_CATEGORY)
+
+MainPanel.filter_menu.obtain.trainer = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.trainer, MainPanel.filter_menu.obtain, L["TRAINER_DESC"], "trainer", 3, 1, 0)
+MainPanel.filter_menu.obtain.trainer.text:SetText(L["Trainer"])
+
+MainPanel.filter_menu.obtain.vendor = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.vendor, MainPanel.filter_menu.obtain, L["VENDOR_DESC"], "vendor", 3, 2, 0)
+MainPanel.filter_menu.obtain.vendor.text:SetText(L["Vendor"])
+
+MainPanel.filter_menu.obtain.pvp = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.pvp, MainPanel.filter_menu.obtain, L["PVP_DESC"], "pvp", 4, 1, 0)
+MainPanel.filter_menu.obtain.pvp.text:SetText(_G.PVP)
+
+MainPanel.filter_menu.obtain.discovery = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.discovery, MainPanel.filter_menu.obtain, L["DISCOVERY_DESC"], "discovery", 4, 2, 0)
+MainPanel.filter_menu.obtain.discovery.text:SetText(L["Discovery"])
+
+MainPanel.filter_menu.obtain.worlddrop = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.worlddrop, MainPanel.filter_menu.obtain, L["WORLD_DROP_DESC"], "worlddrop", 5, 1, 0)
+MainPanel.filter_menu.obtain.worlddrop.text:SetText(L["World Drop"])
+
+MainPanel.filter_menu.obtain.mobdrop = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.mobdrop, MainPanel.filter_menu.obtain, L["MOB_DROP_DESC"], "mobdrop", 5, 2, 0)
+MainPanel.filter_menu.obtain.mobdrop.text:SetText(L["Mob Drop"])
+
+MainPanel.filter_menu.obtain.originalwow = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.originalwow, MainPanel.filter_menu.obtain, L["ORIGINAL_WOW_DESC"], "originalwow", 7, 1, 0)
+MainPanel.filter_menu.obtain.originalwow.text:SetText(_G.EXPANSION_NAME0)
+
+MainPanel.filter_menu.obtain.bc = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.bc, MainPanel.filter_menu.obtain, L["BC_WOW_DESC"], "bc", 8, 1, 0)
+MainPanel.filter_menu.obtain.bc.text:SetText(_G.EXPANSION_NAME1)
+
+MainPanel.filter_menu.obtain.wrath = CreateFrame("CheckButton", nil, MainPanel.filter_menu.obtain)
+InitializeCheckButton(MainPanel.filter_menu.obtain.wrath, MainPanel.filter_menu.obtain, L["LK_WOW_DESC"], "wrath", 9, 1, 0)
+MainPanel.filter_menu.obtain.wrath.text:SetText(_G.EXPANSION_NAME2)
+
+-------------------------------------------------------------------------------
+-- Create MainPanel.filter_menu.binding, and set its scripts.
+-------------------------------------------------------------------------------
+MainPanel.filter_menu.binding = CreateFrame("Frame", nil, MainPanel.filter_menu)
+MainPanel.filter_menu.binding:SetWidth(FILTERMENU_LARGE)
+MainPanel.filter_menu.binding:SetHeight(280)
+MainPanel.filter_menu.binding:EnableMouse(true)
+MainPanel.filter_menu.binding:EnableKeyboard(true)
+MainPanel.filter_menu.binding:SetMovable(false)
+MainPanel.filter_menu.binding:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
+MainPanel.filter_menu.binding:Hide()
+
+-------------------------------------------------------------------------------
+-- Create the CheckButtons for MainPanel.filter_menu.binding
+-------------------------------------------------------------------------------
+MainPanel.filter_menu.binding.itemboe = CreateFrame("CheckButton", nil, MainPanel.filter_menu.binding)
+InitializeCheckButton(MainPanel.filter_menu.binding.itemboe, MainPanel.filter_menu.binding, L["BOE_DESC"], "itemboe", 1, 1, 0)
+MainPanel.filter_menu.binding.itemboe.text:SetText(L["BOEFilter"])
+
+MainPanel.filter_menu.binding.itembop = CreateFrame("CheckButton", nil, MainPanel.filter_menu.binding)
+InitializeCheckButton(MainPanel.filter_menu.binding.itembop, MainPanel.filter_menu.binding, L["BOP_DESC"], "itembop", 2, 1, 0)
+MainPanel.filter_menu.binding.itembop.text:SetText(L["BOPFilter"])
+
+MainPanel.filter_menu.binding.recipeboe = CreateFrame("CheckButton", nil, MainPanel.filter_menu.binding)
+InitializeCheckButton(MainPanel.filter_menu.binding.recipeboe, MainPanel.filter_menu.binding, L["RECIPE_BOE_DESC"], "recipeboe", 3, 1, 0)
+MainPanel.filter_menu.binding.recipeboe.text:SetText(L["RecipeBOEFilter"])
+
+MainPanel.filter_menu.binding.recipebop = CreateFrame("CheckButton", nil, MainPanel.filter_menu.binding)
+InitializeCheckButton(MainPanel.filter_menu.binding.recipebop, MainPanel.filter_menu.binding, L["RECIPE_BOP_DESC"], "recipebop", 4, 1, 0)
+MainPanel.filter_menu.binding.recipebop.text:SetText(L["RecipeBOPFilter"])
+
+-------------------------------------------------------------------------------
+-- Create the CheckButtons for MainPanel.filter_menu.item
+-------------------------------------------------------------------------------
+MainPanel.filter_menu.item = CreateFrame("Frame", nil, MainPanel.filter_menu)
+MainPanel.filter_menu.item:SetWidth(FILTERMENU_LARGE)
+MainPanel.filter_menu.item:SetHeight(280)
+MainPanel.filter_menu.item:EnableMouse(true)
+MainPanel.filter_menu.item:EnableKeyboard(true)
+MainPanel.filter_menu.item:SetMovable(false)
+MainPanel.filter_menu.item:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
+MainPanel.filter_menu.item:Hide()
+
+-------------------------------------------------------------------------------
 -- Generic function to create expansion buttons in MainPanel.filter_menu.rep
 -------------------------------------------------------------------------------
 local function CreateExpansionButton(bName, bTex)
@@ -3064,7 +3174,7 @@ function GenerateClickableTT(anchor)
 end

 -------------------------------------------------------------------------------
--- Creates the initial frame to display recipes into.
+-- Initializes runtime elements of MainPanel.
 -------------------------------------------------------------------------------
 function addon:InitializeFrame()
 	-------------------------------------------------------------------------------
@@ -3365,122 +3475,6 @@ function addon:InitializeFrame()
 	-- Flyaway virtual frames to group buttons/text easily (and make them easy to show/hide)
 	-------------------------------------------------------------------------------

-	MainPanel.filter_menu.obtain = CreateFrame("Frame", "ARL_FilterMenu_Obtain", MainPanel.filter_menu)
-	MainPanel.filter_menu.obtain:SetWidth(FILTERMENU_SMALL)
-	MainPanel.filter_menu.obtain:SetHeight(280)
-	MainPanel.filter_menu.obtain:EnableMouse(true)
-	MainPanel.filter_menu.obtain:EnableKeyboard(true)
-	MainPanel.filter_menu.obtain:SetMovable(false)
-	MainPanel.filter_menu.obtain:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
-	MainPanel.filter_menu.obtain:Hide()
-
-	-------------------------------------------------------------------------------
-	--			() Instance	() Raid
-	--			() Quest	() Seasonal
-	--			() Trainer	() Vendor
-	--			() PVP		() Discovery
-	--			() World Drop	() Mob Drop
-	-------------------------------------------------------------------------------
-	local ARL_InstanceCB = CreateFrame("CheckButton", "ARL_InstanceCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_InstanceCB, MainPanel.filter_menu.obtain, L["INSTANCE_DESC"], "instance", 1, 1, 0)
-	ARL_InstanceCBText:SetText(_G.INSTANCE)
-
-	local ARL_RaidCB = CreateFrame("CheckButton", "ARL_RaidCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RaidCB, MainPanel.filter_menu.obtain, L["RAID_DESC"], "raid", 1, 2, 0)
-	ARL_RaidCBText:SetText(_G.RAID)
-
-	local ARL_QuestCB = CreateFrame("CheckButton", "ARL_QuestCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_QuestCB, MainPanel.filter_menu.obtain, L["QUEST_DESC"], "quest", 2, 1, 0)
-	ARL_QuestCBText:SetText(L["Quest"])
-
-	local ARL_SeasonalCB = CreateFrame("CheckButton", "ARL_SeasonalCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_SeasonalCB, MainPanel.filter_menu.obtain, L["SEASONAL_DESC"], "seasonal", 2, 2, 0)
-	ARL_SeasonalCBText:SetText(SEASONAL_CATEGORY)
-
-	local ARL_TrainerCB = CreateFrame("CheckButton", "ARL_TrainerCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_TrainerCB, MainPanel.filter_menu.obtain, L["TRAINER_DESC"], "trainer", 3, 1, 0)
-	ARL_TrainerCBText:SetText(L["Trainer"])
-
-	local ARL_VendorCB = CreateFrame("CheckButton", "ARL_VendorCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_VendorCB, MainPanel.filter_menu.obtain, L["VENDOR_DESC"], "vendor", 3, 2, 0)
-	ARL_VendorCBText:SetText(L["Vendor"])
-
-	local ARL_PVPCB = CreateFrame("CheckButton", "ARL_PVPCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_PVPCB, MainPanel.filter_menu.obtain, L["PVP_DESC"], "pvp", 4, 1, 0)
-	ARL_PVPCBText:SetText(_G.PVP)
-
-	local ARL_DiscoveryCB = CreateFrame("CheckButton", "ARL_DiscoveryCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_DiscoveryCB, MainPanel.filter_menu.obtain, L["DISCOVERY_DESC"], "discovery", 4, 2, 0)
-	ARL_DiscoveryCBText:SetText(L["Discovery"])
-
-	local ARL_WorldDropCB = CreateFrame("CheckButton", "ARL_WorldDropCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WorldDropCB, MainPanel.filter_menu.obtain, L["WORLD_DROP_DESC"], "worlddrop", 5, 1, 0)
-	ARL_WorldDropCBText:SetText(L["World Drop"])
-
-	local ARL_MobDropCB = CreateFrame("CheckButton", "ARL_MobDropCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_MobDropCB, MainPanel.filter_menu.obtain, L["MOB_DROP_DESC"], "mobdrop", 5, 2, 0)
-	ARL_MobDropCBText:SetText(L["Mob Drop"])
-
-	local ARL_OriginalWoWCB = CreateFrame("CheckButton", "ARL_OriginalWoWCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_OriginalWoWCB, MainPanel.filter_menu.obtain, L["ORIGINAL_WOW_DESC"], "originalwow", 7, 1, 0)
-	ARL_OriginalWoWCBText:SetText(_G.EXPANSION_NAME0)
-
-	local ARL_BCCB = CreateFrame("CheckButton", "ARL_BCCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_BCCB, MainPanel.filter_menu.obtain, L["BC_WOW_DESC"], "bc", 8, 1, 0)
-	ARL_BCCBText:SetText(_G.EXPANSION_NAME1)
-
-	local ARL_WrathCB = CreateFrame("CheckButton", "ARL_WrathCB", MainPanel.filter_menu.obtain, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WrathCB, MainPanel.filter_menu.obtain, L["LK_WOW_DESC"], "wrath", 9, 1, 0)
-	ARL_WrathCBText:SetText(_G.EXPANSION_NAME2)
-
-	MainPanel.filter_menu.binding = CreateFrame("Frame", "ARL_FilterMenu_Binding", MainPanel.filter_menu)
-	MainPanel.filter_menu.binding:SetWidth(FILTERMENU_LARGE)
-	MainPanel.filter_menu.binding:SetHeight(280)
-	MainPanel.filter_menu.binding:EnableMouse(true)
-	MainPanel.filter_menu.binding:EnableKeyboard(true)
-	MainPanel.filter_menu.binding:SetMovable(false)
-	MainPanel.filter_menu.binding:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
-	MainPanel.filter_menu.binding:Hide()
-
-	-------------------------------------------------------------------------------
-	--			() Crafted Item is Bind on Equip
-	--			() Crafted Item is Bind on Pickup
-	--			() Recipe is Bind on Equip
-	--			() Recipe is Bind on Pickup
-	-------------------------------------------------------------------------------
-	local ARL_iBoECB = CreateFrame("CheckButton", "ARL_iBoECB", MainPanel.filter_menu.binding, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_iBoECB, MainPanel.filter_menu.binding, L["BOE_DESC"], "itemboe", 1, 1, 0)
-	ARL_iBoECBText:SetText(L["BOEFilter"])
-
-	local ARL_iBoPCB = CreateFrame("CheckButton", "ARL_iBoPCB", MainPanel.filter_menu.binding, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_iBoPCB, MainPanel.filter_menu.binding, L["BOP_DESC"], "itembop", 2, 1, 0)
-	ARL_iBoPCBText:SetText(L["BOPFilter"])
-
-	local ARL_rBoECB = CreateFrame("CheckButton", "ARL_rBoECB", MainPanel.filter_menu.binding, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_rBoECB, MainPanel.filter_menu.binding, L["RECIPE_BOE_DESC"], "recipeboe", 3, 1, 0)
-	ARL_rBoECBText:SetText(L["RecipeBOEFilter"])
-
-	local ARL_rBoPCB = CreateFrame("CheckButton", "ARL_rBoPCB", MainPanel.filter_menu.binding, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_rBoPCB, MainPanel.filter_menu.binding, L["RECIPE_BOP_DESC"], "recipebop", 4, 1, 0)
-	ARL_rBoPCBText:SetText(L["RecipeBOPFilter"])
-
-	MainPanel.filter_menu.item = CreateFrame("Frame", "ARL_FilterMenu_Item", MainPanel.filter_menu)
-	MainPanel.filter_menu.item:SetWidth(FILTERMENU_LARGE)
-	MainPanel.filter_menu.item:SetHeight(280)
-	MainPanel.filter_menu.item:EnableMouse(true)
-	MainPanel.filter_menu.item:EnableKeyboard(true)
-	MainPanel.filter_menu.item:SetMovable(false)
-	MainPanel.filter_menu.item:SetPoint("TOPLEFT", MainPanel.filter_menu, "TOPLEFT", 17, -16)
-	MainPanel.filter_menu.item:Hide()
-
-	-------------------------------------------------------------------------------
-	--			Armor:
-	--				() Cloth	() Leather
-	--				() Mail		() Plate
-	--				() Cloak	() Necklace
-	--				() Rings	() Trinkets
-	--				() Shield
-	-------------------------------------------------------------------------------
 	local ARL_ArmorButton = GenericCreateButton("ARL_ArmorButton", MainPanel.filter_menu.item, 20, 105, "GameFontHighlight", "GameFontHighlightSmall", _G.ARMOR_COLON,
 						    "LEFT", L["ARMOR_TEXT_DESC"], 0)
 	ARL_ArmorButton:SetPoint("TOPLEFT", MainPanel.filter_menu.item, "TOPLEFT", -2, -4)
@@ -3519,39 +3513,39 @@ function addon:InitializeFrame()
 				  end)

 	local ARL_ArmorClothCB = CreateFrame("CheckButton", "ARL_ArmorClothCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_ArmorClothCB, MainPanel.filter_menu.item, L["CLOTH_DESC"], "cloth", 2, 1, 0)
+	InitializeCheckButton(ARL_ArmorClothCB, MainPanel.filter_menu.item, L["CLOTH_DESC"], "cloth", 2, 1, 0)
 	ARL_ArmorClothCBText:SetText(L["Cloth"])

 	local ARL_ArmorLeatherCB = CreateFrame("CheckButton", "ARL_ArmorLeatherCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_ArmorLeatherCB, MainPanel.filter_menu.item, L["LEATHER_DESC"], "leather", 2, 2, 0)
+	InitializeCheckButton(ARL_ArmorLeatherCB, MainPanel.filter_menu.item, L["LEATHER_DESC"], "leather", 2, 2, 0)
 	ARL_ArmorLeatherCBText:SetText(L["Leather"])

 	local ARL_ArmorMailCB = CreateFrame("CheckButton", "ARL_ArmorMailCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_ArmorMailCB, MainPanel.filter_menu.item, L["MAIL_DESC"], "mail", 3, 1, 0)
+	InitializeCheckButton(ARL_ArmorMailCB, MainPanel.filter_menu.item, L["MAIL_DESC"], "mail", 3, 1, 0)
 	ARL_ArmorMailCBText:SetText(L["Mail"])

 	local ARL_ArmorPlateCB = CreateFrame("CheckButton", "ARL_ArmorPlateCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_ArmorPlateCB, MainPanel.filter_menu.item, L["PLATE_DESC"], "plate", 3, 2, 0)
+	InitializeCheckButton(ARL_ArmorPlateCB, MainPanel.filter_menu.item, L["PLATE_DESC"], "plate", 3, 2, 0)
 	ARL_ArmorPlateCBText:SetText(L["Plate"])

 	local ARL_ArmorCloakCB = CreateFrame("CheckButton", "ARL_ArmorCloakCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_ArmorCloakCB, MainPanel.filter_menu.item, L["CLOAK_DESC"], "cloak", 4, 1, 0)
+	InitializeCheckButton(ARL_ArmorCloakCB, MainPanel.filter_menu.item, L["CLOAK_DESC"], "cloak", 4, 1, 0)
 	ARL_ArmorCloakCBText:SetText(L["Cloak"])

 	local ARL_ArmorNecklaceCB = CreateFrame("CheckButton", "ARL_ArmorNecklaceCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_ArmorNecklaceCB, MainPanel.filter_menu.item, L["NECKLACE_DESC"], "necklace", 4, 2, 0)
+	InitializeCheckButton(ARL_ArmorNecklaceCB, MainPanel.filter_menu.item, L["NECKLACE_DESC"], "necklace", 4, 2, 0)
 	ARL_ArmorNecklaceCBText:SetText(L["Necklace"])

 	local ARL_ArmorRingCB = CreateFrame("CheckButton", "ARL_ArmorRingCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_ArmorRingCB, MainPanel.filter_menu.item, L["RING_DESC"], "ring", 5, 1, 0)
+	InitializeCheckButton(ARL_ArmorRingCB, MainPanel.filter_menu.item, L["RING_DESC"], "ring", 5, 1, 0)
 	ARL_ArmorRingCBText:SetText(L["Ring"])

 	local ARL_ArmorTrinketCB = CreateFrame("CheckButton", "ARL_ArmorTrinketCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_ArmorTrinketCB, MainPanel.filter_menu.item, L["TRINKET_DESC"], "trinket", 5, 2, 0)
+	InitializeCheckButton(ARL_ArmorTrinketCB, MainPanel.filter_menu.item, L["TRINKET_DESC"], "trinket", 5, 2, 0)
 	ARL_ArmorTrinketCBText:SetText(L["Trinket"])

 	local ARL_ArmorShieldCB = CreateFrame("CheckButton", "ARL_ArmorShieldCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_ArmorShieldCB, MainPanel.filter_menu.item, L["SHIELD_DESC"], "shield", 6, 1, 0)
+	InitializeCheckButton(ARL_ArmorShieldCB, MainPanel.filter_menu.item, L["SHIELD_DESC"], "shield", 6, 1, 0)
 	ARL_ArmorShieldCBText:SetText(L["Shield"])

 	-------------------------------------------------------------------------------
@@ -3604,69 +3598,69 @@ function addon:InitializeFrame()
 				   end)

 	local ARL_Weapon1HCB = CreateFrame("CheckButton", "ARL_Weapon1HCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_Weapon1HCB, MainPanel.filter_menu.item, L["ONEHAND_DESC"], "onehand", 9, 1, 0)
+	InitializeCheckButton(ARL_Weapon1HCB, MainPanel.filter_menu.item, L["ONEHAND_DESC"], "onehand", 9, 1, 0)
 	ARL_Weapon1HCBText:SetText(L["One Hand"])

 	local ARL_Weapon2HCB = CreateFrame("CheckButton", "ARL_Weapon2HCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_Weapon2HCB, MainPanel.filter_menu.item, L["TWOHAND_DESC"], "twohand", 9, 2, 0)
+	InitializeCheckButton(ARL_Weapon2HCB, MainPanel.filter_menu.item, L["TWOHAND_DESC"], "twohand", 9, 2, 0)
 	ARL_Weapon2HCBText:SetText(L["Two Hand"])

 	local ARL_WeaponDaggerCB = CreateFrame("CheckButton", "ARL_WeaponDaggerCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponDaggerCB, MainPanel.filter_menu.item, L["DAGGER_DESC"], "dagger", 10, 1, 0)
+	InitializeCheckButton(ARL_WeaponDaggerCB, MainPanel.filter_menu.item, L["DAGGER_DESC"], "dagger", 10, 1, 0)
 	ARL_WeaponDaggerCBText:SetText(L["Dagger"])

 	local ARL_WeaponAxeCB = CreateFrame("CheckButton", "ARL_WeaponAxeCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponAxeCB, MainPanel.filter_menu.item, L["AXE_DESC"], "axe", 10, 2, 0)
+	InitializeCheckButton(ARL_WeaponAxeCB, MainPanel.filter_menu.item, L["AXE_DESC"], "axe", 10, 2, 0)
 	ARL_WeaponAxeCBText:SetText(L["Axe"])

 	local ARL_WeaponMaceCB = CreateFrame("CheckButton", "ARL_WeaponMaceCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponMaceCB, MainPanel.filter_menu.item, L["MACE_DESC"], "mace", 11, 1, 0)
+	InitializeCheckButton(ARL_WeaponMaceCB, MainPanel.filter_menu.item, L["MACE_DESC"], "mace", 11, 1, 0)
 	ARL_WeaponMaceCBText:SetText(L["Mace"])

 	local ARL_WeaponSwordCB = CreateFrame("CheckButton", "ARL_WeaponSwordCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponSwordCB, MainPanel.filter_menu.item, L["SWORD_DESC"], "sword", 11, 2, 0)
+	InitializeCheckButton(ARL_WeaponSwordCB, MainPanel.filter_menu.item, L["SWORD_DESC"], "sword", 11, 2, 0)
 	ARL_WeaponSwordCBText:SetText(L["Sword"])

 	local ARL_WeaponPolearmCB = CreateFrame("CheckButton", "ARL_WeaponPolearmCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponPolearmCB, MainPanel.filter_menu.item, L["POLEARM_DESC"], "polearm", 12, 1, 0)
+	InitializeCheckButton(ARL_WeaponPolearmCB, MainPanel.filter_menu.item, L["POLEARM_DESC"], "polearm", 12, 1, 0)
 	ARL_WeaponPolearmCBText:SetText(L["Polearm"])

 	local ARL_WeaponFistCB = CreateFrame("CheckButton", "ARL_WeaponFistCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponFistCB, MainPanel.filter_menu.item, L["FIST_DESC"], "fist", 12, 2, 0)
+	InitializeCheckButton(ARL_WeaponFistCB, MainPanel.filter_menu.item, L["FIST_DESC"], "fist", 12, 2, 0)
 	ARL_WeaponFistCBText:SetText(L["Fist"])

 	local ARL_WeaponStaffCB = CreateFrame("CheckButton", "ARL_WeaponStaffCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponStaffCB, MainPanel.filter_menu.item, L["STAFF_DESC"], "staff", 13, 1, 0)
+	InitializeCheckButton(ARL_WeaponStaffCB, MainPanel.filter_menu.item, L["STAFF_DESC"], "staff", 13, 1, 0)
 	ARL_WeaponStaffCBText:SetText(L["Staff"])
 	ARL_WeaponStaffCBText:SetText(addon:Grey(L["Staff"]))
 	ARL_WeaponStaffCB:Disable()

 	local ARL_WeaponWandCB = CreateFrame("CheckButton", "ARL_WeaponWandCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponWandCB, MainPanel.filter_menu.item, L["WAND_DESC"], "wand", 13, 2, 0)
+	InitializeCheckButton(ARL_WeaponWandCB, MainPanel.filter_menu.item, L["WAND_DESC"], "wand", 13, 2, 0)
 	ARL_WeaponWandCBText:SetText(L["Wand"])

 	local ARL_WeaponThrownCB = CreateFrame("CheckButton", "ARL_WeaponThrownCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponThrownCB, MainPanel.filter_menu.item, L["THROWN_DESC"], "thrown", 14, 1, 0)
+	InitializeCheckButton(ARL_WeaponThrownCB, MainPanel.filter_menu.item, L["THROWN_DESC"], "thrown", 14, 1, 0)
 	ARL_WeaponThrownCBText:SetText(L["Thrown"])

 	local ARL_WeaponBowCB = CreateFrame("CheckButton", "ARL_WeaponBowCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponBowCB, MainPanel.filter_menu.item, L["BOW_DESC"], "bow", 14, 2, 0)
+	InitializeCheckButton(ARL_WeaponBowCB, MainPanel.filter_menu.item, L["BOW_DESC"], "bow", 14, 2, 0)
 	ARL_WeaponBowCBText:SetText(L["Bow"])
 	ARL_WeaponBowCBText:SetText(addon:Grey(L["Bow"]))
 	ARL_WeaponBowCB:Disable()

 	local ARL_WeaponCrossbowCB = CreateFrame("CheckButton", "ARL_WeaponCrossbowCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponCrossbowCB, MainPanel.filter_menu.item, L["CROSSBOW_DESC"], "crossbow", 15, 1, 0)
+	InitializeCheckButton(ARL_WeaponCrossbowCB, MainPanel.filter_menu.item, L["CROSSBOW_DESC"], "crossbow", 15, 1, 0)
 	ARL_WeaponCrossbowCBText:SetText(L["Crossbow"])
 	ARL_WeaponCrossbowCBText:SetText(addon:Grey(L["Crossbow"]))
 	ARL_WeaponCrossbowCB:Disable()

 	local ARL_WeaponAmmoCB = CreateFrame("CheckButton", "ARL_WeaponAmmoCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponAmmoCB, MainPanel.filter_menu.item, L["AMMO_DESC"], "ammo", 15, 2, 0)
+	InitializeCheckButton(ARL_WeaponAmmoCB, MainPanel.filter_menu.item, L["AMMO_DESC"], "ammo", 15, 2, 0)
 	ARL_WeaponAmmoCBText:SetText(L["Ammo"])

 	local ARL_WeaponGunCB = CreateFrame("CheckButton", "ARL_WeaponGunCB", MainPanel.filter_menu.item, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WeaponGunCB, MainPanel.filter_menu.item, L["GUN_DESC"], "gun", 16, 1, 0)
+	InitializeCheckButton(ARL_WeaponGunCB, MainPanel.filter_menu.item, L["GUN_DESC"], "gun", 16, 1, 0)
 	ARL_WeaponGunCBText:SetText(L["Gun"])

 	MainPanel.filter_menu.player = CreateFrame("Frame", "ARL_FilterMenu_Player", MainPanel.filter_menu)
@@ -3679,19 +3673,19 @@ function addon:InitializeFrame()
 	MainPanel.filter_menu.player:Hide()

 	local ARL_PlayerTankCB = CreateFrame("CheckButton", "ARL_PlayerTankCB", MainPanel.filter_menu.player, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_PlayerTankCB, MainPanel.filter_menu.player, L["TANKS_DESC"], "tank", 1, 1, 0)
+	InitializeCheckButton(ARL_PlayerTankCB, MainPanel.filter_menu.player, L["TANKS_DESC"], "tank", 1, 1, 0)
 	ARL_PlayerTankCBText:SetText(_G.TANK)

 	local ARL_PlayerMeleeCB = CreateFrame("CheckButton", "ARL_PlayerMeleeCB", MainPanel.filter_menu.player, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_PlayerMeleeCB, MainPanel.filter_menu.player, L["MELEE_DPS_DESC"], "melee", 2, 1, 0)
+	InitializeCheckButton(ARL_PlayerMeleeCB, MainPanel.filter_menu.player, L["MELEE_DPS_DESC"], "melee", 2, 1, 0)
 	ARL_PlayerMeleeCBText:SetText(_G.MELEE)

 	local ARL_PlayerHealerCB = CreateFrame("CheckButton", "ARL_PlayerHealerCB", MainPanel.filter_menu.player, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_PlayerHealerCB, MainPanel.filter_menu.player, L["HEALERS_DESC"], "healer", 3, 1, 0)
+	InitializeCheckButton(ARL_PlayerHealerCB, MainPanel.filter_menu.player, L["HEALERS_DESC"], "healer", 3, 1, 0)
 	ARL_PlayerHealerCBText:SetText(_G.HEALER)

 	local ARL_PlayerCasterCB = CreateFrame("CheckButton", "ARL_PlayerCasterCB", MainPanel.filter_menu.player, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_PlayerCasterCB, MainPanel.filter_menu.player, L["CASTER_DPS_DESC"], "caster", 4, 1, 0)
+	InitializeCheckButton(ARL_PlayerCasterCB, MainPanel.filter_menu.player, L["CASTER_DPS_DESC"], "caster", 4, 1, 0)
 	ARL_PlayerCasterCBText:SetText(_G.DAMAGER)

 	MainPanel.filter_menu.rep = CreateFrame("Frame", "ARL_FilterMenu_Rep", MainPanel.filter_menu)
@@ -3845,27 +3839,27 @@ function addon:InitializeFrame()
 				   end)

 	local ARL_RepArgentDawnCB = CreateFrame("CheckButton", "ARL_RepArgentDawnCB", MainPanel.filter_menu.rep.Classic, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepArgentDawnCB, MainPanel.filter_menu.rep.Classic, sformat(L["SPECIFIC_REP_DESC"], BFAC["Argent Dawn"]), "argentdawn", 2, 1, 0)
+	InitializeCheckButton(ARL_RepArgentDawnCB, MainPanel.filter_menu.rep.Classic, sformat(L["SPECIFIC_REP_DESC"], BFAC["Argent Dawn"]), "argentdawn", 2, 1, 0)
 	ARL_RepArgentDawnCBText:SetText(BFAC["Argent Dawn"])
 	ARL_RepArgentDawnCBText:SetFont(narrowFont, 11)

 	local ARL_RepCenarionCircleCB = CreateFrame("CheckButton", "ARL_RepCenarionCircleCB", MainPanel.filter_menu.rep.Classic, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepCenarionCircleCB, MainPanel.filter_menu.rep.Classic, sformat(L["SPECIFIC_REP_DESC"], BFAC["Cenarion Circle"]), "cenarioncircle", 3, 1, 0)
+	InitializeCheckButton(ARL_RepCenarionCircleCB, MainPanel.filter_menu.rep.Classic, sformat(L["SPECIFIC_REP_DESC"], BFAC["Cenarion Circle"]), "cenarioncircle", 3, 1, 0)
 	ARL_RepCenarionCircleCBText:SetText(BFAC["Cenarion Circle"])
 	ARL_RepCenarionCircleCBText:SetFont(narrowFont, 11)

 	local ARL_RepThoriumCB = CreateFrame("CheckButton", "ARL_RepThoriumCB", MainPanel.filter_menu.rep.Classic, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepThoriumCB, MainPanel.filter_menu.rep.Classic, sformat(L["SPECIFIC_REP_DESC"], BFAC["Thorium Brotherhood"]), "thoriumbrotherhood", 4, 1, 0)
+	InitializeCheckButton(ARL_RepThoriumCB, MainPanel.filter_menu.rep.Classic, sformat(L["SPECIFIC_REP_DESC"], BFAC["Thorium Brotherhood"]), "thoriumbrotherhood", 4, 1, 0)
 	ARL_RepThoriumCBText:SetText(BFAC["Thorium Brotherhood"])
 	ARL_RepThoriumCBText:SetFont(narrowFont, 11)

 	local ARL_RepTimbermawCB = CreateFrame("CheckButton", "ARL_RepTimbermawCB", MainPanel.filter_menu.rep.Classic, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepTimbermawCB, MainPanel.filter_menu.rep.Classic, sformat(L["SPECIFIC_REP_DESC"], BFAC["Timbermaw Hold"]), "timbermaw", 5, 1, 0)
+	InitializeCheckButton(ARL_RepTimbermawCB, MainPanel.filter_menu.rep.Classic, sformat(L["SPECIFIC_REP_DESC"], BFAC["Timbermaw Hold"]), "timbermaw", 5, 1, 0)
 	ARL_RepTimbermawCBText:SetText(BFAC["Timbermaw Hold"])
 	ARL_RepTimbermawCBText:SetFont(narrowFont, 11)

 	local ARL_RepZandalarCB = CreateFrame("CheckButton", "ARL_RepZandalarCB", MainPanel.filter_menu.rep.Classic, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepZandalarCB, MainPanel.filter_menu.rep.Classic, sformat(L["SPECIFIC_REP_DESC"], BFAC["Zandalar Tribe"]), "zandalar", 6, 1, 0)
+	InitializeCheckButton(ARL_RepZandalarCB, MainPanel.filter_menu.rep.Classic, sformat(L["SPECIFIC_REP_DESC"], BFAC["Zandalar Tribe"]), "zandalar", 6, 1, 0)
 	ARL_RepZandalarCBText:SetText(BFAC["Zandalar Tribe"])
 	ARL_RepZandalarCBText:SetFont(narrowFont, 11)

@@ -3945,72 +3939,72 @@ function addon:InitializeFrame()
 				   end)

 	local ARL_RepAldorCB = CreateFrame("CheckButton", "ARL_RepAldorCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepAldorCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Aldor"]), "aldor", 2, 1, 0)
+	InitializeCheckButton(ARL_RepAldorCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Aldor"]), "aldor", 2, 1, 0)
 	ARL_RepAldorCBText:SetText(BFAC["The Aldor"])
 	ARL_RepAldorCBText:SetFont(narrowFont, 11)

 	local ARL_RepAshtongueCB = CreateFrame("CheckButton", "ARL_RepAshtongueCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepAshtongueCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Ashtongue Deathsworn"]), "ashtonguedeathsworn", 3, 1, 0)
+	InitializeCheckButton(ARL_RepAshtongueCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Ashtongue Deathsworn"]), "ashtonguedeathsworn", 3, 1, 0)
 	ARL_RepAshtongueCBText:SetText(BFAC["Ashtongue Deathsworn"])
 	ARL_RepAshtongueCBText:SetFont(narrowFont, 11)

 	local ARL_RepCenarionExpeditionCB = CreateFrame("CheckButton", "ARL_RepCenarionExpeditionCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepCenarionExpeditionCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Cenarion Expedition"]), "cenarionexpedition", 4, 1, 0)
+	InitializeCheckButton(ARL_RepCenarionExpeditionCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Cenarion Expedition"]), "cenarionexpedition", 4, 1, 0)
 	ARL_RepCenarionExpeditionCBText:SetText(BFAC["Cenarion Expedition"])
 	ARL_RepCenarionExpeditionCBText:SetFont(narrowFont, 11)

 	local ARL_RepConsortiumCB = CreateFrame("CheckButton", "ARL_RepConsortiumCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepConsortiumCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Consortium"]), "consortium", 5, 1, 0)
+	InitializeCheckButton(ARL_RepConsortiumCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Consortium"]), "consortium", 5, 1, 0)
 	ARL_RepConsortiumCBText:SetText(BFAC["The Consortium"])
 	ARL_RepConsortiumCBText:SetFont(narrowFont, 11)

 	local ARL_RepHonorHoldCB = CreateFrame("CheckButton", "ARL_RepHonorHoldCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepHonorHoldCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], HonorHold_Thrallmar_FactionText), "hellfire", 6, 1, 0)
+	InitializeCheckButton(ARL_RepHonorHoldCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], HonorHold_Thrallmar_FactionText), "hellfire", 6, 1, 0)
 	ARL_RepHonorHoldCBText:SetText(HonorHold_Thrallmar_FactionText)
 	ARL_RepHonorHoldCBText:SetFont(narrowFont, 11)

 	local ARL_RepKeepersOfTimeCB = CreateFrame("CheckButton", "ARL_RepKeepersOfTimeCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepKeepersOfTimeCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Keepers of Time"]), "keepersoftime", 7, 1, 0)
+	InitializeCheckButton(ARL_RepKeepersOfTimeCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Keepers of Time"]), "keepersoftime", 7, 1, 0)
 	ARL_RepKeepersOfTimeCBText:SetText(BFAC["Keepers of Time"])
 	ARL_RepKeepersOfTimeCBText:SetFont(narrowFont, 11)

 	local ARL_RepKurenaiCB = CreateFrame("CheckButton", "ARL_RepKurenaiCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepKurenaiCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], Kurenai_Maghar_FactionText), "nagrand", 8, 1, 0)
+	InitializeCheckButton(ARL_RepKurenaiCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], Kurenai_Maghar_FactionText), "nagrand", 8, 1, 0)
 	ARL_RepKurenaiCBText:SetText(Kurenai_Maghar_FactionText)
 	ARL_RepKurenaiCBText:SetFont(narrowFont, 11)

 	local ARL_RepLowerCityCB = CreateFrame("CheckButton", "ARL_RepLowerCityCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepLowerCityCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Lower City"]), "lowercity", 9, 1, 0)
+	InitializeCheckButton(ARL_RepLowerCityCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Lower City"]), "lowercity", 9, 1, 0)
 	ARL_RepLowerCityCBText:SetText(BFAC["Lower City"])
 	ARL_RepLowerCityCBText:SetFont(narrowFont, 11)

 	local ARL_RepScaleSandsCB = CreateFrame("CheckButton", "ARL_RepScaleSandsCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepScaleSandsCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Scale of the Sands"]), "scaleofthesands", 10, 1, 0)
+	InitializeCheckButton(ARL_RepScaleSandsCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Scale of the Sands"]), "scaleofthesands", 10, 1, 0)
 	ARL_RepScaleSandsCBText:SetText(BFAC["The Scale of the Sands"])
 	ARL_RepScaleSandsCBText:SetFont(narrowFont, 11)

 	local ARL_RepScryersCB = CreateFrame("CheckButton", "ARL_RepScryersCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepScryersCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Scryers"]), "scryer", 11, 1, 0)
+	InitializeCheckButton(ARL_RepScryersCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Scryers"]), "scryer", 11, 1, 0)
 	ARL_RepScryersCBText:SetText(BFAC["The Scryers"])
 	ARL_RepScryersCBText:SetFont(narrowFont, 11)

 	local ARL_RepShatarCB = CreateFrame("CheckButton", "ARL_RepShatarCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepShatarCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Sha'tar"]), "shatar", 12, 1, 0)
+	InitializeCheckButton(ARL_RepShatarCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Sha'tar"]), "shatar", 12, 1, 0)
 	ARL_RepShatarCBText:SetText(BFAC["The Sha'tar"])
 	ARL_RepShatarCBText:SetFont(narrowFont, 11)

 	local ARL_RepShatteredSunCB = CreateFrame("CheckButton", "ARL_RepShatteredSunCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepShatteredSunCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Shattered Sun Offensive"]), "shatteredsun", 13, 1, 0)
+	InitializeCheckButton(ARL_RepShatteredSunCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Shattered Sun Offensive"]), "shatteredsun", 13, 1, 0)
 	ARL_RepShatteredSunCBText:SetText(BFAC["Shattered Sun Offensive"])
 	ARL_RepShatteredSunCBText:SetFont(narrowFont, 11)

 	local ARL_RepSporeggarCB = CreateFrame("CheckButton", "ARL_RepSporeggarCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepSporeggarCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Sporeggar"]), "sporeggar", 14, 1, 0)
+	InitializeCheckButton(ARL_RepSporeggarCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["Sporeggar"]), "sporeggar", 14, 1, 0)
 	ARL_RepSporeggarCBText:SetText(BFAC["Sporeggar"])
 	ARL_RepSporeggarCBText:SetFont(narrowFont, 11)

 	local ARL_RepVioletEyeCB = CreateFrame("CheckButton", "ARL_RepVioletEyeCB", MainPanel.filter_menu.rep.BC, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepVioletEyeCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Violet Eye"]), "violeteye", 15, 1, 0)
+	InitializeCheckButton(ARL_RepVioletEyeCB, MainPanel.filter_menu.rep.BC, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Violet Eye"]), "violeteye", 15, 1, 0)
 	ARL_RepVioletEyeCBText:SetText(BFAC["The Violet Eye"])
 	ARL_RepVioletEyeCBText:SetFont(narrowFont, 11)

@@ -4078,80 +4072,80 @@ function addon:InitializeFrame()
 				   end)

 	local ARL_WrathCommon1CB = CreateFrame("CheckButton", "ARL_WrathCommon1CB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WrathCommon1CB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"],  Vanguard_Expedition_FactionText), "wrathcommon1", 2, 1, 0)
+	InitializeCheckButton(ARL_WrathCommon1CB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"],  Vanguard_Expedition_FactionText), "wrathcommon1", 2, 1, 0)
 	ARL_WrathCommon1CBText:SetText(Vanguard_Expedition_FactionText)
 	ARL_WrathCommon1CBText:SetFont(narrowFont, 11)

 	local ARL_RepArgentCrusadeCB = CreateFrame("CheckButton", "ARL_RepArgentCrusadeCB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepArgentCrusadeCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["Argent Crusade"]), "argentcrusade", 3, 1, 0)
+	InitializeCheckButton(ARL_RepArgentCrusadeCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["Argent Crusade"]), "argentcrusade", 3, 1, 0)
 	ARL_RepArgentCrusadeCBText:SetText(BFAC["Argent Crusade"])
 	ARL_RepArgentCrusadeCBText:SetFont(narrowFont, 11)

 	local ARL_WrathCommon5CB = CreateFrame("CheckButton", "ARL_WrathCommon5CB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WrathCommon5CB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], Explorer_Hand_FactionText), "wrathcommon5", 4, 1, 0)
+	InitializeCheckButton(ARL_WrathCommon5CB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], Explorer_Hand_FactionText), "wrathcommon5", 4, 1, 0)
 	ARL_WrathCommon5CBText:SetText(Explorer_Hand_FactionText)
 	ARL_WrathCommon5CBText:SetFont(narrowFont, 11)
 	ARL_WrathCommon5CBText:SetText(addon:Grey(Explorer_Hand_FactionText))
 	ARL_WrathCommon5CB:Disable()

 	local ARL_RepFrenzyheartCB = CreateFrame("CheckButton", "ARL_RepFrenzyheartCB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepFrenzyheartCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["Frenzyheart Tribe"]), "frenzyheart", 5, 1, 0)
+	InitializeCheckButton(ARL_RepFrenzyheartCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["Frenzyheart Tribe"]), "frenzyheart", 5, 1, 0)
 	ARL_RepFrenzyheartCBText:SetText(BFAC["Frenzyheart Tribe"])
 	ARL_RepFrenzyheartCBText:SetFont(narrowFont, 11)

 	local ARL_RepKaluakCB = CreateFrame("CheckButton", "ARL_RepKaluakCB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepKaluakCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Kalu'ak"]), "kaluak", 6, 1, 0)
+	InitializeCheckButton(ARL_RepKaluakCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Kalu'ak"]), "kaluak", 6, 1, 0)
 	ARL_RepKaluakCBText:SetText(BFAC["The Kalu'ak"])
 	ARL_RepKaluakCBText:SetFont(narrowFont, 11)

 	local ARL_RepKirinTorCB = CreateFrame("CheckButton", "ARL_RepKirinTorCB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepKirinTorCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["Kirin Tor"]), "kirintor", 7, 1, 0)
+	InitializeCheckButton(ARL_RepKirinTorCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["Kirin Tor"]), "kirintor", 7, 1, 0)
 	ARL_RepKirinTorCBText:SetText(BFAC["Kirin Tor"])
 	ARL_RepKirinTorCBText:SetFont(narrowFont, 11)

 	local ARL_RepEbonBladeCB = CreateFrame("CheckButton", "ARL_RepEbonBladeCB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepEbonBladeCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["Knights of the Ebon Blade"]), "ebonblade", 8, 1, 0)
+	InitializeCheckButton(ARL_RepEbonBladeCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["Knights of the Ebon Blade"]), "ebonblade", 8, 1, 0)
 	ARL_RepEbonBladeCBText:SetText(BFAC["Knights of the Ebon Blade"])
 	ARL_RepEbonBladeCBText:SetFont(narrowFont, 11)

 	local ARL_RepOraclesCB = CreateFrame("CheckButton", "ARL_RepOraclesCB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepOraclesCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Oracles"]), "oracles", 9, 1, 0)
+	InitializeCheckButton(ARL_RepOraclesCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Oracles"]), "oracles", 9, 1, 0)
 	ARL_RepOraclesCBText:SetText(BFAC["The Oracles"])
 	ARL_RepOraclesCBText:SetFont(narrowFont, 11)

 	local ARL_WrathCommon2CB = CreateFrame("CheckButton", "ARL_WrathCommon2CB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WrathCommon2CB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], SilverConv_Sunreaver_FactionText), "wrathcommon2", 10, 1, 0)
+	InitializeCheckButton(ARL_WrathCommon2CB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], SilverConv_Sunreaver_FactionText), "wrathcommon2", 10, 1, 0)
 	ARL_WrathCommon2CBText:SetText(SilverConv_Sunreaver_FactionText)
 	ARL_WrathCommon2CBText:SetFont(narrowFont, 11)
 	ARL_WrathCommon2CBText:SetText(addon:Grey(SilverConv_Sunreaver_FactionText))
 	ARL_WrathCommon2CB:Disable()

 	local ARL_RepSonsOfHodirCB = CreateFrame("CheckButton", "ARL_RepSonsOfHodirCB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepSonsOfHodirCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Sons of Hodir"]), "sonsofhodir", 11, 1, 0)
+	InitializeCheckButton(ARL_RepSonsOfHodirCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Sons of Hodir"]), "sonsofhodir", 11, 1, 0)
 	ARL_RepSonsOfHodirCBText:SetText(BFAC["The Sons of Hodir"])
 	ARL_RepSonsOfHodirCBText:SetFont(narrowFont, 11)

 	local ARL_WrathCommon4CB = CreateFrame("CheckButton", "ARL_WrathCommon4CB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WrathCommon4CB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], Frostborn_Taunka_FactionText), "wrathcommon4", 12, 1, 0)
+	InitializeCheckButton(ARL_WrathCommon4CB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], Frostborn_Taunka_FactionText), "wrathcommon4", 12, 1, 0)
 	ARL_WrathCommon4CBText:SetText(Frostborn_Taunka_FactionText)
 	ARL_WrathCommon4CBText:SetFont(narrowFont, 11)
 	ARL_WrathCommon4CBText:SetText(addon:Grey(Frostborn_Taunka_FactionText))
 	ARL_WrathCommon4CB:Disable()

 	local ARL_WrathCommon3CB = CreateFrame("CheckButton", "ARL_WrathCommon3CB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_WrathCommon3CB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], Valiance_Warsong_FactionText), "wrathcommon3", 13, 1, 0)
+	InitializeCheckButton(ARL_WrathCommon3CB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], Valiance_Warsong_FactionText), "wrathcommon3", 13, 1, 0)
 	ARL_WrathCommon3CBText:SetText(Valiance_Warsong_FactionText)
 	ARL_WrathCommon3CBText:SetFont(narrowFont, 11)
 	ARL_WrathCommon3CBText:SetText(addon:Grey(Valiance_Warsong_FactionText))
 	ARL_WrathCommon3CB:Disable()

 	local ARL_RepWyrmrestCB = CreateFrame("CheckButton", "ARL_RepWyrmrestCB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepWyrmrestCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Wyrmrest Accord"]), "wyrmrest", 14, 1, 0)
+	InitializeCheckButton(ARL_RepWyrmrestCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Wyrmrest Accord"]), "wyrmrest", 14, 1, 0)
 	ARL_RepWyrmrestCBText:SetText(BFAC["The Wyrmrest Accord"])
 	ARL_RepWyrmrestCBText:SetFont(narrowFont, 11)

 	local ARL_AshenVerdictCB = CreateFrame("CheckButton", "ARL_RepAshenVerdictCB", MainPanel.filter_menu.rep.LK, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_RepAshenVerdictCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Ashen Verdict"]), "ashenverdict", 15, 1, 0)
+	InitializeCheckButton(ARL_RepAshenVerdictCB, MainPanel.filter_menu.rep.LK, sformat(L["SPECIFIC_REP_DESC"], BFAC["The Ashen Verdict"]), "ashenverdict", 15, 1, 0)
 	ARL_RepAshenVerdictCBText:SetText(BFAC["The Ashen Verdict"])
 	ARL_RepAshenVerdictCBText:SetFont(narrowFont, 11)

@@ -4175,7 +4169,7 @@ function addon:InitializeFrame()
 	ARL_MiscText:SetJustifyH("LEFT")

 	local ARL_IgnoreCB = CreateFrame("CheckButton", "ARL_IgnoreCB", MainPanel.filter_menu.misc, "UICheckButtonTemplate")
-	Generic_MakeCheckButton(ARL_IgnoreCB, MainPanel.filter_menu.misc, L["DISPLAY_EXCLUSION_DESC"], 0, 2, 1, 1)
+	InitializeCheckButton(ARL_IgnoreCB, MainPanel.filter_menu.misc, L["DISPLAY_EXCLUSION_DESC"], 0, 2, 1, 1)
 	ARL_IgnoreCBText:SetText(L["Display Exclusions"])

 	local ARL_MiscAltText = MainPanel.filter_menu.misc:CreateFontString("ARL_MiscAltBtn", "OVERLAY", "GameFontNormal")
@@ -4250,26 +4244,26 @@ function addon:InitializeFrame()
 		------------------------------------------------------------------------------------------------
 		-- Obtain Options
 		------------------------------------------------------------------------------------------------
-		["instance"]		= { cb = ARL_InstanceCB,		svroot = filterdb.obtain },
-		["raid"]		= { cb = ARL_RaidCB,			svroot = filterdb.obtain },
-		["quest"]		= { cb = ARL_QuestCB,			svroot = filterdb.obtain },
-		["seasonal"]		= { cb = ARL_SeasonalCB,		svroot = filterdb.obtain },
-		["trainer"]		= { cb = ARL_TrainerCB,			svroot = filterdb.obtain },
-		["vendor"]		= { cb = ARL_VendorCB,			svroot = filterdb.obtain },
-		["pvp"]			= { cb = ARL_PVPCB,			svroot = filterdb.obtain },
-		["discovery"]		= { cb = ARL_DiscoveryCB,		svroot = filterdb.obtain },
-		["worlddrop"]		= { cb = ARL_WorldDropCB,		svroot = filterdb.obtain },
-		["mobdrop"]		= { cb = ARL_MobDropCB,			svroot = filterdb.obtain },
-		["originalwow"]		= { cb = ARL_OriginalWoWCB,		svroot = filterdb.obtain },
-		["bc"]			= { cb = ARL_BCCB,			svroot = filterdb.obtain },
-		["wrath"]		= { cb = ARL_WrathCB,			svroot = filterdb.obtain },
+		["instance"]		= { cb = MainPanel.filter_menu.obtain.instance,			svroot = filterdb.obtain },
+		["raid"]		= { cb = MainPanel.filter_menu.obtain.raid,			svroot = filterdb.obtain },
+		["quest"]		= { cb = MainPanel.filter_menu.obtain.quest,			svroot = filterdb.obtain },
+		["seasonal"]		= { cb = MainPanel.filter_menu.obtain.seasonal,			svroot = filterdb.obtain },
+		["trainer"]		= { cb = MainPanel.filter_menu.obtain.trainer,			svroot = filterdb.obtain },
+		["vendor"]		= { cb = MainPanel.filter_menu.obtain.vendor,			svroot = filterdb.obtain },
+		["pvp"]			= { cb = MainPanel.filter_menu.obtain.pvp,			svroot = filterdb.obtain },
+		["discovery"]		= { cb = MainPanel.filter_menu.obtain.discovery,		svroot = filterdb.obtain },
+		["worlddrop"]		= { cb = MainPanel.filter_menu.obtain.worlddrop,		svroot = filterdb.obtain },
+		["mobdrop"]		= { cb = MainPanel.filter_menu.obtain.mobdrop,			svroot = filterdb.obtain },
+		["originalwow"]		= { cb = MainPanel.filter_menu.obtain.originalwow,		svroot = filterdb.obtain },
+		["bc"]			= { cb = MainPanel.filter_menu.obtain.bc,			svroot = filterdb.obtain },
+		["wrath"]		= { cb = MainPanel.filter_menu.obtain.wrath,			svroot = filterdb.obtain },
 		------------------------------------------------------------------------------------------------
 		-- Binding Options
 		------------------------------------------------------------------------------------------------
-		["itemboe"]		= { cb = ARL_iBoECB,			svroot = filterdb.binding },
-		["itembop"]		= { cb = ARL_iBoPCB,			svroot = filterdb.binding },
-		["recipeboe"]		= { cb = ARL_rBoECB,			svroot = filterdb.binding },
-		["recipebop"]		= { cb = ARL_rBoPCB,			svroot = filterdb.binding },
+		["itemboe"]		= { cb = MainPanel.filter_menu.binding.itemboe,			svroot = filterdb.binding },
+		["itembop"]		= { cb = MainPanel.filter_menu.binding.itembop,			svroot = filterdb.binding },
+		["recipeboe"]		= { cb = MainPanel.filter_menu.binding.recipeboe,		svroot = filterdb.binding },
+		["recipebop"]		= { cb = MainPanel.filter_menu.binding.recipebop,		svroot = filterdb.binding },
 		------------------------------------------------------------------------------------------------
 		-- Armor Options
 		------------------------------------------------------------------------------------------------