Quantcast

4.9.2

Steven Jackson [10-09-14 - 04:59]
4.9.2
Filename
Interface/AddOns/SVUI/SVUI.lua
Interface/AddOns/SVUI/libs/LibStub/LibStub.lua
Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/LibSuperVillain-1.0.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ActionPanel/oUF_ActionPanel.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Afflicted/oUF_Afflicted.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ArcaneCharge/oUF_ArcaneCharge.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraBars/oUF_AuraBars.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraWatch/oUF_AuraWatch.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_CombatFader/oUF_CombatFader.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Combatant/oUF_Combatant.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_DruidMana/oUF_DruidMana.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_DrunkenMaster/oUF_DrunkenMaster.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Experience/oUF_Experience.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Friendship/oUF_Friendship.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_HyperCombo/oUF_HyperCombo.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MainTank/oUF_MainTank.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MonkHarmony/oUF_MonkHarmony.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_PallyPower/oUF_PallyPower.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_PriestOrbs/oUF_PriestOrbs.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_RaidDebuffs/oUF_RaidDebuffs.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Reputation/oUF_Reputation.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Smooth/oUF_Smooth.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_TotemBars/oUF_TotemBars.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_WarlockShards/oUF_WarlockShards.lua
Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/castbar.lua
Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/healprediction.lua
Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/health.lua
Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/portraits.lua
Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/tags.lua
Interface/AddOns/SVUI/libs/oUF_Villain/oUF/ouf.lua
Interface/AddOns/SVUI/packages/actionbar/KeyBind.lua
Interface/AddOns/SVUI/packages/bag/SVBag.lua
Interface/AddOns/SVUI/packages/chat/SVChat.lua
Interface/AddOns/SVUI/packages/dock/SVDock.lua
Interface/AddOns/SVUI/packages/map/SVMap.lua
Interface/AddOns/SVUI/packages/override/SVOverride.lua
Interface/AddOns/SVUI/scripts/ego.lua
Interface/AddOns/SVUI/scripts/misc.lua
Interface/AddOns/SVUI/scripts/mounts.lua
Interface/AddOns/SVUI/scripts/spellbind.lua
Interface/AddOns/SVUI/system/media.lua
Interface/AddOns/SVUI/system/slash.lua
Interface/AddOns/SVUI_ChatOMatic/Loader.lua
Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.lua
Interface/AddOns/SVUI_ChatOMatic/components/answering_service.lua
Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.lua
Interface/AddOns/SVUI_ConfigOMatic/components/units/core.lua
Interface/AddOns/SVUI_CraftOMatic/Loader.lua
Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua
Interface/AddOns/SVUI_CraftOMatic/components/archaeology.lua
Interface/AddOns/SVUI_FightOMatic/Loader.lua
Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.lua
Interface/AddOns/SVUI_LogOMatic/Loader.lua
Interface/AddOns/SVUI_StyleOMatic/Loader.lua
Interface/AddOns/SVUI_TrackOMatic/Loader.lua
Interface/AddOns/SVUI_TrackOMatic/SVUI_TrackOMatic.lua
Interface/AddOns/SVUI_TrackOMatic/components/triangulate.lua
diff --git a/Interface/AddOns/SVUI/SVUI.lua b/Interface/AddOns/SVUI/SVUI.lua
index 1112741..d2ef83f 100644
--- a/Interface/AddOns/SVUI/SVUI.lua
+++ b/Interface/AddOns/SVUI/SVUI.lua
@@ -13,43 +13,69 @@ _____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
 S U P E R - V I L L A I N - U I   By: Munglunch                              #
 ############################################################################## ]]--

---[[  CONSTANTS ]]--
-
-BINDING_HEADER_SVUI = "Supervillain UI";
-BINDING_NAME_SVUI_MARKERS = "Raid Markers";
-BINDING_NAME_SVUI_DOCKS = "Toggle Docks";
-BINDING_NAME_SVUI_RIDE = "Let's Ride";
-
-SLASH_RELOADUI1 = "/rl"
-SLASH_RELOADUI2 = "/reloadui"
-SlashCmdList.RELOADUI = ReloadUI
-
 --[[ GLOBALS ]]--

 local _G = _G;
+--LUA
 local unpack        = _G.unpack;
 local select        = _G.select;
-local pairs         = _G.pairs;
+local assert        = _G.assert;
 local type          = _G.type;
+local error         = _G.error;
+local pcall         = _G.pcall;
+local print         = _G.print;
+local ipairs        = _G.ipairs;
+local pairs         = _G.pairs;
+local next          = _G.next;
 local rawset        = _G.rawset;
 local rawget        = _G.rawget;
-local tinsert       = _G.tinsert;
-local tremove       = _G.tremove;
 local tostring      = _G.tostring;
-local error         = _G.error;
+local tonumber      = _G.tonumber;
 local getmetatable  = _G.getmetatable;
 local setmetatable  = _G.setmetatable;
-local assert        = assert;
-local string    = _G.string;
-local math      = _G.math;
-local table     = _G.table;
---[[ STRING METHODS ]]--
-local upper = string.upper;
-local format, find, match, gsub = string.format, string.find, string.match, string.gsub;
---[[ MATH METHODS ]]--
-local floor = math.floor
---[[ TABLE METHODS ]]--
-local twipe, tsort, tconcat = table.wipe, table.sort, table.concat;
+--STRING
+local string        = _G.string;
+local upper         = string.upper;
+local format        = string.format;
+local find          = string.find;
+local match         = string.match;
+local gsub          = string.gsub;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+--TABLE
+local table         = _G.table;
+local tsort         = table.sort;
+local tconcat       = table.concat;
+local tinsert       = _G.tinsert;
+local tremove       = _G.tremove;
+local twipe         = _G.wipe;
+--BLIZZARD API
+local ReloadUI              = _G.ReloadUI;
+local GetLocale             = _G.GetLocale;
+local CreateFrame           = _G.CreateFrame;
+local IsAddOnLoaded         = _G.IsAddOnLoaded;
+local InCombatLockdown      = _G.InCombatLockdown;
+local GetAddOnInfo          = _G.GetAddOnInfo;
+local LoadAddOn             = _G.LoadAddOn;
+local SendAddonMessage      = _G.SendAddonMessage;
+local LibStub               = _G.LibStub;
+local GetAddOnMetadata      = _G.GetAddOnMetadata;
+local GetCVarBool           = _G.GetCVarBool;
+local GameTooltip           = _G.GameTooltip;
+local StaticPopup_Hide      = _G.StaticPopup_Hide;
+local ERR_NOT_IN_COMBAT     = _G.ERR_NOT_IN_COMBAT;
+
+--[[  CONSTANTS ]]--
+
+_G.BINDING_HEADER_SVUI = "Supervillain UI";
+_G.BINDING_NAME_SVUI_MARKERS = "Raid Markers";
+_G.BINDING_NAME_SVUI_DOCKS = "Toggle Docks";
+_G.BINDING_NAME_SVUI_RIDE = "Let's Ride";
+
+_G.SLASH_RELOADUI1 = "/rl"
+_G.SLASH_RELOADUI2 = "/reloadui"
+_G.SlashCmdList.RELOADUI = ReloadUI

 --[[ GET THE REGISTRY LIB ]]--

@@ -99,7 +125,8 @@ end

 --[[ BUILD CLASS COLOR GLOBAL ]]--

-SVUI_CLASS_COLORS = {};
+_G.SVUI_CLASS_COLORS = {};
+
 do
     local classes = {};
     local supercolors = {
diff --git a/Interface/AddOns/SVUI/libs/LibStub/LibStub.lua b/Interface/AddOns/SVUI/libs/LibStub/LibStub.lua
index 0a41ac0..ade16d8 100644
--- a/Interface/AddOns/SVUI/libs/LibStub/LibStub.lua
+++ b/Interface/AddOns/SVUI/libs/LibStub/LibStub.lua
@@ -1,5 +1,6 @@
 -- LibStub is a simple versioning stub meant for use in Libraries.  http://www.wowace.com/wiki/LibStub for more info
 -- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke
+local _G = getfenv(0)
 local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 2  -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS!
 local LibStub = _G[LIBSTUB_MAJOR]

diff --git a/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/LibSuperVillain-1.0.lua b/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/LibSuperVillain-1.0.lua
index 3c27e64..029260e 100644
--- a/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/LibSuperVillain-1.0.lua
+++ b/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/LibSuperVillain-1.0.lua
@@ -25,25 +25,25 @@ core add-ins functioning outside of the core object.
 --]]

 --[[ LOCALIZED GLOBALS ]]--
-local _G            = getfenv(0);
+--GLOBAL NAMESPACE
+local _G = _G;
 --LUA
 local unpack        = _G.unpack;
 local select        = _G.select;
-local pairs         = _G.pairs;
+local assert        = _G.assert;
 local type          = _G.type;
+local error         = _G.error;
+local pcall         = _G.pcall;
+local print         = _G.print;
+local ipairs        = _G.ipairs;
+local pairs         = _G.pairs;
+local next          = _G.next;
 local rawset        = _G.rawset;
 local rawget        = _G.rawget;
 local tostring      = _G.tostring;
-local error         = _G.error;
-local next          = _G.next;
-local pcall         = _G.pcall;
+local tonumber      = _G.tonumber;
 local getmetatable  = _G.getmetatable;
 local setmetatable  = _G.setmetatable;
-local assert        = _G.assert;
---BLIZZARD
-local tinsert       = _G.tinsert;
-local tremove       = _G.tremove;
-local twipe         = _G.wipe;
 --STRING
 local string        = _G.string;
 local upper         = string.upper;
@@ -58,12 +58,29 @@ local floor         = math.floor
 local table         = _G.table;
 local tsort         = table.sort;
 local tconcat       = table.concat;
+local tinsert       = _G.tinsert;
+local tremove       = _G.tremove;
+local twipe         = _G.wipe;
+--BLIZZARD API
+local ReloadUI              = _G.ReloadUI;
+local GetLocale             = _G.GetLocale;
+local CreateFrame           = _G.CreateFrame;
+local IsAddOnLoaded         = _G.IsAddOnLoaded;
+local GetNumAddOns          = _G.GetNumAddOns;
+local GetAddOnInfo          = _G.GetAddOnInfo;
+local LoadAddOn             = _G.LoadAddOn;
+local EnableAddOn           = _G.EnableAddOn;
+local GetSpecialization     = _G.GetSpecialization;
+local GetAddOnMetadata      = _G.GetAddOnMetadata;
+local IsAddOnLoadOnDemand   = _G.IsAddOnLoadOnDemand;
+

 --[[ LIB CONSTRUCT ]]--
 local lib = _G["LibSuperVillain"]
 if not lib then
-    _G["LibSuperVillain"] = {}
-    lib = _G["LibSuperVillain"]
+    local env = getfenv(0)
+    env["LibSuperVillain"] = {}
+    lib = env["LibSuperVillain"]
 end

 --[[ ADDON DATA ]]--
@@ -183,8 +200,9 @@ function string.link(this, prefix, text, color)
 end

 function string.explode(str, delim)
-   local res = { }
+   local res = {}
    local pattern = format("([^%s]+)%s()", delim, delim)
+   local line, pos
    while (true) do
       line, pos = match(str, pattern, pos)
       if line == nil then break end
@@ -246,14 +264,14 @@ function lib:Lang(locale, isDefault)
     if(not locale) then
         return self.Localization
     else
-        local gameLocale = GetLocale()
-        if gameLocale == "enGB" then gameLocale = "enUS" end
+        local GAME_LOCALE = GetLocale()
+        if GAME_LOCALE == "enGB" then GAME_LOCALE = "enUS" end

         activeLocale = self.Localization

         if isDefault then
             return defaultwrite
-        elseif(locale == GAME_LOCALE or locale == gameLocale) then
+        elseif(locale == GAME_LOCALE) then
             return metawrite
         end
     end
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ActionPanel/oUF_ActionPanel.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ActionPanel/oUF_ActionPanel.lua
index ac98666..df3321e 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ActionPanel/oUF_ActionPanel.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ActionPanel/oUF_ActionPanel.lua
@@ -1,3 +1,19 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local type         	= _G.type;
+--BLIZZARD API
+local UnitIsConnected 		= _G.UnitIsConnected;
+local UnitIsTappedByPlayer 	= _G.UnitIsTappedByPlayer;
+local UnitIsTapped       	= _G.UnitIsTapped;
+local UnitIsPlayer       	= _G.UnitIsPlayer;
+local UnitIsFriend       	= _G.UnitIsFriend;
+local UnitIsDeadOrGhost  	= _G.UnitIsDeadOrGhost;
+local UnitClassification 	= _G.UnitClassification;
+
 local parent, ns = ...
 local oUF = ns.oUF

diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Afflicted/oUF_Afflicted.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Afflicted/oUF_Afflicted.lua
index fdfaa1c..def4e56 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Afflicted/oUF_Afflicted.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Afflicted/oUF_Afflicted.lua
@@ -1,3 +1,17 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local type         	= _G.type;
+--BLIZZARD API
+local UnitAura       	 = _G.UnitAura;
+local UnitCanAssist      = _G.UnitCanAssist;
+local GetSpellInfo       = _G.GetSpellInfo;
+local GetSpecialization  = _G.GetSpecialization;
+local GetActiveSpecGroup = _G.GetActiveSpecGroup;
+
 local _, ns = ...
 local oUF = oUF or ns.oUF
 if not oUF then return end
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ArcaneCharge/oUF_ArcaneCharge.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ArcaneCharge/oUF_ArcaneCharge.lua
index 55456bd..3b99824 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ArcaneCharge/oUF_ArcaneCharge.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ArcaneCharge/oUF_ArcaneCharge.lua
@@ -1,3 +1,15 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local type         	= _G.type;
+--BLIZZARD API
+local GetTime       	= _G.GetTime;
+local GetSpecialization = _G.GetSpecialization;
+local UnitDebuff      	= _G.UnitDebuff;
+
 if select(2, UnitClass('player')) ~= "MAGE" then return end

 local _, ns = ...
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraBars/oUF_AuraBars.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraBars/oUF_AuraBars.lua
index 65c3e76..d4d8fe3 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraBars/oUF_AuraBars.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraBars/oUF_AuraBars.lua
@@ -1,18 +1,41 @@
 --[[ MODIFIED FOR SVUI BY MUNGLUNCH ]]--
+
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local type         	= _G.type;
+--STRING
+local string        = _G.string;
+local format        = string.format;
+--MATH
+local math          = _G.math;
+local floor         = math.floor;
+local huge          = math.huge;
+local min 			= math.min;
+--TABLE
+local table 		= _G.table;
+local tsort 		= table.sort;
+--BLIZZARD API
+local GetTime       = _G.GetTime;
+local CreateFrame   = _G.CreateFrame;
+local UnitAura      = _G.UnitAura;
+local UnitIsFriend  = _G.UnitIsFriend;
+local GameTooltip  	= _G.GameTooltip;
+local DebuffTypeColor  = _G.DebuffTypeColor;
+
 local _, ns = ...
 local oUF = oUF or ns.oUF
 assert(oUF, 'oUF_AuraBars was unable to locate oUF install.')

-local format = string.format
-local floor, huge, min = math.floor, math.huge, math.min
-local tsort = table.sort
-
 local function Round(number, decimalPlaces)
 	if decimalPlaces and decimalPlaces > 0 then
 		local mult = 10^decimalPlaces
-		return floor(number * mult + .5) / mult
+		return floor((number * mult) + .5) / mult
 	end
-	return floor(num + .5)
+	return floor(number + .5)
 end

 local DAY, HOUR, MINUTE = 86400, 3600, 60
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraWatch/oUF_AuraWatch.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraWatch/oUF_AuraWatch.lua
index b011926..d2bd366 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraWatch/oUF_AuraWatch.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraWatch/oUF_AuraWatch.lua
@@ -1,110 +1,28 @@
---[[------------------------------------------------------------------------------------------------------
-oUF_AuraWatch by Astromech
-Please leave comments, suggestions, and bug reports on this addon's WoWInterface page
-
-To setup, create a table named AuraWatch in your unit frame. There are several options
-you can specify, as explained below.
-
-	icons
-		Mandatory!
-		A table of frames to be used as icons. oUF_Aurawatch does not position
-		these frames, so you must do so yourself. Each icon needs a spellID entry,
-		which is the spell ID of the aura to watch. Table should be set up
-		such that values are icon frames, but the keys can be anything.
-
-		Note each icon can have several options set as well. See below.
-	strictMatching
-		Default: false
-		If true, AuraWatch will only show an icon if the specific aura
-		with the specified spell id is on the unit. If false, AuraWatch
-		will show the icon if any aura with the same name and icon texture
-		is on the unit. Strict matching can be undesireable because most
-		ranks of an aura have different spell ids.
-	missingAlpha
-		Default 0.75
-		The alpha value for icons of auras which have faded from the unit.
-	presentAlpha
-		Default 1
-		The alpha value for icons or auras present on the unit.
-	onlyShowMissing
-		Default false
-		If this is true, oUF_AW will hide icons if they are present on the unit.
-	onlyShowPresent
-		Default false
-		If this is true, oUF_AW will hide icons if they have expired from the unit.
-	hideCooldown
-		Default false
-		If this is true, oUF_AW will not create a cooldown frame
-	hideCount
-		Default false
-		If this is true, oUF_AW will not create a count fontstring
-	fromUnits
-		Default {["player"] = true, ["pet"] = true, ["vehicle"] = true}
-		A table of units from which auras can originate. Have the units be the keys
-		and "true" be the values.
-	anyUnit
-		Default false
-		Set to true for oUF_AW to to show an aura no matter what unit it
-		originates from. This will override any fromUnits setting.
-	PostCreateIcon
-		Default nil
-		A function to call when an icon is created to modify it, such as adding
-		a border or repositioning the count fontstring. Leave as nil to ignore.
-		The arguements are: AuraWatch table, icon, auraSpellID, auraName, unitFrame
-
-Below are options set on a per icon basis. Set these as fields in the icon frames.
-
-The following settings can be overridden from the AuraWatch table on a per-aura basis:
-	onlyShowMissing
-	onlyShowPresent
-	hideCooldown
-	hideCount
-	fromUnits
-	anyUnit
-
-The following settings are unique to icons:
-
-	spellID
-		Mandatory!
-		The spell id of the aura, as explained above.
-	icon
-		Default aura texture
-		A texture value for this icon.
-	overlay
-		Default Blizzard aura overlay
-		An overlay for the icon. This is not created if a custom icon texture is created.
-	count
-		Default A fontstring
-		An fontstring to show the stack count of an aura.
-
-Here is an example of how to set oUF_AW up:
-
-	local createAuraWatch = function(self, unit)
-		local auras = {}
-
-		-- A table of spellIDs to create icons for
-		-- To find spellIDs, look up a spell on www.wowhead.com and look at the URL
-		-- http://www.wowhead.com/?spell=SPELL_ID
-		local spellIDs = { ... }
-
-		auras.presentAlpha = 1
-		auras.missingAlpha = .7
-		auras.PostCreateIcon = myCustomIconSkinnerFunction
-		-- Set any other AuraWatch settings
-		auras.icons = {}
-		for i, sid in pairs(spellIDs) do
-			local icon = CreateFrame("Frame", nil, auras)
-			icon.spellID = sid
-			-- set the dimensions and positions
-			icon:SetWidth(24)
-			icon:SetHeight(24)
-			icon:SetPoint("BOTTOM", self, "BOTTOM", 0, 28 * i)
-			auras.icons[sid] = icon
-			-- Set any other AuraWatch icon settings
-		end
-		self.AuraWatch = auras
-	end
------------------------------------------------------------------------------------------------------------]]
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local tostring      = _G.tostring;
+local setmetatable  = _G.setmetatable;
+--STRING
+local string        = _G.string;
+local format        = string.format;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+local ceil          = math.ceil
+--BLIZZARD API
+local GetTime       	= _G.GetTime;
+local CreateFrame       = _G.CreateFrame;
+local UnitAura         	= _G.UnitAura;
+local GetSpellInfo      = _G.GetSpellInfo;
+local NumberFontNormal  = _G.NumberFontNormal;

 local _, ns = ...
 local oUF = oUF or ns.oUF
@@ -147,8 +65,9 @@ do
 	end
 end

-local day, hour, minute, second = 86400, 3600, 60, 1
-function formatTime(s)
+local day, hour, minute, second = 86400, 3600, 60, 1;
+
+local function formatTime(s)
 	if s >= day then
 		return format("%dd", ceil(s / hour))
 	elseif s >= hour then
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_CombatFader/oUF_CombatFader.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_CombatFader/oUF_CombatFader.lua
index 37dba30..2ed55b1 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_CombatFader/oUF_CombatFader.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_CombatFader/oUF_CombatFader.lua
@@ -1,3 +1,24 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local tostring      = _G.tostring;
+local type  		= _G.type;
+
+--BLIZZARD API
+local InCombatLockdown  = _G.InCombatLockdown;
+local UnitHealth        = _G.UnitHealth;
+local UnitExists        = _G.UnitExists;
+local UnitHealthMax     = _G.UnitHealthMax;
+local UnitCastingInfo   = _G.UnitCastingInfo;
+local UnitChannelInfo   = _G.UnitChannelInfo;
+
 local parent, ns = ...
 local oUF = ns.oUF
 local frames, allFrames = {}, {}
@@ -73,7 +94,7 @@ local Update = function(self, arg1, arg2)
 end

 local Enable = function(self, unit)
-	if(not CORE) then CORE = SVUI end
+	if(not CORE) then CORE = ns end

 	if self.CombatFade then
 		frames[self] = self.unit
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Combatant/oUF_Combatant.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Combatant/oUF_Combatant.lua
index 48cd364..f95e27d 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Combatant/oUF_Combatant.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Combatant/oUF_Combatant.lua
@@ -1,3 +1,36 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local tostring      = _G.tostring;
+local setmetatable  = _G.setmetatable;
+--STRING
+local string        = _G.string;
+local format        = string.format;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+local ceil          = math.ceil
+--BLIZZARD API
+local GetTime       			= _G.GetTime;
+local CreateFrame       		= _G.CreateFrame;
+local UnitIsEnemy         		= _G.UnitIsEnemy;
+local UnitGUID      			= _G.UnitGUID;
+local IsActiveBattlefieldArena  = _G.IsActiveBattlefieldArena;
+local UnitFactionGroup 			= _G.UnitFactionGroup;
+local GetNumArenaOpponentSpecs 	= _G.GetNumArenaOpponentSpecs;
+local GetArenaOpponentSpec      = _G.GetArenaOpponentSpec;
+local GetSpecializationInfoByID = _G.GetSpecializationInfoByID;
+local UnitName       			= _G.UnitName;
+local SendChatMessage  			= _G.SendChatMessage;
+local CooldownFrame_SetTimer 	= _G.CooldownFrame_SetTimer;
+
 local _, ns = ...
 local oUF = ns.oUF

@@ -61,7 +94,7 @@ local function LogUpdate(self, event, ...)
 	elseif(alert and event == "UNIT_SPELLCAST_SUCCEEDED") then
 		local unitID, spellName, _, _, spellID = ...
 		if UnitIsEnemy("player", unitID) and (spellID == 118358 or spellID == 104270 or spellName:find("Drink")) then
-			SendChatMessage(UnitName(unit)..L[" is drinking."], "RAID_WARNING")
+			SendChatMessage(("%s is drinking."):format(UnitName(self.unit)), "RAID_WARNING")
 		end
 	end
 end
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_DruidMana/oUF_DruidMana.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_DruidMana/oUF_DruidMana.lua
index f650376..51e925a 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_DruidMana/oUF_DruidMana.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_DruidMana/oUF_DruidMana.lua
@@ -1,3 +1,37 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local tostring      = _G.tostring;
+local type  		= _G.type;
+--STRING
+local string        = _G.string;
+local format        = string.format;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+local ceil          = math.ceil
+--TABLE
+local table         = _G.table;
+local wipe          = _G.wipe;
+--BLIZZARD API
+local BEAR_FORM       		= _G.BEAR_FORM;
+local CAT_FORM 				= _G.CAT_FORM;
+local SPELL_POWER_MANA      = _G.SPELL_POWER_MANA;
+local UnitClass         	= _G.UnitClass;
+local UnitPower         	= _G.UnitPower;
+local UnitReaction         	= _G.UnitReaction;
+local UnitPowerMax         	= _G.UnitPowerMax;
+local UnitIsPlayer      	= _G.UnitIsPlayer;
+local UnitPlayerControlled  = _G.UnitPlayerControlled;
+local GetShapeshiftFormID 	= _G.GetShapeshiftFormID;
+
 if(select(2, UnitClass('player')) ~= 'DRUID') then return end

 local _, ns = ...
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_DrunkenMaster/oUF_DrunkenMaster.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_DrunkenMaster/oUF_DrunkenMaster.lua
index d4b8950..eeb45e6 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_DrunkenMaster/oUF_DrunkenMaster.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_DrunkenMaster/oUF_DrunkenMaster.lua
@@ -1,3 +1,22 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local tostring      = _G.tostring;
+local type  		= _G.type;
+--BLIZZARD API
+local GetLocale 					= _G.GetLocale;
+local GetShapeshiftFormID 			= _G.GetShapeshiftFormID;
+local UnitAura         				= _G.UnitAura;
+local UnitHasVehiclePlayerFrameUI 	= _G.UnitHasVehiclePlayerFrameUI;
+local MonkStaggerBar 				= _G.MonkStaggerBar;
+
 if select(2, UnitClass('player')) ~= "MONK" then return end

 local parent, ns = ...
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Experience/oUF_Experience.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Experience/oUF_Experience.lua
index 2c5573a..9b00640 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Experience/oUF_Experience.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Experience/oUF_Experience.lua
@@ -1,3 +1,29 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local tostring      = _G.tostring;
+local type  		= _G.type;
+--STRING
+local string        = _G.string;
+local format        = string.format;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+--BLIZZARD API
+local UnitXP       		= _G.UnitXP;
+local UnitXPMax 		= _G.UnitXPMax;
+local GetXPExhaustion   = _G.GetXPExhaustion;
+local UnitLevel         = _G.UnitLevel;
+local UnitHasVehicleUI  = _G.UnitHasVehicleUI;
+local MAX_PLAYER_LEVEL  = _G.MAX_PLAYER_LEVEL;
+
 local __, ns = ...
 local oUF = ns.oUF or oUF
 assert(oUF, 'oUF Experience was unable to locate oUF install')
@@ -10,7 +36,7 @@ for tag, func in pairs({
 		return UnitXPMax(unit)
 	end,
 	['perxp'] = function(unit)
-		return math.floor(UnitXP(unit) / UnitXPMax(unit) * 100 + 0.5)
+		return floor(UnitXP(unit) / UnitXPMax(unit) * 100 + 0.5)
 	end,
 	['currested'] = function()
 		return GetXPExhaustion()
@@ -18,7 +44,7 @@ for tag, func in pairs({
 	['perrested'] = function(unit)
 		local rested = GetXPExhaustion()
 		if(rested and rested > 0) then
-			return math.floor(rested / UnitXPMax(unit) * 100 + 0.5)
+			return floor(rested / UnitXPMax(unit) * 100 + 0.5)
 		end
 	end,
 }) do
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Friendship/oUF_Friendship.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Friendship/oUF_Friendship.lua
index f381dd2..b99ffcb 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Friendship/oUF_Friendship.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Friendship/oUF_Friendship.lua
@@ -1,3 +1,33 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local tostring      = _G.tostring;
+local type  		= _G.type;
+--STRING
+local string        = _G.string;
+local format        = string.format;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+local ceil          = math.ceil
+--TABLE
+local table         = _G.table;
+local wipe          = _G.wipe;
+--BLIZZARD API
+local UnitExists       			= _G.UnitExists;
+local UnitIsPlayer 				= _G.UnitIsPlayer;
+local UnitName         			= _G.UnitName;
+local GetFriendshipReputation	= _G.GetFriendshipReputation;
+local GameTooltip         		= _G.GameTooltip;
+local GameTooltip_Hide      	= _G.GameTooltip_Hide;
+
 local _, ns = ...
 local oUF = ns.oUF or oUF
 assert(oUF, 'oUF Friendship was unable to locate oUF install')
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_HyperCombo/oUF_HyperCombo.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_HyperCombo/oUF_HyperCombo.lua
index 696ed53..3ee208e 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_HyperCombo/oUF_HyperCombo.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_HyperCombo/oUF_HyperCombo.lua
@@ -1,11 +1,41 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local tostring      = _G.tostring;
+local type  		= _G.type;
+--STRING
+local string        = _G.string;
+local format        = string.format;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+local ceil          = math.ceil
+--TABLE
+local table         = _G.table;
+local wipe          = _G.wipe;
+--BLIZZARD API
+local GetShapeshiftForm         = _G.GetShapeshiftForm;
+local UnitHasVehicleUI 			= _G.UnitHasVehicleUI;
+local UnitBuff         			= _G.UnitBuff;
+local CombatText_AddMessage 	= _G.CombatText_AddMessage;
+local CombatText_StandardScroll = _G.CombatText_StandardScroll;
+local MAX_COMBO_POINTS      	= _G.MAX_COMBO_POINTS;
+local GetSpellInfo      		= _G.GetSpellInfo;
+local GetComboPoints  			= _G.GetComboPoints;
+
 local class = select(2, UnitClass("player"));
 if(class ~= "ROGUE" and class ~= "DRUID") then return end

 local parent, ns = ...
 local oUF = ns.oUF

-local GetComboPoints = GetComboPoints
-local MAX_COMBO_POINTS = MAX_COMBO_POINTS
 local GUILE1 = GetSpellInfo(84745)
 local GUILE2 = GetSpellInfo(84746)
 local GUILE3 = GetSpellInfo(84747)
@@ -131,7 +161,7 @@ local Update = function(self, event, unit)
 	end

 	if(bar.PostUpdate) then
-		return bar:PostUpdate(cp)
+		return bar:PostUpdate(current)
 	end
 end

diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MainTank/oUF_MainTank.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MainTank/oUF_MainTank.lua
index 51293af..9e2c149 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MainTank/oUF_MainTank.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MainTank/oUF_MainTank.lua
@@ -1,3 +1,14 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+--BLIZZARD API
+local UnitInRaid       		= _G.UnitInRaid;
+local GetRaidRosterInfo 	= _G.GetRaidRosterInfo;
+local UnitHasVehicleUI      = _G.UnitHasVehicleUI;
+
 local parent, ns = ...
 local oUF = ns.oUF

diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MonkHarmony/oUF_MonkHarmony.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MonkHarmony/oUF_MonkHarmony.lua
index f5874c6..cc4c8d9 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MonkHarmony/oUF_MonkHarmony.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MonkHarmony/oUF_MonkHarmony.lua
@@ -1,3 +1,14 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+--BLIZZARD API
+local UnitPower     	= _G.UnitPower;
+local UnitPowerMax 		= _G.UnitPowerMax;
+local UnitHasVehicleUI 	= _G.UnitHasVehicleUI;
+
 if select(2, UnitClass('player')) ~= "MONK" then return end

 local _, ns = ...
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_PallyPower/oUF_PallyPower.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_PallyPower/oUF_PallyPower.lua
index f6867c2..6b731b1 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_PallyPower/oUF_PallyPower.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_PallyPower/oUF_PallyPower.lua
@@ -1,3 +1,14 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+--BLIZZARD API
+local UnitPower     	= _G.UnitPower;
+local UnitPowerMax 		= _G.UnitPowerMax;
+local UnitHasVehicleUI 	= _G.UnitHasVehicleUI;
+
 if(select(2, UnitClass('player')) ~= 'PALADIN') then return end

 local parent, ns = ...
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_PriestOrbs/oUF_PriestOrbs.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_PriestOrbs/oUF_PriestOrbs.lua
index 677639e..bff2e0c 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_PriestOrbs/oUF_PriestOrbs.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_PriestOrbs/oUF_PriestOrbs.lua
@@ -1,3 +1,19 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+--BLIZZARD API
+local UnitPower     	= _G.UnitPower;
+local UnitPowerMax 		= _G.UnitPowerMax;
+local UnitHasVehicleUI 	= _G.UnitHasVehicleUI;
+local GetSpecialization = _G.GetSpecialization;
+local UnitLevel 		= _G.UnitLevel;
+local UnitBuff 			= _G.UnitBuff;
+
+local SPELL_POWER_SHADOW_ORBS = _G.SPELL_POWER_SHADOW_ORBS;
+
 if select(2, UnitClass('player')) ~= "PRIEST" then return end

 local _, ns = ...
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_RaidDebuffs/oUF_RaidDebuffs.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_RaidDebuffs/oUF_RaidDebuffs.lua
index 4564487..6b84d1e 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_RaidDebuffs/oUF_RaidDebuffs.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_RaidDebuffs/oUF_RaidDebuffs.lua
@@ -1,3 +1,34 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local tostring      = _G.tostring;
+local type  		= _G.type;
+--STRING
+local string        = _G.string;
+local format        = string.format;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+local ceil          = math.ceil
+--TABLE
+local table         = _G.table;
+local wipe          = _G.wipe;
+--BLIZZARD API
+local GetTime       		= _G.GetTime;
+local GetSpecialization 	= _G.GetSpecialization;
+local UnitAura         		= _G.UnitAura;
+local UnitIsCharmed         = _G.UnitIsCharmed;
+local UnitCanAttack         = _G.UnitCanAttack;
+local GetSpellInfo      	= _G.GetSpellInfo;
+local GetActiveSpecGroup  	= _G.GetActiveSpecGroup;
+
 local _, ns = ...
 local oUF = ns.oUF or oUF

@@ -6,10 +37,7 @@ local CleanseName = GetSpellInfo(4987)

 local addon = {}
 ns.oUF_RaidDebuffs = addon
-oUF_RaidDebuffs = ns.oUF_RaidDebuffs
-if not _G.oUF_RaidDebuffs then
-	_G.oUF_RaidDebuffs = addon
-end
+_G.oUF_RaidDebuffs = ns.oUF_RaidDebuffs

 local debuff_data = {}
 addon.DebuffData = debuff_data
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Reputation/oUF_Reputation.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Reputation/oUF_Reputation.lua
index cbb3fa1..e06e668 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Reputation/oUF_Reputation.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Reputation/oUF_Reputation.lua
@@ -1,3 +1,30 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local tostring      = _G.tostring;
+local type  		= _G.type;
+--STRING
+local string        = _G.string;
+local format        = string.format;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+--BLIZZARD API
+local UnitXP       		= _G.UnitXP;
+local UnitXPMax 		= _G.UnitXPMax;
+local GetXPExhaustion   = _G.GetXPExhaustion;
+local UnitSex         	= _G.UnitSex;
+local GetText  			= _G.GetText;
+local GetWatchedFactionInfo = _G.GetWatchedFactionInfo;
+local FACTION_BAR_COLORS  	= _G.FACTION_BAR_COLORS;
+
 local __, ns = ...
 local oUF = ns.oUF or oUF
 assert(oUF, 'oUF Reputation was unable to locate oUF install')
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Smooth/oUF_Smooth.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Smooth/oUF_Smooth.lua
index 67b59d0..6835963 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Smooth/oUF_Smooth.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Smooth/oUF_Smooth.lua
@@ -1,3 +1,17 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local pairs         = _G.pairs;
+local type  		= _G.type;
+--MATH
+local math          = _G.math;
+local abs         	= math.abs;
+--BLIZZARD API
+local GetFramerate      = _G.GetFramerate;
+
 local _, ns = ...
 local oUF = ns.oUF or oUF
 if not oUF then return end
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_TotemBars/oUF_TotemBars.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_TotemBars/oUF_TotemBars.lua
index ccf7d29..81a911a 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_TotemBars/oUF_TotemBars.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_TotemBars/oUF_TotemBars.lua
@@ -1,3 +1,13 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+--BLIZZARD API
+local GameTooltip   = _G.GameTooltip;
+local MAX_TOTEMS 	= _G.MAX_TOTEMS;
+local TotemFrame 	= _G.TotemFrame;
+
 local class = select(2, UnitClass('player'))
 if(class ~= 'SHAMAN') then return end

@@ -51,7 +61,7 @@ local Update = function(self, event)
 			if(timeLeft > 0) then
 				totem.expirationTime = (start + duration)
 				totem:SetValue(timeLeft)
-				totem:SetScript('OnUpdate', UpdateBar)
+				totem:SetScript('OnUpdate', Totem_OnUpdate)
 			else
 				totem:SetValue(0)
 				totem:SetScript('OnUpdate', nil)
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_WarlockShards/oUF_WarlockShards.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_WarlockShards/oUF_WarlockShards.lua
index fd6ac91..a40210b 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_WarlockShards/oUF_WarlockShards.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_WarlockShards/oUF_WarlockShards.lua
@@ -1,3 +1,18 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+--BLIZZARD API
+local UnitPower     	= _G.UnitPower;
+local UnitPowerMax 		= _G.UnitPowerMax;
+local UnitHasVehicleUI 	= _G.UnitHasVehicleUI;
+local GetSpecialization = _G.GetSpecialization;
+
 if select(2, UnitClass('player')) ~= "WARLOCK" then return end

 local _, ns = ...
@@ -122,7 +137,7 @@ local function Enable(self, unit)

 		for i = 1, 4 do
 			if not wsb[i]:GetStatusBarTexture() then
-				Point:SetStatusBarTexture([=[Interface\TargetingFrame\UI-StatusBar]=])
+				wsb[i]:SetStatusBarTexture([=[Interface\TargetingFrame\UI-StatusBar]=])
 			end

 			wsb[i]:SetFrameLevel(wsb:GetFrameLevel() + 1)
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/castbar.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/castbar.lua
index bf553fb..e4cc177 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/castbar.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/castbar.lua
@@ -3,6 +3,35 @@
 	THIS FILE HEAVILY MODIFIED FOR USE WITH SUPERVILLAIN UI

 ]]
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local tostring      = _G.tostring;
+local setmetatable  = _G.setmetatable;
+--STRING
+local string        = _G.string;
+local format        = string.format;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+local ceil          = math.ceil
+--BLIZZARD API
+local GetTime       	= _G.GetTime;
+local CreateFrame       = _G.CreateFrame;
+local GetNetStats       = _G.GetNetStats;
+local UnitCastingInfo   = _G.UnitCastingInfo;
+local UnitChannelInfo   = _G.UnitChannelInfo;
+local GetTradeskillRepeatCount  = _G.GetTradeskillRepeatCount;
+local CastingBarFrame   	= _G.CastingBarFrame;
+local PetCastingBarFrame   	= _G.PetCastingBarFrame;
+
 local parent, ns = ...
 local oUF = ns.oUF

diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/healprediction.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/healprediction.lua
index a1f5a94..d730423 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/healprediction.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/healprediction.lua
@@ -1,3 +1,19 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+--MATH
+local math          = _G.math;
+local max         	= math.max
+--BLIZZARD API
+local UnitHealth     			= _G.UnitHealth;
+local UnitHealthMax     		= _G.UnitHealthMax;
+local UnitGetTotalHealAbsorbs	= _G.UnitGetTotalHealAbsorbs;
+local UnitGetTotalAbsorbs 		= _G.UnitGetTotalAbsorbs;
+local UnitGetIncomingHeals 		= _G.UnitGetIncomingHeals;
+
 local _, ns = ...
 local oUF = ns.oUF

diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/health.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/health.lua
index 3019292..6cdf103 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/health.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/health.lua
@@ -3,10 +3,37 @@
 	THIS FILE HEAVILY MODIFIED FOR USE WITH SUPERVILLAIN UI

 ]]
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+--MATH
+local math          = _G.math;
+local max         	= math.max
+local random 		= math.random
+--BLIZZARD API
+local UnitClass     			= _G.UnitClass;
+local UnitReaction     			= _G.UnitReaction;
+local UnitIsEnemy     			= _G.UnitIsEnemy;
+local GetCVarBool     			= _G.GetCVarBool;
+local SetCVar     				= _G.SetCVar;
+local UnitHealth     			= _G.UnitHealth;
+local UnitHealthMax     		= _G.UnitHealthMax;
+local UnitIsConnected			= _G.UnitIsConnected;
+local UnitIsDeadOrGhost 		= _G.UnitIsDeadOrGhost;
+local UnitIsPlayer 				= _G.UnitIsPlayer;
+local UnitPlayerControlled 		= _G.UnitPlayerControlled;
+local UnitIsTapped 				= _G.UnitIsTapped;
+local UnitIsTappedByPlayer 		= _G.UnitIsTappedByPlayer;
+local UnitIsTappedByAllThreatList = _G.UnitIsTappedByAllThreatList;
+
+
 local parent, ns = ...
 local oUF = ns.oUF
 local updateFrequentUpdates
-local random = math.random
+
 oUF.colors.health = {49/255, 207/255, 37/255}

 local Update = function(self, event, unit)
@@ -155,7 +182,7 @@ local CustomUpdate = function(self, event, unit)
 		health:SetStatusBarColor(0.6,0.4,1,0.5)
 		health.animation[1]:SetVertexColor(0.8,0.3,1,0.4)
 	elseif(health.colorOverlay) then
-		local t = oUF_Villain.colors.health
+		local t = oUF.colors.health
 		health:SetStatusBarColor(t[1], t[2], t[3], 0.9)
 	else
 		health:SetStatusBarColor(1, 0.25 * mu, 0, 0.85)
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/portraits.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/portraits.lua
index 66b810b..53f9bbb 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/portraits.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/portraits.lua
@@ -3,6 +3,23 @@
 	THIS FILE HEAVILY MODIFIED FOR USE WITH SUPERVILLAIN UI

 ]]
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+--BLIZZARD API
+local UnitClass     			= _G.UnitClass;
+local UnitReaction     			= _G.UnitReaction;
+local UnitGUID     				= _G.UnitGUID;
+local UnitIsUnit     			= _G.UnitIsUnit;
+local UnitExists     			= _G.UnitExists;
+local UnitIsVisible     		= _G.UnitIsVisible;
+local UnitIsConnected			= _G.UnitIsConnected;
+local UnitIsPlayer 				= _G.UnitIsPlayer;
+local SetPortraitTexture 		= _G.SetPortraitTexture;
+
 local parent, ns = ...
 local oUF = ns.oUF

diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/tags.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/tags.lua
index c7b6304..2e38ccc 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/tags.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/tags.lua
@@ -1,6 +1,23 @@
 --[[
 -- Credits: Vika, Cladhaire, Tekkub
 ]]
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local error         = _G.error;
+local print         = _G.print;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local rawset      	= _G.rawset;
+local type  		= _G.type;
+
+--BLIZZARD API
+local CreateFrame   = _G.CreateFrame;
+local UnitExists 	= _G.UnitExists;
+

 local parent, ns = ...
 local oUF = ns.oUF
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/ouf.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/ouf.lua
index e25715e..5da9ccd 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/ouf.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/ouf.lua
@@ -1,3 +1,12 @@
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local type          = _G.type;
+local next          = _G.next;
+
 local parent, ns = ...
 local global = GetAddOnMetadata(parent, 'X-oUF')
 local _VERSION = GetAddOnMetadata(parent, 'version')
diff --git a/Interface/AddOns/SVUI/packages/actionbar/KeyBind.lua b/Interface/AddOns/SVUI/packages/actionbar/KeyBind.lua
index a37c248..0db4ded 100644
--- a/Interface/AddOns/SVUI/packages/actionbar/KeyBind.lua
+++ b/Interface/AddOns/SVUI/packages/actionbar/KeyBind.lua
@@ -204,7 +204,7 @@ function MOD:ToggleKeyBindingMode(deactivate, saveRequested)
   end
 end

-blockedButtons = { LSHIFT = true, RSHIFT = true, LCTRL = true, RCTRL = true, LALT = true, RALT = true, UNKNOWN = true, LeftButton = true}
+local blockedButtons = { LSHIFT = true, RSHIFT = true, LCTRL = true, RCTRL = true, LALT = true, RALT = true, UNKNOWN = true, LeftButton = true}

 --[[ HANDLERS ]]--
 local tipTimeLapse = 0;
@@ -415,7 +415,7 @@ function MOD:LoadKeyBinder()
   Binder:EnableKeyboard(true)
   Binder:EnableMouseWheel(true)
   Binder.texture = Binder:CreateTexture()
-  Binder.texture:SetAllPoints(a)
+  Binder.texture:SetAllPoints(Binder)
   Binder.texture:SetTexture(0, 0, 0, .25)
   Binder:Hide()

diff --git a/Interface/AddOns/SVUI/packages/bag/SVBag.lua b/Interface/AddOns/SVUI/packages/bag/SVBag.lua
index f46e5b9..844a7e1 100644
--- a/Interface/AddOns/SVUI/packages/bag/SVBag.lua
+++ b/Interface/AddOns/SVUI/packages/bag/SVBag.lua
@@ -221,6 +221,7 @@ local SlotUpdate = function(self, slotID)

 	local texture, count, locked, rarity = GetContainerItemInfo(bag, slotID);
 	local start, duration, enable = GetContainerItemCooldown(bag, slotID);
+	local itemLink = GetContainerItemLink(bag, slotID);

 	CooldownFrame_SetTimer(slot.cooldown, start, duration, enable);

@@ -234,8 +235,9 @@ local SlotUpdate = function(self, slotID)
 		local r, g, b = bagType[1], bagType[2], bagType[3];
 		slot:SetBackdropColor(r, g, b, 0.5)
 		slot:SetBackdropBorderColor(r, g, b, 1)
-	elseif(rarity) then
-		if(rarity > 1) then
+	elseif(itemLink) then
+		local rarity = select(3, GetItemInfo(itemLink))
+		if(rarity and rarity > 1) then
 			local r, g, b = GetItemQualityColor(rarity)
 			slot:SetBackdropBorderColor(r, g, b)
 		else
@@ -518,7 +520,11 @@ local ContainerFrame_UpdateLayout = function(self)

 					lastButton = slot;
 				end
-			else
+			else
+				if(menu[i] and menu[i].GetInventorySlot) then
+					BankFrameItemButton_Update(menu[i])
+					BankFrameItemButton_UpdateLocked(menu[i])
+				end
 				for i = 1, MAX_CONTAINER_ITEMS do
 					if(bag[i]) then
 						bag[i]:Hide();
diff --git a/Interface/AddOns/SVUI/packages/chat/SVChat.lua b/Interface/AddOns/SVUI/packages/chat/SVChat.lua
index bb31726..846a5cb 100644
--- a/Interface/AddOns/SVUI/packages/chat/SVChat.lua
+++ b/Interface/AddOns/SVUI/packages/chat/SVChat.lua
@@ -16,19 +16,52 @@ S U P E R - V I L L A I N - U I   By: Munglunch                              #
 LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--
---[[ GLOBALS ]]--
+--GLOBAL NAMESPACE
 local _G = _G;
-local unpack    = _G.unpack;
-local select    = _G.select;
-local pairs     = _G.pairs;
-local tonumber  = _G.tonumber;
-local string    = _G.string;
-local table     = _G.table;
---[[ STRING METHODS ]]--
-local find, format, len, upper = string.find, string.format, string.len, string.upper;
-local match, sub, gsub = string.match, string.sub, string.gsub;
---[[ TABLE METHODS ]]--
-local twipe = table.wipe;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local type          = _G.type;
+local error         = _G.error;
+local pcall         = _G.pcall;
+local print         = _G.print;
+local ipairs        = _G.ipairs;
+local pairs         = _G.pairs;
+local next          = _G.next;
+local rawset        = _G.rawset;
+local rawget        = _G.rawget;
+local tostring      = _G.tostring;
+local tonumber      = _G.tonumber;
+local getmetatable  = _G.getmetatable;
+local setmetatable  = _G.setmetatable;
+--STRING
+local string        = _G.string;
+local upper         = string.upper;
+local format        = string.format;
+local find          = string.find;
+local match         = string.match;
+local gsub          = string.gsub;
+local len          	= string.len;
+local sub          	= string.sub;
+--MATH
+local math          = _G.math;
+local floor         = math.floor
+--TABLE
+local table         = _G.table;
+local tsort         = table.sort;
+local tconcat       = table.concat;
+local tinsert       = _G.tinsert;
+local tremove       = _G.tremove;
+local twipe         = _G.wipe;
+--BLIZZARD API
+local time 					= _G.time;
+local difftime 				= _G.difftime;
+local BetterDate 			= _G.BetterDate;
+local ReloadUI              = _G.ReloadUI;
+local UnitName   			= _G.UnitName;
+local IsInGroup             = _G.IsInGroup;
+local CreateFrame           = _G.CreateFrame;
 --[[
 ##########################################################
 GET ADDON DATA
@@ -83,25 +116,26 @@ local THROTTLE_CACHE = {}
 INIT SETTINGS
 ##########################################################
 ]]--
-CHAT_GUILD_GET = "|Hchannel:GUILD|hG|h %s ";
-CHAT_OFFICER_GET = "|Hchannel:OFFICER|hO|h %s ";
-CHAT_RAID_GET = "|Hchannel:RAID|hR|h %s ";
-CHAT_RAID_WARNING_GET = "RW %s ";
-CHAT_RAID_LEADER_GET = "|Hchannel:RAID|hRL|h %s ";
-CHAT_PARTY_GET = "|Hchannel:PARTY|hP|h %s ";
-CHAT_PARTY_LEADER_GET = "|Hchannel:PARTY|hPL|h %s ";
-CHAT_PARTY_GUIDE_GET = "|Hchannel:PARTY|hPG|h %s ";
-CHAT_INSTANCE_CHAT_GET = "|Hchannel:Battleground|hI.|h %s: ";
-CHAT_INSTANCE_CHAT_LEADER_GET = "|Hchannel:Battleground|hIL.|h %s: ";
-CHAT_WHISPER_INFORM_GET = "to %s ";
-CHAT_WHISPER_GET = "from %s ";
-CHAT_BN_WHISPER_INFORM_GET = "to %s ";
-CHAT_BN_WHISPER_GET = "from %s ";
-CHAT_SAY_GET = "%s ";
-CHAT_YELL_GET = "%s ";
-CHAT_FLAG_AFK = "[AFK] ";
-CHAT_FLAG_DND = "[DND] ";
-CHAT_FLAG_GM = "[GM] ";
+local CHAT_FRAMES = _G.CHAT_FRAMES
+_G.CHAT_GUILD_GET = "|Hchannel:GUILD|hG|h %s ";
+_G.CHAT_OFFICER_GET = "|Hchannel:OFFICER|hO|h %s ";
+_G.CHAT_RAID_GET = "|Hchannel:RAID|hR|h %s ";
+_G.CHAT_RAID_WARNING_GET = "RW %s ";
+_G.CHAT_RAID_LEADER_GET = "|Hchannel:RAID|hRL|h %s ";
+_G.CHAT_PARTY_GET = "|Hchannel:PARTY|hP|h %s ";
+_G.CHAT_PARTY_LEADER_GET = "|Hchannel:PARTY|hPL|h %s ";
+_G.CHAT_PARTY_GUIDE_GET = "|Hchannel:PARTY|hPG|h %s ";
+_G.CHAT_INSTANCE_CHAT_GET = "|Hchannel:Battleground|hI.|h %s: ";
+_G.CHAT_INSTANCE_CHAT_LEADER_GET = "|Hchannel:Battleground|hIL.|h %s: ";
+_G.CHAT_WHISPER_INFORM_GET = "to %s ";
+_G.CHAT_WHISPER_GET = "from %s ";
+_G.CHAT_BN_WHISPER_INFORM_GET = "to %s ";
+_G.CHAT_BN_WHISPER_GET = "from %s ";
+_G.CHAT_SAY_GET = "%s ";
+_G.CHAT_YELL_GET = "%s ";
+_G.CHAT_FLAG_AFK = "[AFK] ";
+_G.CHAT_FLAG_DND = "[DND] ";
+_G.CHAT_FLAG_GM = "[GM] ";
 --[[
 ##########################################################
 LOCAL FUNCTIONS
@@ -260,7 +294,7 @@ do
 	local ChatEventFilter = function(self, event, message, author, ...)
 		local filter = nil
 		if locale == 'enUS' or locale == 'enGB' then
-			if strfind(message, '[\227-\237]') then
+			if message:find('[\227-\237]') then
 				filter = true
 			end
 		end
diff --git a/Interface/AddOns/SVUI/packages/dock/SVDock.lua b/Interface/AddOns/SVUI/packages/dock/SVDock.lua
index 3f38d15..b91bf9b 100644
--- a/Interface/AddOns/SVUI/packages/dock/SVDock.lua
+++ b/Interface/AddOns/SVUI/packages/dock/SVDock.lua
@@ -18,16 +18,48 @@ LOCALIZED LUA FUNCTIONS
 ]]--
 --[[ GLOBALS ]]--
 local _G = _G;
-local unpack    = _G.unpack;
-local select    = _G.select;
-local pairs     = _G.pairs;
-local type      = _G.type;
-local math      = _G.math;
-local table 	= _G.table;
---[[ MATH METHODS ]]--
-local min = math.min;
-local tinsert, twipe, pairs, ipairs, unpack, pcall, select = tinsert, table.wipe, pairs, ipairs, unpack, pcall, select;
-local format, gsub, strfind, strmatch, tonumber = format, gsub, strfind, strmatch, tonumber;
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+local type          = _G.type;
+local error         = _G.error;
+local pcall         = _G.pcall;
+local print         = _G.print;
+local ipairs        = _G.ipairs;
+local pairs         = _G.pairs;
+local tostring      = _G.tostring;
+local tonumber      = _G.tonumber;
+
+--STRING
+local string        = _G.string;
+local upper         = string.upper;
+local format        = string.format;
+local find          = string.find;
+local match         = string.match;
+local gsub          = string.gsub;
+--TABLE
+local table 		= _G.table;
+local tinsert       = _G.tinsert;
+local tremove       = _G.tremove;
+local twipe 		= _G.wipe;
+--MATH
+local math      	= _G.math;
+local min 			= math.min;
+local floor         = math.floor
+local ceil          = math.ceil
+--BLIZZARD API
+local GameTooltip          	= _G.GameTooltip;
+local InCombatLockdown     	= _G.InCombatLockdown;
+local CreateFrame          	= _G.CreateFrame;
+local GetTime         		= _G.GetTime;
+local GetItemCooldown       = _G.GetItemCooldown;
+local GetItemCount         	= _G.GetItemCount;
+local GetItemInfo          	= _G.GetItemInfo;
+local GetSpellInfo         	= _G.GetSpellInfo;
+local IsSpellKnown         	= _G.IsSpellKnown;
+local GetProfessions       	= _G.GetProfessions;
+local GetProfessionInfo    	= _G.GetProfessionInfo;
+local hooksecurefunc     	= _G.hooksecurefunc;
 --[[
 ##########################################################
 GET ADDON DATA
@@ -87,6 +119,14 @@ local function CycleDocklets()
 	end
 end

+local function GetDefaultWindow()
+	local window = DEFAULT_DOCKLET
+	if window and _G[window] then
+		SuperDockWindowRight.FrameName = window
+		SuperDockWindowRight:Show()
+	end
+end
+
 local AlertActivate = function(self, child)
 	local size = SV.db.SVDock.buttonSize or 22;
 	self:Height(size)
@@ -306,7 +346,7 @@ SV.CycleDocklets = CycleDocklets
 CORE FUNCTIONS
 ##########################################################
 ]]--
-function HideSuperDocks()
+_G.HideSuperDocks = function()
 	ToggleDocks(LeftDockToggleButton)
 end
 --[[
@@ -314,14 +354,6 @@ end
 DOCKLET HELPERS
 ##########################################################
 ]]--
-local function GetDefaultWindow()
-	local window = DEFAULT_DOCKLET
-	if window and _G[window] then
-		SuperDockWindowRight.FrameName = window
-		SuperDockWindowRight:Show()
-	end
-end
-
 function MOD:ActivateDockletButton(button, clickFunction, tipFunction)
 	button._panelGradient = "default"
 	button._iconGradient = "icon"
diff --git a/Interface/AddOns/SVUI/packages/map/SVMap.lua b/Interface/AddOns/SVUI/packages/map/SVMap.lua
index fe2fdc8..881a504 100644
--- a/Interface/AddOns/SVUI/packages/map/SVMap.lua
+++ b/Interface/AddOns/SVUI/packages/map/SVMap.lua
@@ -64,6 +64,8 @@ local Initialized = false
 DATA UPVALUES
 ##########################################################
 ]]--
+local MM_XY_COORD = "SIMPLE";
+local WM_TINY = false;
 local NARR_TEXT = "Meanwhile";
 local NARR_PREFIX = "In ";
 local NARR_ENABLE = true;
diff --git a/Interface/AddOns/SVUI/packages/override/SVOverride.lua b/Interface/AddOns/SVUI/packages/override/SVOverride.lua
index 65bfac9..454c407 100644
--- a/Interface/AddOns/SVUI/packages/override/SVOverride.lua
+++ b/Interface/AddOns/SVUI/packages/override/SVOverride.lua
@@ -983,7 +983,7 @@ local LootComplexEventsHandler = function(_, event, arg1, arg2)
 	end
 end

-local GroupLootDropDown_GiveLoot = function(self)
+_G.GroupLootDropDown_GiveLoot = function(self)
 	if lastQuality >= MASTER_LOOT_THREHOLD then
 		local confirmed = SV:StaticPopup_Show("CONFIRM_LOOT_DISTRIBUTION",ITEM_QUALITY_COLORS[lastQuality].hex..lastName..FONT_COLOR_CODE_CLOSE,self:GetText());
 		if confirmed then confirmed.data = self.value end
@@ -1078,8 +1078,6 @@ function MOD:Load()
 		UIParent:UnregisterEvent("CANCEL_LOOT_ROLL");
 	end

-	_G.GroupLootDropDown_GiveLoot = GroupLootDropDown_GiveLoot
-
 	UIParent:UnregisterEvent("MIRROR_TIMER_START")
 	self:RegisterEvent("CVAR_UPDATE", MirrorBarUpdateHandler)
 	self:RegisterEvent("PLAYER_ENTERING_WORLD", MirrorBarUpdateHandler)
diff --git a/Interface/AddOns/SVUI/scripts/ego.lua b/Interface/AddOns/SVUI/scripts/ego.lua
index c0b963b..2866a40 100644
--- a/Interface/AddOns/SVUI/scripts/ego.lua
+++ b/Interface/AddOns/SVUI/scripts/ego.lua
@@ -84,7 +84,7 @@ local Ego_OnEvent = function(self, event)
 	end
 end

-function BeAwesome()
+_G.BeAwesome = function()
 	EgoFrame:LaunchAnimation(4)
 end

diff --git a/Interface/AddOns/SVUI/scripts/misc.lua b/Interface/AddOns/SVUI/scripts/misc.lua
index c51e038..8465157 100644
--- a/Interface/AddOns/SVUI/scripts/misc.lua
+++ b/Interface/AddOns/SVUI/scripts/misc.lua
@@ -26,6 +26,8 @@ local type 		= _G.type;
 local tinsert 	= _G.tinsert;
 local math 		= _G.math;
 local cos, deg, rad, sin = math.cos, math.deg, math.rad, math.sin;
+
+local hooksecurefunc = _G.hooksecurefunc;
 --[[
 ##########################################################
 GET ADDON DATA
@@ -39,8 +41,7 @@ local toonclass = select(2, UnitClass('player'))
 MERCHANT MAX STACK
 ##########################################################
 ]]--
-local savedMerchantItemButton_OnModifiedClick = MerchantItemButton_OnModifiedClick
-function MerchantItemButton_OnModifiedClick(self, ...)
+local BuyMaxStack = function(self, ...)
 	if ( IsAltKeyDown() ) then
 		local itemLink = GetMerchantItemLink(self:GetID())
 		if not itemLink then return end
@@ -49,8 +50,8 @@ function MerchantItemButton_OnModifiedClick(self, ...)
 			BuyMerchantItem(self:GetID(), GetMerchantItemMaxStack(self:GetID()))
 		end
 	end
-	savedMerchantItemButton_OnModifiedClick(self, ...)
 end
+hooksecurefunc("MerchantItemButton_OnModifiedClick", BuyMaxStack);
 --[[
 ##########################################################
 CHAT BUBBLES
@@ -361,7 +362,7 @@ local function RaidMarkShowIcons()
 	RaidMarkFrame:Show()
 end

-function RaidMark_HotkeyPressed(button)
+_G.RaidMark_HotkeyPressed = function(button)
 	ButtonIsDown = button == "down" and RaidMarkAllowed()
 	if(RaidMarkFrame) then
 		if ButtonIsDown then
@@ -568,8 +569,8 @@ local function GetThreatBarColor(unitWithHighestThreat)
 		local colors = RAID_CLASS_COLORS[unitClass]
 		if not colors then return 15,15,15 end
 		return colors.r*255, colors.g*255, colors.b*255
-	elseif react then
-		local reaction=oUF_Villain['colors'].reaction[react]
+	elseif(react and SV.oUF) then
+		local reaction = SV.oUF['colors'].reaction[react]
 		return reaction[1]*255, reaction[2]*255, reaction[3]*255
 	else
 		return 15,15,15
@@ -624,13 +625,18 @@ end

 local function LoadThreatBar()
 	if(SV.db.general.threatbar == true) then
+		local anchor = _G.SVUI_Target
 		local ThreatBar = CreateFrame('StatusBar', 'SVUI_ThreatBar', SV.UIParent);
 		ThreatBar:SetStatusBarTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Doodads\\THREAT-BAR")
 		ThreatBar:SetSize(50,100)
 		ThreatBar:SetFrameStrata('MEDIUM')
 		ThreatBar:SetOrientation("VERTICAL")
 		ThreatBar:SetMinMaxValues(0,100)
-		ThreatBar:Point('LEFT',SVUI_Target,'RIGHT',0,10)
+		if(anchor) then
+			ThreatBar:Point('LEFT', _G.SVUI_Target, 'RIGHT', 0, 10)
+		else
+			ThreatBar:Point('LEFT', UIParent, 'CENTER', 50, -50)
+		end
 		ThreatBar.backdrop = ThreatBar:CreateTexture(nil,"BACKGROUND")
 		ThreatBar.backdrop:SetAllPoints(ThreatBar)
 		ThreatBar.backdrop:SetTexture(BARFILE)
diff --git a/Interface/AddOns/SVUI/scripts/mounts.lua b/Interface/AddOns/SVUI/scripts/mounts.lua
index 9023c1b..29c56e2 100644
--- a/Interface/AddOns/SVUI/scripts/mounts.lua
+++ b/Interface/AddOns/SVUI/scripts/mounts.lua
@@ -388,7 +388,7 @@ end
 SLASH FUNCTION
 ##########################################################
 ]]--
-function SVUILetsRide()
+_G.SVUILetsRide = function()
 	local maxMounts = CountMounts()

 	if(not maxMounts or IsMounted()) then
diff --git a/Interface/AddOns/SVUI/scripts/spellbind.lua b/Interface/AddOns/SVUI/scripts/spellbind.lua
index 006f15c..f632061 100644
--- a/Interface/AddOns/SVUI/scripts/spellbind.lua
+++ b/Interface/AddOns/SVUI/scripts/spellbind.lua
@@ -26,14 +26,20 @@ local ipairs 	= _G.ipairs;
 local type 		= _G.type;
 local tinsert 	= _G.tinsert;
 local string 	= _G.string;
-
-local SVLib = LibSuperVillain
+--TABLE
+local table         = _G.table;
+local tsort         = table.sort;
+local tconcat       = table.concat;
+local tinsert       = _G.tinsert;
+local tremove       = _G.tremove;
+
+local SVLib = _G.LibSuperVillain
 --[[
 ##########################################################
 Simple click2cast spell SpellBinder(sBinder by Fernir)
 ##########################################################
 ]]--
-ClickCastFrames = _G.ClickCastFrames or {}
+_G.ClickCastFrames = _G.ClickCastFrames or {}

 local UnitParseListing = {
 	"PlayerFrame", "PetFrame",
@@ -60,7 +66,7 @@ local UnitParseListing = {
 for _, gName in pairs(UnitParseListing) do
 	local frame = _G[gName]
 	if(frame) then
-		ClickCastFrames[frame] = true
+		_G.ClickCastFrames[frame] = true
 	end
 end

@@ -168,7 +174,7 @@ local SpellBindMask_OnClick = function(self, button)

 			for i, v in pairs(SV.cache.SpellBinder.spells) do if v.spell == spellname then return end end

-			tinsert(SV.cache.SpellBinder.spells, {["id"] = slot, ["modifier"] = modifier, ["button"] = button, ["spell"] = spellname, ["rank"] = rank, ["texture"] = texture, ["origbutton"] = originalbutton,})
+			tinsert(SV.cache.SpellBinder.spells, {["id"] = slot, ["modifier"] = modifier, ["button"] = button, ["spell"] = spellname, ["rank"] = "", ["texture"] = texture, ["origbutton"] = originalbutton,})
 			SpellBinder:BuildSpells(false)
 		end
 	end
@@ -213,7 +219,7 @@ function SpellBinder:BuildSpells(delete)
 	scroll:SetSize(270, 300)

 	if delete then
-		i = 1
+		local i = 1
 		while _G[i.."_cbs"] do
 			_G[i.."_fs"]:SetText("")
 			_G[i.."_texture"]:SetTexture(0,0,0,0)
@@ -263,7 +269,7 @@ function SpellBinder:BuildSpells(delete)
 			bf.fs:SetText(spell.modifier..spell.origbutton)
 			bf.fs:SetPoint("RIGHT", bf.delete, "LEFT", -4, 0)

-			for frame,_ in pairs(ClickCastFrames) do
+			for frame,_ in pairs(_G.ClickCastFrames) do
 				if frame and SV.cache.SpellBinder.frames[frame] then
 					if frame:CanChangeAttribute() or frame:CanChangeProtectedState() then
 						if frame:GetAttribute(spell.modifier.."type"..spell.button) ~= "menu" then
@@ -296,7 +302,7 @@ end

 function SpellBinder:BuildList()
 	if(SV.cache.SpellBinder and SV.cache.SpellBinder.frames) then
-		for frame,_ in pairs(ClickCastFrames) do
+		for frame,_ in pairs(_G.ClickCastFrames) do
 			SV.cache.SpellBinder.frames[frame] = SV.cache.SpellBinder.frames[frame] or true
 		end
 	end
@@ -326,7 +332,7 @@ function SpellBinder:DeleteSpell()
 	local count = table.getn(SV.cache.SpellBinder.spells)
 	for i, spell in ipairs(SV.cache.SpellBinder.spells) do
 		if spell.checked then
-			for frame,_ in pairs(ClickCastFrames) do
+			for frame,_ in pairs(_G.ClickCastFrames) do
 				local f
 				if frame and type(frame) == "table" then f = frame:GetName() end
 				if f then
@@ -374,11 +380,11 @@ SET HOOKS
 ##########################################################
 ]]--
 local _hook_CreateFrame = function(self, name, parent, template)
-	if template and template:find("SecureUnitButtonTemplate") then ClickCastFrames[_G[name]] = true end
+	if template and template:find("SecureUnitButtonTemplate") then _G.ClickCastFrames[_G[name]] = true end
 end

 local _hook_CompactUnitFrame_SetUpFrame = function(self, ...)
-	ClickCastFrames[self] = true
+	_G.ClickCastFrames[self] = true
 end

 local _hook_SpellBookFrame_OnUpdate = function(self)
@@ -386,6 +392,7 @@ local _hook_SpellBookFrame_OnUpdate = function(self)
 end

 local _hook_SpellBookFrame_OnHide = function(self)
+	if not SpellBinder then return end
 	SpellBinder:Hide()
 	SpellBinder.sbOpen = false
 	SpellBinder:ToggleButtons()
diff --git a/Interface/AddOns/SVUI/system/media.lua b/Interface/AddOns/SVUI/system/media.lua
index 54e9e6c..f1c3c63 100644
--- a/Interface/AddOns/SVUI/system/media.lua
+++ b/Interface/AddOns/SVUI/system/media.lua
@@ -19,6 +19,7 @@ LOCALIZED LUA FUNCTIONS
 --[[ GLOBALS ]]--
 local _G = _G;
 local select  = _G.select;
+local unpack  = _G.unpack;
 local pairs   = _G.pairs;
 local ipairs  = _G.ipairs;
 local type    = _G.type;
@@ -46,18 +47,23 @@ local LSM = LibStub("LibSharedMedia-3.0")
 LOCALIZED GLOBALS
 ##########################################################
 ]]--
-local STANDARD_TEXT_FONT = _G.STANDARD_TEXT_FONT
-local UNIT_NAME_FONT = _G.UNIT_NAME_FONT
-local DAMAGE_TEXT_FONT = _G.DAMAGE_TEXT_FONT
-local SVUI_CLASS_COLORS = _G.SVUI_CLASS_COLORS
-local RAID_CLASS_COLORS = _G.RAID_CLASS_COLORS
+local NAMEPLATE_FONT      = _G.NAMEPLATE_FONT
+local CHAT_FONT_HEIGHTS   = _G.CHAT_FONT_HEIGHTS
+local STANDARD_TEXT_FONT  = _G.STANDARD_TEXT_FONT
+local UNIT_NAME_FONT      = _G.UNIT_NAME_FONT
+local DAMAGE_TEXT_FONT    = _G.DAMAGE_TEXT_FONT
+local SVUI_CLASS_COLORS   = _G.SVUI_CLASS_COLORS
+local RAID_CLASS_COLORS   = _G.RAID_CLASS_COLORS
+local UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT  = _G.UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT
 --[[
 ##########################################################
 PRE VARS/FUNCTIONS
 ##########################################################
 ]]--
-local function SetFont(fontObject, font, fontSize, fontOutline, fontAlpha, color, shadowColor, offsetX, offsetY)
-  if not font then return end
+local function SetFont(globalName, font, fontSize, fontOutline, fontAlpha, color, shadowColor, offsetX, offsetY)
+  if not font then return end
+  local fontObject = _G[globalName]
+  if not fontObject then return end
   fontObject:SetFont(font,fontSize,fontOutline);
   if fontAlpha then
     fontObject:SetAlpha(fontAlpha)
@@ -272,62 +278,58 @@ function SV:RefreshSystemFonts()
   CHAT_FONT_HEIGHTS = {8,9,10,11,12,13,14,15,16,17,18,19,20}
   UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT = fontsize

-  -- SetFont(GameFont_Gigantic, GIANT_TEXT_FONT, fontsize*3, "THICKOUTLINE", 32)
-  -- SetFont(SystemFont_Shadow_Huge1, GIANT_TEXT_FONT, fontsize*1.8, "OUTLINE")
-  -- SetFont(SystemFont_OutlineThick_Huge2, GIANT_TEXT_FONT, fontsize*1.8, "THICKOUTLINE")
-
-  SetFont(QuestFont_Large, UNIT_NAME_FONT, fontsize+4)
-  SetFont(ZoneTextString, UNIT_NAME_FONT, fontsize*4.2, "OUTLINE")
-  SetFont(SubZoneTextString, UNIT_NAME_FONT, fontsize*3.2, "OUTLINE")
-  SetFont(PVPInfoTextString, UNIT_NAME_FONT, fontsize*1.9, "OUTLINE")
-  SetFont(PVPArenaTextString, UNIT_NAME_FONT, fontsize*1.9, "OUTLINE")
-  SetFont(SystemFont_Shadow_Outline_Huge2, UNIT_NAME_FONT, fontsize*1.8, "OUTLINE")
-
-  SetFont(NumberFont_OutlineThick_Mono_Small, NUMBER_TEXT_FONT, fontsize, "OUTLINE")
-  SetFont(NumberFont_Outline_Huge, NUMBER_TEXT_FONT, fontsize*2, "THICKOUTLINE", 28)
-  SetFont(NumberFont_Outline_Large, NUMBER_TEXT_FONT, fontsize+4, "OUTLINE")
-  SetFont(NumberFont_Outline_Med, NUMBER_TEXT_FONT, fontsize+2, "OUTLINE")
-  SetFont(NumberFontNormal, NUMBER_TEXT_FONT, fontsize, "OUTLINE")
-
-  SetFont(GameFontHighlight, STANDARD_TEXT_FONT, fontsize)
-  SetFont(GameFontWhite, STANDARD_TEXT_FONT, fontsize, 'OUTLINE', 1, {1,1,1})
-  SetFont(GameFontWhiteSmall, STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {1,1,1})
-  SetFont(GameFontBlack, STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {0,0,0})
-  SetFont(GameFontBlackSmall, STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {0,0,0})
-  SetFont(GameFontNormal, STANDARD_TEXT_FONT, fontsize)
-  SetFont(QuestFont, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Large, STANDARD_TEXT_FONT, fontsize+2)
-  SetFont(GameFontNormalMed3, STANDARD_TEXT_FONT, fontsize+1)
-  SetFont(SystemFont_Med1, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Med3, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Outline_Small, STANDARD_TEXT_FONT, fontsize, "OUTLINE")
-  SetFont(SystemFont_Shadow_Large, STANDARD_TEXT_FONT, fontsize+2)
-  SetFont(SystemFont_Shadow_Med1, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Shadow_Med3, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Shadow_Small, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Small, STANDARD_TEXT_FONT, fontsize)
-  SetFont(FriendsFont_Normal, STANDARD_TEXT_FONT, fontsize)
-  SetFont(FriendsFont_Small, STANDARD_TEXT_FONT, fontsize-2)
-  SetFont(FriendsFont_Large, STANDARD_TEXT_FONT, fontsize)
-  SetFont(FriendsFont_UserText, STANDARD_TEXT_FONT, fontsize)
-
-  SetFont(GameFont_Gigantic, GIANT_TEXT_FONT, 200, "THICKOUTLINE", 32)
-  SetFont(SystemFont_Shadow_Huge1, GIANT_TEXT_FONT, 200, "OUTLINE")
-  SetFont(SystemFont_OutlineThick_Huge2, GIANT_TEXT_FONT, 200, "THICKOUTLINE")
-
-  SetFont(SystemFont_Shadow_Huge3, DAMAGE_TEXT_FONT, 200, "THICKOUTLINE")
-  SetFont(CombatTextFont, DAMAGE_TEXT_FONT, 200, "THICKOUTLINE")
+  SetFont("QuestFont_Large", UNIT_NAME_FONT, fontsize+4)
+  SetFont("ZoneTextString", UNIT_NAME_FONT, fontsize*4.2, "OUTLINE")
+  SetFont("SubZoneTextString", UNIT_NAME_FONT, fontsize*3.2, "OUTLINE")
+  SetFont("PVPInfoTextString", UNIT_NAME_FONT, fontsize*1.9, "OUTLINE")
+  SetFont("PVPArenaTextString", UNIT_NAME_FONT, fontsize*1.9, "OUTLINE")
+  SetFont("SystemFont_Shadow_Outline_Huge2", UNIT_NAME_FONT, fontsize*1.8, "OUTLINE")
+
+  SetFont("NumberFont_OutlineThick_Mono_Small", NUMBER_TEXT_FONT, fontsize, "OUTLINE")
+  SetFont("NumberFont_Outline_Huge", NUMBER_TEXT_FONT, fontsize*2, "THICKOUTLINE", 28)
+  SetFont("NumberFont_Outline_Large", NUMBER_TEXT_FONT, fontsize+4, "OUTLINE")
+  SetFont("NumberFont_Outline_Med", NUMBER_TEXT_FONT, fontsize+2, "OUTLINE")
+  SetFont("NumberFontNormal", NUMBER_TEXT_FONT, fontsize, "OUTLINE")
+
+  SetFont("GameFontHighlight", STANDARD_TEXT_FONT, fontsize)
+  SetFont("GameFontWhite", STANDARD_TEXT_FONT, fontsize, 'OUTLINE', 1, {1,1,1})
+  SetFont("GameFontWhiteSmall", STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {1,1,1})
+  SetFont("GameFontBlack", STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {0,0,0})
+  SetFont("GameFontBlackSmall", STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {0,0,0})
+  SetFont("GameFontNormal", STANDARD_TEXT_FONT, fontsize)
+  SetFont("QuestFont", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Large", STANDARD_TEXT_FONT, fontsize+2)
+  SetFont("GameFontNormalMed3", STANDARD_TEXT_FONT, fontsize+1)
+  SetFont("SystemFont_Med1", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Med3", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Outline_Small", STANDARD_TEXT_FONT, fontsize, "OUTLINE")
+  SetFont("SystemFont_Shadow_Large", STANDARD_TEXT_FONT, fontsize+2)
+  SetFont("SystemFont_Shadow_Med1", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Shadow_Med3", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Shadow_Small", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Small", STANDARD_TEXT_FONT, fontsize)
+  SetFont("FriendsFont_Normal", STANDARD_TEXT_FONT, fontsize)
+  SetFont("FriendsFont_Small", STANDARD_TEXT_FONT, fontsize-2)
+  SetFont("FriendsFont_Large", STANDARD_TEXT_FONT, fontsize)
+  SetFont("FriendsFont_UserText", STANDARD_TEXT_FONT, fontsize)
+
+  SetFont("GameFont_Gigantic", GIANT_TEXT_FONT, 200, "THICKOUTLINE", 32)
+  SetFont("SystemFont_Shadow_Huge1", GIANT_TEXT_FONT, 200, "OUTLINE")
+  SetFont("SystemFont_OutlineThick_Huge2", GIANT_TEXT_FONT, 200, "THICKOUTLINE")
+
+  SetFont("SystemFont_Shadow_Huge3", DAMAGE_TEXT_FONT, 200, "THICKOUTLINE")
+  SetFont("CombatTextFont", DAMAGE_TEXT_FONT, 200, "THICKOUTLINE")

   local UNICODE_FONT = self.Media.font.roboto;

-  SetFont(GameTooltipHeader, UNICODE_FONT, unicodesize+2)
-  SetFont(Tooltip_Med, UNICODE_FONT, unicodesize)
-  SetFont(Tooltip_Small, UNICODE_FONT, unicodesize)
-  SetFont(GameFontNormalSmall, UNICODE_FONT, unicodesize)
-  SetFont(GameFontHighlightSmall, UNICODE_FONT, unicodesize)
-  SetFont(NumberFont_Shadow_Med, UNICODE_FONT, unicodesize, "OUTLINE")
-  SetFont(NumberFont_Shadow_Small, UNICODE_FONT, unicodesize, "OUTLINE")
-  SetFont(SystemFont_Tiny, UNICODE_FONT, unicodesize)
+  SetFont("GameTooltipHeader", UNICODE_FONT, unicodesize+2)
+  SetFont("Tooltip_Med", UNICODE_FONT, unicodesize)
+  SetFont("Tooltip_Small", UNICODE_FONT, unicodesize)
+  SetFont("GameFontNormalSmall", UNICODE_FONT, unicodesize)
+  SetFont("GameFontHighlightSmall", UNICODE_FONT, unicodesize)
+  SetFont("NumberFont_Shadow_Med", UNICODE_FONT, unicodesize, "OUTLINE")
+  SetFont("NumberFont_Shadow_Small", UNICODE_FONT, unicodesize, "OUTLINE")
+  SetFont("SystemFont_Tiny", UNICODE_FONT, unicodesize)

   self:UpdateFontTemplates()
 end
@@ -345,62 +347,58 @@ function SV:RefreshAllSystemMedia()
   CHAT_FONT_HEIGHTS = {8,9,10,11,12,13,14,15,16,17,18,19,20}
   UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT = fontsize

-  -- SetFont(GameFont_Gigantic, GIANT_TEXT_FONT, fontsize*3, "THICKOUTLINE", 32)
-  -- SetFont(SystemFont_Shadow_Huge1, GIANT_TEXT_FONT, fontsize*1.8, "OUTLINE")
-  -- SetFont(SystemFont_OutlineThick_Huge2, GIANT_TEXT_FONT, fontsize*1.8, "THICKOUTLINE")
-
-  SetFont(QuestFont_Large, UNIT_NAME_FONT, fontsize+4)
-  SetFont(ZoneTextString, UNIT_NAME_FONT, fontsize*4.2, "OUTLINE")
-  SetFont(SubZoneTextString, UNIT_NAME_FONT, fontsize*3.2, "OUTLINE")
-  SetFont(PVPInfoTextString, UNIT_NAME_FONT, fontsize*1.9, "OUTLINE")
-  SetFont(PVPArenaTextString, UNIT_NAME_FONT, fontsize*1.9, "OUTLINE")
-  SetFont(SystemFont_Shadow_Outline_Huge2, UNIT_NAME_FONT, fontsize*1.8, "OUTLINE")
-
-  SetFont(NumberFont_OutlineThick_Mono_Small, NUMBER_TEXT_FONT, fontsize, "OUTLINE")
-  SetFont(NumberFont_Outline_Huge, NUMBER_TEXT_FONT, fontsize*2, "THICKOUTLINE", 28)
-  SetFont(NumberFont_Outline_Large, NUMBER_TEXT_FONT, fontsize+4, "OUTLINE")
-  SetFont(NumberFont_Outline_Med, NUMBER_TEXT_FONT, fontsize+2, "OUTLINE")
-  SetFont(NumberFontNormal, NUMBER_TEXT_FONT, fontsize, "OUTLINE")
-
-  SetFont(GameFontHighlight, STANDARD_TEXT_FONT, fontsize)
-  SetFont(GameFontWhite, STANDARD_TEXT_FONT, fontsize, 'OUTLINE', 1, {1,1,1})
-  SetFont(GameFontWhiteSmall, STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {1,1,1})
-  SetFont(GameFontBlack, STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {0,0,0})
-  SetFont(GameFontBlackSmall, STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {0,0,0})
-  SetFont(GameFontNormal, STANDARD_TEXT_FONT, fontsize)
-  SetFont(QuestFont, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Large, STANDARD_TEXT_FONT, fontsize+2)
-  SetFont(GameFontNormalMed3, STANDARD_TEXT_FONT, fontsize+1)
-  SetFont(SystemFont_Med1, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Med3, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Outline_Small, STANDARD_TEXT_FONT, fontsize, "OUTLINE")
-  SetFont(SystemFont_Shadow_Large, STANDARD_TEXT_FONT, fontsize+2)
-  SetFont(SystemFont_Shadow_Med1, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Shadow_Med3, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Shadow_Small, STANDARD_TEXT_FONT, fontsize)
-  SetFont(SystemFont_Small, STANDARD_TEXT_FONT, fontsize)
-  SetFont(FriendsFont_Normal, STANDARD_TEXT_FONT, fontsize)
-  SetFont(FriendsFont_Small, STANDARD_TEXT_FONT, fontsize-2)
-  SetFont(FriendsFont_Large, STANDARD_TEXT_FONT, fontsize)
-  SetFont(FriendsFont_UserText, STANDARD_TEXT_FONT, fontsize)
-
-  SetFont(GameFont_Gigantic, GIANT_TEXT_FONT, 200, "THICKOUTLINE", 32)
-  SetFont(SystemFont_Shadow_Huge1, GIANT_TEXT_FONT, 200, "OUTLINE")
-  SetFont(SystemFont_OutlineThick_Huge2, GIANT_TEXT_FONT, 200, "THICKOUTLINE")
-
-  SetFont(SystemFont_Shadow_Huge3, DAMAGE_TEXT_FONT, 200, "THICKOUTLINE")
-  SetFont(CombatTextFont, DAMAGE_TEXT_FONT, 200, "THICKOUTLINE")
+  SetFont("QuestFont_Large", UNIT_NAME_FONT, fontsize+4)
+  SetFont("ZoneTextString", UNIT_NAME_FONT, fontsize*4.2, "OUTLINE")
+  SetFont("SubZoneTextString", UNIT_NAME_FONT, fontsize*3.2, "OUTLINE")
+  SetFont("PVPInfoTextString", UNIT_NAME_FONT, fontsize*1.9, "OUTLINE")
+  SetFont("PVPArenaTextString", UNIT_NAME_FONT, fontsize*1.9, "OUTLINE")
+  SetFont("SystemFont_Shadow_Outline_Huge2", UNIT_NAME_FONT, fontsize*1.8, "OUTLINE")
+
+  SetFont("NumberFont_OutlineThick_Mono_Small", NUMBER_TEXT_FONT, fontsize, "OUTLINE")
+  SetFont("NumberFont_Outline_Huge", NUMBER_TEXT_FONT, fontsize*2, "THICKOUTLINE", 28)
+  SetFont("NumberFont_Outline_Large", NUMBER_TEXT_FONT, fontsize+4, "OUTLINE")
+  SetFont("NumberFont_Outline_Med", NUMBER_TEXT_FONT, fontsize+2, "OUTLINE")
+  SetFont("NumberFontNormal", NUMBER_TEXT_FONT, fontsize, "OUTLINE")
+
+  SetFont("GameFontHighlight", STANDARD_TEXT_FONT, fontsize)
+  SetFont("GameFontWhite", STANDARD_TEXT_FONT, fontsize, 'OUTLINE', 1, {1,1,1})
+  SetFont("GameFontWhiteSmall", STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {1,1,1})
+  SetFont("GameFontBlack", STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {0,0,0})
+  SetFont("GameFontBlackSmall", STANDARD_TEXT_FONT, fontsize, 'NONE', 1, {0,0,0})
+  SetFont("GameFontNormal", STANDARD_TEXT_FONT, fontsize)
+  SetFont("QuestFont", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Large", STANDARD_TEXT_FONT, fontsize+2)
+  SetFont("GameFontNormalMed3", STANDARD_TEXT_FONT, fontsize+1)
+  SetFont("SystemFont_Med1", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Med3", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Outline_Small", STANDARD_TEXT_FONT, fontsize, "OUTLINE")
+  SetFont("SystemFont_Shadow_Large", STANDARD_TEXT_FONT, fontsize+2)
+  SetFont("SystemFont_Shadow_Med1", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Shadow_Med3", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Shadow_Small", STANDARD_TEXT_FONT, fontsize)
+  SetFont("SystemFont_Small", STANDARD_TEXT_FONT, fontsize)
+  SetFont("FriendsFont_Normal", STANDARD_TEXT_FONT, fontsize)
+  SetFont("FriendsFont_Small", STANDARD_TEXT_FONT, fontsize-2)
+  SetFont("FriendsFont_Large", STANDARD_TEXT_FONT, fontsize)
+  SetFont("FriendsFont_UserText", STANDARD_TEXT_FONT, fontsize)
+
+  SetFont("GameFont_Gigantic", GIANT_TEXT_FONT, 200, "THICKOUTLINE", 32)
+  SetFont("SystemFont_Shadow_Huge1", GIANT_TEXT_FONT, 200, "OUTLINE")
+  SetFont("SystemFont_OutlineThick_Huge2", GIANT_TEXT_FONT, 200, "THICKOUTLINE")
+
+  SetFont("SystemFont_Shadow_Huge3", DAMAGE_TEXT_FONT, 200, "THICKOUTLINE")
+  SetFont("CombatTextFont", DAMAGE_TEXT_FONT, 200, "THICKOUTLINE")

   local UNICODE_FONT = self.Media.font.roboto;

-  SetFont(GameTooltipHeader, UNICODE_FONT, unicodesize+2)
-  SetFont(Tooltip_Med, UNICODE_FONT, unicodesize)
-  SetFont(Tooltip_Small, UNICODE_FONT, unicodesize)
-  SetFont(GameFontNormalSmall, UNICODE_FONT, unicodesize)
-  SetFont(GameFontHighlightSmall, UNICODE_FONT, unicodesize)
-  SetFont(NumberFont_Shadow_Med, UNICODE_FONT, unicodesize)
-  SetFont(NumberFont_Shadow_Small, UNICODE_FONT, unicodesize)
-  SetFont(SystemFont_Tiny, UNICODE_FONT, unicodesize)
+  SetFont("GameTooltipHeader", UNICODE_FONT, unicodesize+2)
+  SetFont("Tooltip_Med", UNICODE_FONT, unicodesize)
+  SetFont("Tooltip_Small", UNICODE_FONT, unicodesize)
+  SetFont("GameFontNormalSmall", UNICODE_FONT, unicodesize)
+  SetFont("GameFontHighlightSmall", UNICODE_FONT, unicodesize)
+  SetFont("NumberFont_Shadow_Med", UNICODE_FONT, unicodesize)
+  SetFont("NumberFont_Shadow_Small", UNICODE_FONT, unicodesize)
+  SetFont("SystemFont_Tiny", UNICODE_FONT, unicodesize)

   self:MediaUpdate()
   self.MediaInitialized = true
@@ -413,22 +411,22 @@ INIT SOME COMBAT FONTS
 do
   local fontFile = "Interface\\AddOns\\SVUI\\assets\\fonts\\Combat.ttf"

-  DAMAGE_TEXT_FONT = fontFile
-  NUM_COMBAT_TEXT_LINES = 20;
-  COMBAT_TEXT_SCROLLSPEED = 1.0;
-  COMBAT_TEXT_FADEOUT_TIME = 1.0;
-  COMBAT_TEXT_HEIGHT = 18;
-  COMBAT_TEXT_CRIT_MAXHEIGHT = 2.0;
-  COMBAT_TEXT_CRIT_MINHEIGHT = 1.2;
-  COMBAT_TEXT_CRIT_SCALE_TIME = 0.7;
-  COMBAT_TEXT_CRIT_SHRINKTIME = 0.2;
-  COMBAT_TEXT_TO_ANIMATE = {};
-  COMBAT_TEXT_STAGGER_RANGE = 20;
-  COMBAT_TEXT_SPACING = 7;
-  COMBAT_TEXT_MAX_OFFSET = 130;
-  COMBAT_TEXT_LOW_HEALTH_THRESHOLD = 0.2;
-  COMBAT_TEXT_LOW_MANA_THRESHOLD = 0.2;
-  COMBAT_TEXT_LOCATIONS = {};
+  _G.DAMAGE_TEXT_FONT = fontFile
+  _G.NUM_COMBAT_TEXT_LINES = 20;
+  _G.COMBAT_TEXT_SCROLLSPEED = 1.0;
+  _G.COMBAT_TEXT_FADEOUT_TIME = 1.0;
+  _G.COMBAT_TEXT_HEIGHT = 18;
+  _G.COMBAT_TEXT_CRIT_MAXHEIGHT = 2.0;
+  _G.COMBAT_TEXT_CRIT_MINHEIGHT = 1.2;
+  _G.COMBAT_TEXT_CRIT_SCALE_TIME = 0.7;
+  _G.COMBAT_TEXT_CRIT_SHRINKTIME = 0.2;
+  _G.COMBAT_TEXT_TO_ANIMATE = {};
+  _G.COMBAT_TEXT_STAGGER_RANGE = 20;
+  _G.COMBAT_TEXT_SPACING = 7;
+  _G.COMBAT_TEXT_MAX_OFFSET = 130;
+  _G.COMBAT_TEXT_LOW_HEALTH_THRESHOLD = 0.2;
+  _G.COMBAT_TEXT_LOW_MANA_THRESHOLD = 0.2;
+  _G.COMBAT_TEXT_LOCATIONS = {};

   local fName, fHeight, fFlags = CombatTextFont:GetFont()

diff --git a/Interface/AddOns/SVUI/system/slash.lua b/Interface/AddOns/SVUI/system/slash.lua
index efe033d..74a63e6 100644
--- a/Interface/AddOns/SVUI/system/slash.lua
+++ b/Interface/AddOns/SVUI/system/slash.lua
@@ -13,6 +13,46 @@ _____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
 S U P E R - V I L L A I N - U I   By: Munglunch                              #
 ##############################################################################
 --]]
+--[[ GLOBALS ]]--
+local _G = _G;
+local select  		= _G.select;
+local unpack  		= _G.unpack;
+local pairs   		= _G.pairs;
+local ipairs  		= _G.ipairs;
+local type    		= _G.type;
+local tostring      = _G.tostring;
+local tonumber      = _G.tonumber;
+local print         = _G.print;
+local string  		= _G.string;
+local math    		= _G.math;
+local table   		= _G.table;
+local GetTime 		= _G.GetTime;
+--[[ STRING METHODS ]]--
+local format = string.format;
+local lower, trim = string.lower, string.trim
+--[[ MATH METHODS ]]--
+local floor, modf = math.floor, math.modf;
+--[[ TABLE METHODS ]]--
+local twipe, tsort = table.wipe, table.sort;
+--BLIZZARD API
+local ReloadUI              = _G.ReloadUI;
+local UnitName   			= _G.UnitName;
+local IsInGroup             = _G.IsInGroup;
+local CreateFrame           = _G.CreateFrame;
+local IsInRaid         		= _G.IsInRaid;
+local UnitIsGroupLeader     = _G.UnitIsGroupLeader;
+local GetAddOnInfo          = _G.GetAddOnInfo;
+local UnitIsGroupAssistant  = _G.UnitIsGroupAssistant;
+local EnableAddOn           = _G.EnableAddOn;
+local DisableAddOn          = _G.DisableAddOn;
+local IsEveryoneAssistant   = _G.IsEveryoneAssistant;
+local GetAddOnMetadata      = _G.GetAddOnMetadata;
+local SendChatMessage   	= _G.SendChatMessage;
+local PlaySoundFile   		= _G.PlaySoundFile;
+
+local LE_PARTY_CATEGORY_HOME = _G.LE_PARTY_CATEGORY_HOME;
+local LE_PARTY_CATEGORY_INSTANCE = _G.LE_PARTY_CATEGORY_INSTANCE;
+
 local SV = select(2, ...)
 local L = SV.L;
 --[[
@@ -20,8 +60,6 @@ local L = SV.L;
 LOCAL VARS
 ##########################################################
 ]]--
-local lower, trim = string.lower, string.trim
-
 local MsgTest = function(warning)
 	if IsInGroup(LE_PARTY_CATEGORY_INSTANCE) then
 		return "INSTANCE_CHAT"
@@ -36,7 +74,6 @@ local MsgTest = function(warning)
 	end
 	return "SAY"
 end
-
 --[[
 ##########################################################
 LOCAL SLASH FUNCTIONS
@@ -138,8 +175,8 @@ do
 		end
 	end

-	SLASH_PULLCOUNTDOWN1 = "/jenkins"
-	SlashCmdList["PULLCOUNTDOWN"] = function(msg)
+	_G.SLASH_PULLCOUNTDOWN1 = "/jenkins"
+	_G.SlashCmdList["PULLCOUNTDOWN"] = function(msg)
 		if(tonumber(msg) ~= nil) then
 			PullCountdown.Pull(msg)
 		else
@@ -148,13 +185,13 @@ do
 	end
 end

-SLASH_KOMBAT1 = "/kombat"
-SlashCmdList["KOMBAT"] = function(msg)
+_G.SLASH_KOMBAT1 = "/kombat"
+_G.SlashCmdList["KOMBAT"] = function(msg)
 	SV:ToastyKombat()
 end

-SLASH_LOLWUT1 = "/lolwut"
-SlashCmdList["LOLWUT"] = function(msg)
+_G.SLASH_LOLWUT1 = "/lolwut"
+_G.SlashCmdList["LOLWUT"] = function(msg)
 	PlaySoundFile("Sound\\Character\\Human\\HumanVocalFemale\\HumanFemalePissed04.wav")
 end
 --[[
@@ -162,11 +199,11 @@ end
 LOAD ALL SLASH FUNCTIONS
 ##########################################################
 ]]--
-SLASH_SVUI_SV1="/sv"
-SlashCmdList["SVUI_SV"] = SVUIMasterCommand;
-SLASH_SVUI_SVUI1="/svui"
-SlashCmdList["SVUI_SVUI"] = SVUIMasterCommand;
-SLASH_SVUI_ENABLE1="/enable"
-SlashCmdList["SVUI_ENABLE"] = EnableAddon;
-SLASH_SVUI_DISABLE1="/disable"
-SlashCmdList["SVUI_DISABLE"] = DisableAddon;
\ No newline at end of file
+_G.SLASH_SVUI_SV1="/sv"
+_G.SlashCmdList["SVUI_SV"] = SVUIMasterCommand;
+_G.SLASH_SVUI_SVUI1="/svui"
+_G.SlashCmdList["SVUI_SVUI"] = SVUIMasterCommand;
+_G.SLASH_SVUI_ENABLE1="/enable"
+_G.SlashCmdList["SVUI_ENABLE"] = EnableAddon;
+_G.SLASH_SVUI_DISABLE1="/disable"
+_G.SlashCmdList["SVUI_DISABLE"] = DisableAddon;
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI_ChatOMatic/Loader.lua b/Interface/AddOns/SVUI_ChatOMatic/Loader.lua
index fe4dfea..f02f61c 100644
--- a/Interface/AddOns/SVUI_ChatOMatic/Loader.lua
+++ b/Interface/AddOns/SVUI_ChatOMatic/Loader.lua
@@ -16,6 +16,13 @@ S U P E R - V I L L A I N - U I   By: Munglunch                              #
 LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+
 local AddonName, AddonObject = ...

 assert(LibSuperVillain, AddonName .. " requires LibSuperVillain")
diff --git a/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.lua b/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.lua
index 78a9038..b4360ed 100644
--- a/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.lua
+++ b/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.lua
@@ -47,7 +47,7 @@ function PLUGIN:CHAT_MSG_BN_WHISPER(event, ...)
 	if(SV.db.SVChat.enable and SV.db[Schema].saveChats) then
 		self:SAVE_CHAT_HISTORY(event, ...)
 	end
-	if(SV.db[Schema].service) then
+	if(SV.db[Schema].service and self.ServiceEnabled) then
 		self:AUTO_MSG_BN_WHISPER(event, ...)
 	end
 end
diff --git a/Interface/AddOns/SVUI_ChatOMatic/components/answering_service.lua b/Interface/AddOns/SVUI_ChatOMatic/components/answering_service.lua
index 3830b53..b2ad275 100644
--- a/Interface/AddOns/SVUI_ChatOMatic/components/answering_service.lua
+++ b/Interface/AddOns/SVUI_ChatOMatic/components/answering_service.lua
@@ -839,7 +839,8 @@ function PLUGIN:AUTO_MSG_BN_WHISPER(event, inbound_message, sender, _, _, _, _,
 	if(not presenceID) then return end
 	if not UnitIsAFK("player") and not UnitIsDND("player") then
 		local _, bnToon = BNGetToonInfo(presenceID);
-		local caller = bnToon or sender;
+		local realToon = select(5, BNGetFriendInfoByID(presenceID))
+		local caller = realToon or bnToon or sender;
 		if (not PhoneLines[caller]) then
 			self:AddCaller(caller)
 		end
@@ -931,7 +932,7 @@ function PLUGIN:EnableAnsweringService()
 	title:SetPoint("TOP", window, "TOP", 0, -2)
 	title:SetText("Henchman Answering Service")

-	for x = 1, 5, 1 do
+	for x = 1, 5 do
 		local phLn = CreateFrame("Button", "HenchmenPhoneLine"..x, window)
 		phLn:SetWidth(124)
 		phLn:SetHeight(20)
@@ -960,6 +961,7 @@ function PLUGIN:EnableAnsweringService()
 		strMsg = "The Henchmen Operators Are Standing By.."
 	end
 	SV:AddonMessage(strMsg)
+	self.ServiceEnabled = true
 end

 function PLUGIN:DisableAnsweringService()
diff --git a/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.lua b/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.lua
index 9b30328..d4b243c 100644
--- a/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.lua
+++ b/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.lua
@@ -500,7 +500,7 @@ SV.Options.args.common = {
 								return SV.db.media.textures[key[#key]]
 							end,
 							set = function(key, value)
-								SV.db.media.textures[key[#key]] = {"background", value}
+								SV.db.media.textures[key[#key]] = value
 								SV:RefreshEverything(true)
 							end,
 							args = {
diff --git a/Interface/AddOns/SVUI_ConfigOMatic/components/units/core.lua b/Interface/AddOns/SVUI_ConfigOMatic/components/units/core.lua
index 8cdabd8..78806be 100644
--- a/Interface/AddOns/SVUI_ConfigOMatic/components/units/core.lua
+++ b/Interface/AddOns/SVUI_ConfigOMatic/components/units/core.lua
@@ -1564,7 +1564,7 @@ SV.Options.args.SVUnit = {
 						return SV.db.media.textures[key[#key]]
 					end,
 					set = function(key, value)
-						SV.db.media.textures[key[#key]] = {"background", value}
+						SV.db.media.textures[key[#key]] = value
 						SV:RefreshEverything(true)
 					end,
 					args = {
diff --git a/Interface/AddOns/SVUI_CraftOMatic/Loader.lua b/Interface/AddOns/SVUI_CraftOMatic/Loader.lua
index 177cd79..fecfe30 100644
--- a/Interface/AddOns/SVUI_CraftOMatic/Loader.lua
+++ b/Interface/AddOns/SVUI_CraftOMatic/Loader.lua
@@ -16,6 +16,13 @@ S U P E R - V I L L A I N - U I   By: Munglunch                              #
 LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+
 local AddonName, AddonObject = ...

 assert(LibSuperVillain, AddonName .. " requires LibSuperVillain")
diff --git a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua
index e63bb8c..2e92a98 100644
--- a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua
+++ b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua
@@ -17,14 +17,6 @@ LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--

---[[  CONSTANTS ]]--
-
-BINDING_HEADER_SVUICRAFT = "Supervillain UI: Craft-O-Matic";
-BINDING_NAME_SVUICRAFT_FISH = "Toggle Fishing Mode";
-BINDING_NAME_SVUICRAFT_FARM = "Toggle Farming Mode";
-BINDING_NAME_SVUICRAFT_COOK = "Toggle Cooking Mode";
-BINDING_NAME_SVUICRAFT_ARCH = "Toggle Archaeology Mode";
-
 --[[ GLOBALS ]]--

 local _G = _G;
@@ -37,6 +29,15 @@ local table 	= _G.table;
 local rept      = string.rep;
 local tsort,twipe = table.sort,table.wipe;
 local floor,ceil  = math.floor, math.ceil;
+
+--[[  CONSTANTS ]]--
+
+_G.BINDING_HEADER_SVUICRAFT = "Supervillain UI: Craft-O-Matic";
+_G.BINDING_NAME_SVUICRAFT_FISH = "Toggle Fishing Mode";
+_G.BINDING_NAME_SVUICRAFT_FARM = "Toggle Farming Mode";
+_G.BINDING_NAME_SVUICRAFT_COOK = "Toggle Cooking Mode";
+_G.BINDING_NAME_SVUICRAFT_ARCH = "Toggle Archaeology Mode";
+
 --[[
 ##########################################################
 GET ADDON DATA
diff --git a/Interface/AddOns/SVUI_CraftOMatic/components/archaeology.lua b/Interface/AddOns/SVUI_CraftOMatic/components/archaeology.lua
index 7b63e29..c34500a 100644
--- a/Interface/AddOns/SVUI_CraftOMatic/components/archaeology.lua
+++ b/Interface/AddOns/SVUI_CraftOMatic/components/archaeology.lua
@@ -79,12 +79,6 @@ LOCAL FUNCTIONS
 local function EnableSolve(index, button)
 	button:SetAlpha(1)
 	button.text:SetTextColor(1, 1, 1)
-	button:SetScript("OnEnter", function(self)
-		self.text:SetTextColor(1, 1, 0)
-	end)
-	button:SetScript("OnLeave", function(self)
-		self.text:SetTextColor(1, 1, 1)
-	end)
 	button:SetScript("OnClick", function(self)
 		SetSelectedArtifact(index)
 		local _, _, _, _, _, numSockets = GetActiveArtifactByRace(index)
@@ -109,9 +103,7 @@ local function DisableSolve(button)
 	button:SetAlpha(0)
 	button.text:SetTextColor(0.5, 0.5, 0.5)
 	button.text:SetText("")
-	button:SetScript("OnEnter", SV.fubar)
-	button:SetScript("OnLeave", SV.fubar)
-	button:SetScript("OnMouseUp", SV.fubar)
+	button:SetScript("OnClick", SV.fubar)
 end

 local function UpdateArtifactBars(index)
@@ -245,7 +237,7 @@ do
 	local ArchSiteFound;
 	local ArchCanSurvey, ArchWillSurvey = false, false;

-	SurveyCooldown:SetPoint("CENTER", UIParent, "CENTER", 0, -80)
+	SurveyCooldown:SetPoint("TOP", UIParent, "CENTER", 0, 0)
 	SurveyCooldown:SetSize(50, 50)
 	SurveyCooldown.text = SurveyCooldown:CreateTexture(nil, "OVERLAY")
 	SurveyCooldown.text:SetAllPoints(SurveyCooldown)
@@ -453,7 +445,7 @@ function PLUGIN:LoadArchaeologyMode()
 		local solve = CreateFrame("Button", nil, bar, "SecureHandlerClickTemplate")
 		local yOffset;

-		bar:SetPanelTemplate("Inset")
+		bar:SetPanelTemplate("Bar")
 		bar:SetStatusBarTexture([[Interface\AddOns\SVUI\assets\artwork\Template\DEFAULT]])
 		bar:SetSize(BAR_WIDTH,BAR_HEIGHT)
 		if(i > 6) then
@@ -464,32 +456,7 @@ function PLUGIN:LoadArchaeologyMode()
 			bar:SetPoint("TOPLEFT", ArchCrafting, "TOPLEFT", 2, -yOffset)
 		end
 		bar:SetStatusBarColor(0.2, 0.2, 0.8, 0.5)
-		bar:SetScript("OnEnter", function(self)
-			GameTooltip:SetOwner(self, "ANCHOR_BOTTOMRIGHT", 2, 250)
-			GameTooltip:ClearLines()
-			if GetNumArtifactsByRace(i) > 0 then
-				SetSelectedArtifact(i)
-				local artifactName, artifactDescription, artifactRarity, _, _, keystoneCount = GetSelectedArtifactInfo()
-				local numFragmentsCollected, numFragmentsAdded, numFragmentsRequired = GetArtifactProgress()
-				local r, g, b
-				if artifactRarity == 1 then
-					artifactRarity = ITEM_QUALITY3_DESC
-					r, g, b = GetItemQualityColor(3)
-				else
-					artifactRarity = ITEM_QUALITY1_DESC
-					r, g, b = GetItemQualityColor(1)
-				end
-				GameTooltip:AddLine(artifactName, r, g, b, 1)
-				GameTooltip:AddLine(artifactRarity, r, g, b, r, g, b)
-				GameTooltip:AddDoubleLine(ARCHAEOLOGY_RUNE_STONES..": "..numFragmentsCollected.."/"..numFragmentsRequired, "Keystones: "..keystoneCount, 1, 1, 1, 1, 1, 1)
-				GameTooltip:AddLine(" ")
-				GameTooltip:AddLine(artifactDescription, 1, 1, 1, 1)
-				GameTooltip:Show()
-			end
-		end)
-		bar:SetScript("OnLeave", function()
-			GameTooltip:Hide()
-		end)
+
 		local sOffset = SV.Scale(1)
 		-- Race Text
 		race:SetFontObject(NumberFont_Outline_Large)
@@ -516,6 +483,38 @@ function PLUGIN:LoadArchaeologyMode()
 		solve.text:SetShadowColor(0,0,0,0.5)
 		solve.text:SetText(SOLVE)
 		solve.text:SetPoint("CENTER", solve, "CENTER", 2, 0)
+		solve.RaceIndex = i
+		solve.border = bar
+		solve:SetScript("OnEnter", function(self)
+			GameTooltip:SetOwner(self, "ANCHOR_BOTTOMRIGHT", 2, 250)
+			GameTooltip:ClearLines()
+			if GetNumArtifactsByRace(self.RaceIndex) > 0 then
+				self.text:SetTextColor(1, 1, 0)
+				self.border:SetBackdropBorderColor(0,0.8,1)
+				SetSelectedArtifact(self.RaceIndex)
+				local artifactName, artifactDescription, artifactRarity, _, _, keystoneCount = GetSelectedArtifactInfo()
+				local numFragmentsCollected, numFragmentsAdded, numFragmentsRequired = GetArtifactProgress()
+				local r, g, b
+				if artifactRarity == 1 then
+					artifactRarity = ITEM_QUALITY3_DESC
+					r, g, b = GetItemQualityColor(3)
+				else
+					artifactRarity = ITEM_QUALITY1_DESC
+					r, g, b = GetItemQualityColor(1)
+				end
+				GameTooltip:AddLine(artifactName, r, g, b, 1)
+				GameTooltip:AddLine(artifactRarity, r, g, b, r, g, b)
+				GameTooltip:AddDoubleLine(ARCHAEOLOGY_RUNE_STONES..": "..numFragmentsCollected.."/"..numFragmentsRequired, "Keystones: "..keystoneCount, 1, 1, 1, 1, 1, 1)
+				GameTooltip:AddLine(" ")
+				GameTooltip:AddLine(artifactDescription, 1, 1, 1, 1)
+				GameTooltip:Show()
+			end
+		end)
+		solve:SetScript("OnLeave", function(self)
+			self.text:SetTextColor(0.7, 0.7, 0.7)
+			self.border:SetBackdropBorderColor(0,0,0)
+			GameTooltip:Hide()
+		end)

 		progressBars[i] = {
 			["bar"] = bar,
diff --git a/Interface/AddOns/SVUI_FightOMatic/Loader.lua b/Interface/AddOns/SVUI_FightOMatic/Loader.lua
index a6b4ee3..10cfbd1 100644
--- a/Interface/AddOns/SVUI_FightOMatic/Loader.lua
+++ b/Interface/AddOns/SVUI_FightOMatic/Loader.lua
@@ -16,6 +16,13 @@ S U P E R - V I L L A I N - U I   By: Munglunch                              #
 LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+
 local AddonName, AddonObject = ...

 assert(LibSuperVillain, AddonName .. " requires LibSuperVillain")
diff --git a/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.lua b/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.lua
index 684631e..e726c62 100644
--- a/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.lua
+++ b/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.lua
@@ -16,10 +16,6 @@ S U P E R - V I L L A I N - U I   By: Munglunch                              #
 LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--
---[[  CONSTANTS ]]--
-
-BINDING_HEADER_SVUIFIGHT = "Supervillain UI: Fight-O-Matic";
-BINDING_NAME_SVUIFIGHT_RADIO = "Call Out Incoming";

 --[[ GLOBALS ]]--

@@ -47,6 +43,11 @@ local abs, ceil, floor, round = math.abs, math.ceil, math.floor, math.round;
 local tremove, twipe = table.remove, table.wipe;
 --[[ BINARY METHODS ]]--
 local band, bor = bit.band, bit.bor;
+
+--[[  CONSTANTS ]]--
+
+_G.BINDING_HEADER_SVUIFIGHT = "Supervillain UI: Fight-O-Matic";
+_G.BINDING_NAME_SVUIFIGHT_RADIO = "Call Out Incoming";
 --[[
 ##########################################################
 GET ADDON DATA
diff --git a/Interface/AddOns/SVUI_LogOMatic/Loader.lua b/Interface/AddOns/SVUI_LogOMatic/Loader.lua
index c07686b..68164db 100644
--- a/Interface/AddOns/SVUI_LogOMatic/Loader.lua
+++ b/Interface/AddOns/SVUI_LogOMatic/Loader.lua
@@ -16,6 +16,13 @@ S U P E R - V I L L A I N - U I   By: Munglunch                              #
 LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+
 local AddonName, AddonObject = ...

 assert(LibSuperVillain, AddonName .. " requires LibSuperVillain")
diff --git a/Interface/AddOns/SVUI_StyleOMatic/Loader.lua b/Interface/AddOns/SVUI_StyleOMatic/Loader.lua
index 2865ff9..fb3e34a 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/Loader.lua
+++ b/Interface/AddOns/SVUI_StyleOMatic/Loader.lua
@@ -16,6 +16,13 @@ S U P E R - V I L L A I N - U I   By: Munglunch                              #
 LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+
 local AddonName, AddonObject = ...

 assert(LibSuperVillain, AddonName .. " requires LibSuperVillain")
diff --git a/Interface/AddOns/SVUI_TrackOMatic/Loader.lua b/Interface/AddOns/SVUI_TrackOMatic/Loader.lua
index d8875c7..a96fd05 100644
--- a/Interface/AddOns/SVUI_TrackOMatic/Loader.lua
+++ b/Interface/AddOns/SVUI_TrackOMatic/Loader.lua
@@ -16,6 +16,13 @@ S U P E R - V I L L A I N - U I   By: Munglunch                              #
 LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--
+--GLOBAL NAMESPACE
+local _G = _G;
+--LUA
+local unpack        = _G.unpack;
+local select        = _G.select;
+local assert        = _G.assert;
+
 local AddonName, AddonObject = ...

 assert(LibSuperVillain, AddonName .. " requires LibSuperVillain")
diff --git a/Interface/AddOns/SVUI_TrackOMatic/SVUI_TrackOMatic.lua b/Interface/AddOns/SVUI_TrackOMatic/SVUI_TrackOMatic.lua
index 19ca479..7223fc5 100644
--- a/Interface/AddOns/SVUI_TrackOMatic/SVUI_TrackOMatic.lua
+++ b/Interface/AddOns/SVUI_TrackOMatic/SVUI_TrackOMatic.lua
@@ -42,6 +42,11 @@ local sqrt2, max = math.sqrt(2), math.max;
 local tcopy, twipe, tsort, tconcat, tdump = table.copy, table.wipe, table.sort, table.concat, table.dump;
 --[[ BINARY METHODS ]]--
 local band = bit.band;
+
+--[[  CONSTANTS ]]--
+
+_G.BINDING_HEADER_SVUITRACK = "Supervillain UI: Track-O-Matic";
+_G.BINDING_NAME_SVUITRACK_DOODAD = "Toggle Tracking Device";
 --[[
 ##########################################################
 GET ADDON DATA
@@ -55,12 +60,9 @@ local SV = _G["SVUI"];
 local L = SV.L;
 --[[
 ##########################################################
-LOCALS AND BINDING
+LOCALS
 ##########################################################
 ]]--
-BINDING_HEADER_SVUITRACK = "Supervillain UI: Track-O-Matic";
-BINDING_NAME_SVUITRACK_DOODAD = "Toggle Tracking Device";
-
 local NewHook = hooksecurefunc;
 local playerGUID = UnitGUID('player')
 local classColor = RAID_CLASS_COLORS
@@ -198,7 +200,7 @@ function PLUGIN:Load()
         _TRACKER.Range:SetFont(SV.Media.font.roboto, 14, "OUTLINE")
         _TRACKER.Range:SetTextColor(1, 1, 1, 0.75)
         _TRACKER.Spin = Rotate_Arrow
-        _TRACKER.Track = Triangulate
+        _TRACKER.Track = _G.Triangulate

         _TRACKER:RegisterForDrag("LeftButton");
         _TRACKER:SetScript("OnUpdate", Tracker_OnUpdate)
diff --git a/Interface/AddOns/SVUI_TrackOMatic/components/triangulate.lua b/Interface/AddOns/SVUI_TrackOMatic/components/triangulate.lua
index 576b5f7..60f9f92 100644
--- a/Interface/AddOns/SVUI_TrackOMatic/components/triangulate.lua
+++ b/Interface/AddOns/SVUI_TrackOMatic/components/triangulate.lua
@@ -388,7 +388,7 @@ local function GetDistance(map1, floor1, x1, y1, map2, floor2, x2, y2)
     return dist, angle;
 end

-function Triangulate(unit, noMapLocation)
+_G.Triangulate = function(unit, noMapLocation)
     if(WorldMap and WorldMap:IsShown()) then return end

     local plot1, plot2, plot3, plot4, plot5, plot6, plot7, plot8;