Quantcast

4.4 update

Steven Jackson [09-14-14 - 23:57]
4.4 update
Filename
Interface/AddOns/SVUI/SVUI.toc
Interface/AddOns/SVUI/assets/artwork/Template/Background/PAPER.blp
Interface/AddOns/SVUI/installer/presets/auras.lua
Interface/AddOns/SVUI/installer/presets/bars.lua
Interface/AddOns/SVUI/installer/presets/layouts.lua
Interface/AddOns/SVUI/installer/presets/media.lua
Interface/AddOns/SVUI/installer/presets/units.lua
Interface/AddOns/SVUI/installer/setup.lua
Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_ActionPanel/oUF_ActionPanel.toc
Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_Afflicted/oUF_Afflicted.toc
Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_ArcaneCharge/oUF_ArcaneCharge.toc
Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_Combatant/oUF_Combatant.toc
Interface/AddOns/SVUI/packages/actionbar/SVBar.lua
Interface/AddOns/SVUI/system/common.lua
Interface/AddOns/SVUI/system/media.lua
Interface/AddOns/SVUI_AnsweringService/SVUI_AnsweringService.toc
Interface/AddOns/SVUI_ArtOfWar/SVUI_ArtOfWar.toc
Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc
Interface/AddOns/SVUI_Laborer/SVUI_Laborer.toc
Interface/AddOns/SVUI_LogOMatic/SVUI_LogOMatic.toc
Interface/AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.toc
Interface/AddOns/SVUI_StyleOMatic/addons/spellbook.lua
Interface/AddOns/SVUI_StyleOMatic/addons/worldmap.lua
Interface/SPELLBOOK/Professions-Book-Left.blp
Interface/SPELLBOOK/Professions-Book-Right.blp
Interface/SPELLBOOK/Spellbook-Page-1.blp
Interface/SPELLBOOK/Spellbook-Page-2.blp
diff --git a/Interface/AddOns/SVUI/SVUI.toc b/Interface/AddOns/SVUI/SVUI.toc
index 81e9c68..4e786df 100644
--- a/Interface/AddOns/SVUI/SVUI.toc
+++ b/Interface/AddOns/SVUI/SVUI.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 4.3
+## Version: 4.4
 ## Title: |cffFF9900SVUI|r
 ## Notes: Supervillain UI [|cff9911FFCore Framework|r].
 ## SavedVariables: SVUI_Global
diff --git a/Interface/AddOns/SVUI/assets/artwork/Template/Background/PAPER.blp b/Interface/AddOns/SVUI/assets/artwork/Template/Background/PAPER.blp
new file mode 100644
index 0000000..9f8b2b7
Binary files /dev/null and b/Interface/AddOns/SVUI/assets/artwork/Template/Background/PAPER.blp differ
diff --git a/Interface/AddOns/SVUI/installer/presets/auras.lua b/Interface/AddOns/SVUI/installer/presets/auras.lua
new file mode 100644
index 0000000..5ee13c4
--- /dev/null
+++ b/Interface/AddOns/SVUI/installer/presets/auras.lua
@@ -0,0 +1,283 @@
+--[[
+##############################################################################
+_____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
+ ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__      #
+  __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____     #
+   ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____    #
+    ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____   #
+     _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____  #
+      __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ #
+       _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_#
+        ___\///////////___________\///___________\/////////_____\///////////_#
+##############################################################################
+S U P E R - V I L L A I N - U I   By: Munglunch                              #
+##############################################################################
+##########################################################
+LOCALIZED LUA FUNCTIONS
+##########################################################
+]]--
+--[[ GLOBALS ]]--
+local _G = _G;
+local unpack    = _G.unpack;
+local select    = _G.select;
+local pairs     = _G.pairs;
+--[[
+##########################################################
+LOCALIZED GLOBALS
+##########################################################
+]]--
+local SVUI_CLASS_COLORS = _G.SVUI_CLASS_COLORS
+local RAID_CLASS_COLORS = _G.RAID_CLASS_COLORS
+--[[
+##########################################################
+GET ADDON DATA
+##########################################################
+]]--
+local SV, L = unpack(select(2, ...));
+local scc = SVUI_CLASS_COLORS[SV.class];
+local rcc = RAID_CLASS_COLORS[SV.class];
+local r2 = .1 + (rcc.r * .1)
+local g2 = .1 + (rcc.g * .1)
+local b2 = .1 + (rcc.b * .1)
+--[[
+##########################################################
+LAYOUT PRESETS
+##########################################################
+]]--
+local presets = {
+	["auras"] = {
+		["link"] = "SVUnit",
+		["default"] = {
+			["player"] = {
+				["buffs"] = {
+					enable = false,
+					attachTo = "DEBUFFS",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["debuffs"] = {
+					enable = false,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			},
+			["target"] = {
+				["smartAuraDisplay"] = "DISABLED",
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			},
+			["focus"] = {
+				["smartAuraDisplay"] = "DISABLED",
+				["buffs"] = {
+					enable = false,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			}
+		},
+		["icons"] = {
+			["player"] = {
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			},
+			["target"] = {
+				["smartAuraDisplay"] = "DISABLED",
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			},
+			["focus"] = {
+				["smartAuraDisplay"] = "DISABLED",
+				["buffs"] = {
+					enable = false,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			}
+		},
+		["bars"] = {
+			["player"] = {
+				["buffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["debuffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "FRAME"
+				}
+			},
+			["target"] = {
+				["smartAuraDisplay"] = "SHOW_DEBUFFS_ON_FRIENDLIES",
+				["buffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["debuffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "FRAME"
+				}
+			},
+			["focus"] = {
+				["smartAuraDisplay"] = "SHOW_DEBUFFS_ON_FRIENDLIES",
+				["buffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["debuffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "FRAME"
+				}
+			}
+		},
+		["theworks"] = {
+			["player"] = {
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "DEBUFFS"
+				}
+			},
+			["target"] = {
+				["smartAuraDisplay"] = "SHOW_DEBUFFS_ON_FRIENDLIES",
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "DEBUFFS"
+				}
+			},
+			["focus"] = {
+				["smartAuraDisplay"] = "SHOW_DEBUFFS_ON_FRIENDLIES",
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "DEBUFFS"
+				}
+			}
+		},
+	}
+};
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/installer/presets/bars.lua b/Interface/AddOns/SVUI/installer/presets/bars.lua
new file mode 100644
index 0000000..2e667df
--- /dev/null
+++ b/Interface/AddOns/SVUI/installer/presets/bars.lua
@@ -0,0 +1,133 @@
+--[[
+##############################################################################
+_____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
+ ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__      #
+  __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____     #
+   ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____    #
+    ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____   #
+     _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____  #
+      __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ #
+       _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_#
+        ___\///////////___________\///___________\/////////_____\///////////_#
+##############################################################################
+S U P E R - V I L L A I N - U I   By: Munglunch                              #
+##############################################################################
+##########################################################
+LOCALIZED LUA FUNCTIONS
+##########################################################
+]]--
+--[[ GLOBALS ]]--
+local _G = _G;
+local unpack    = _G.unpack;
+local select    = _G.select;
+local pairs     = _G.pairs;
+--[[
+##########################################################
+LOCALIZED GLOBALS
+##########################################################
+]]--
+local SVUI_CLASS_COLORS = _G.SVUI_CLASS_COLORS
+local RAID_CLASS_COLORS = _G.RAID_CLASS_COLORS
+--[[
+##########################################################
+GET ADDON DATA
+##########################################################
+]]--
+local SV, L = unpack(select(2, ...));
+local scc = SVUI_CLASS_COLORS[SV.class];
+local rcc = RAID_CLASS_COLORS[SV.class];
+local r2 = .1 + (rcc.r * .1)
+local g2 = .1 + (rcc.g * .1)
+local b2 = .1 + (rcc.b * .1)
+--[[
+##########################################################
+LAYOUT PRESETS
+##########################################################
+]]--
+local presets = {
+	["bars"] = {
+		["link"] = "SVBar",
+		["default"] = {
+			["Bar1"] = {
+				buttonsize = 32
+			},
+			["Bar2"] = {
+				enable = false
+			},
+			["Bar3"] = {
+				buttons = 6,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 32
+			},
+			["Bar5"] = {
+				buttons = 6,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 32
+			}
+		},
+		["onebig"] = {
+			["Bar1"] = {
+				buttonsize = 40
+			},
+			["Bar2"] = {
+				enable = false
+			},
+			["Bar3"] = {
+				buttons = 6,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 40
+			},
+			["Bar5"] = {
+				buttons = 6,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 40
+			}
+		},
+		["twosmall"] = {
+			["Bar1"] = {
+				buttonsize = 32
+			},
+			["Bar2"] = {
+				enable = true,
+				buttonsize = 32
+			},
+			["Bar3"] = {
+				buttons = 12,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 32
+			},
+			["Bar5"] = {
+				buttons = 12,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 32
+			}
+		},
+		["twobig"] = {
+			["Bar1"] = {
+				buttonsize = 40
+			},
+			["Bar2"] = {
+				enable = true,
+				buttonsize = 40
+			},
+			["Bar3"] = {
+				buttons = 12,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 40
+			},
+			["Bar5"] = {
+				buttons = 12,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 40
+			}
+		},
+	},
+};
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/installer/presets/layouts.lua b/Interface/AddOns/SVUI/installer/presets/layouts.lua
new file mode 100644
index 0000000..63248ee
--- /dev/null
+++ b/Interface/AddOns/SVUI/installer/presets/layouts.lua
@@ -0,0 +1,394 @@
+--[[
+##############################################################################
+_____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
+ ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__      #
+  __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____     #
+   ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____    #
+    ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____   #
+     _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____  #
+      __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ #
+       _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_#
+        ___\///////////___________\///___________\/////////_____\///////////_#
+##############################################################################
+S U P E R - V I L L A I N - U I   By: Munglunch                              #
+##############################################################################
+##########################################################
+LOCALIZED LUA FUNCTIONS
+##########################################################
+]]--
+--[[ GLOBALS ]]--
+local _G = _G;
+local unpack    = _G.unpack;
+local select    = _G.select;
+local pairs     = _G.pairs;
+--[[
+##########################################################
+LOCALIZED GLOBALS
+##########################################################
+]]--
+local SVUI_CLASS_COLORS = _G.SVUI_CLASS_COLORS
+local RAID_CLASS_COLORS = _G.RAID_CLASS_COLORS
+--[[
+##########################################################
+GET ADDON DATA
+##########################################################
+]]--
+local SV, L = unpack(select(2, ...));
+local scc = SVUI_CLASS_COLORS[SV.class];
+local rcc = RAID_CLASS_COLORS[SV.class];
+local r2 = .1 + (rcc.r * .1)
+local g2 = .1 + (rcc.g * .1)
+local b2 = .1 + (rcc.b * .1)
+--[[
+##########################################################
+LAYOUT PRESETS
+##########################################################
+]]--
+local presets = {
+	["layouts"] = {
+		["link"] = "SVUnit",
+		["default"] = {
+			["grid"] = {
+				["enable"] = false,
+			},
+			["party"] = {
+				width = 75,
+				height = 60,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				icons = {
+					roleIcon = {
+						["attachTo"] = "INNERBOTTOMRIGHT",
+						["xOffset"] = 0,
+						["yOffset"] = 0,
+					},
+				},
+				name = {
+					["font"] = "SVUI Default Font",
+					["fontOutline"] = "OUTLINE",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 0,
+					["yOffset"] = 0,
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				gRowCol = 1,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				showBy = "RIGHT_DOWN",
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				gRowCol = 1,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				showBy = "RIGHT_DOWN",
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				gRowCol = 1,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				showBy = "RIGHT_DOWN",
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+		},
+		["healer"] = {
+			["grid"] = {
+				["enable"] = false,
+			},
+			["party"] = {
+				width = 75,
+				height = 60,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMRIGHT",
+						["xOffset"] = 0,
+						["yOffset"] = 0,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["fontOutline"] = "OUTLINE",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 0,
+					["yOffset"] = 0,
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				["showBy"] = "DOWN_RIGHT",
+				["gRowCol"] = 1,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = true,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 0,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				["showBy"] = "DOWN_RIGHT",
+				["gRowCol"] = 1,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = true,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 0,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				["showBy"] = "DOWN_RIGHT",
+				["gRowCol"] = 1,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = true,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 0,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+		},
+		["dps"] = {
+			["grid"] = {
+				["enable"] = false,
+			},
+			["party"] = {
+				width = 115,
+				height = 25,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				["power"] = {
+					["enable"] = false,
+				},
+				portrait = {
+					enable = false,
+					overlay = false,
+					style = "2D",
+					width = 35,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "LEFT",
+						["xOffset"] = -2,
+						["yOffset"] = 0,
+					},
+				},
+				["name"] = {
+					["font"] = "Roboto",
+					["fontOutline"] = "NONE",
+					["position"] = "CENTER",
+					["xOffset"] = 0,
+					["yOffset"] = 1,
+				},
+			},
+			["raid10"] = {
+				["showBy"] = "UP_RIGHT",
+				["gRowCol"] = 2,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERLEFT",
+						["xOffset"] = 10,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "Roboto",
+					["position"] = "CENTER",
+					["xOffset"] = 0,
+					["yOffset"] = 1,
+				},
+				["width"] = 80,
+				["height"] = 20,
+			},
+			["raid25"] = {
+				["showBy"] = "UP_RIGHT",
+				["gRowCol"] = 3,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERLEFT",
+						["xOffset"] = 10,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "Roboto",
+					["position"] = "CENTER",
+					["xOffset"] = 0,
+					["yOffset"] = 1,
+				},
+				["width"] = 80,
+				["height"] = 20,
+			},
+			["raid40"] = {
+				["showBy"] = "UP_RIGHT",
+				["gRowCol"] = 4,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERLEFT",
+						["xOffset"] = 10,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "Roboto",
+					["position"] = "CENTER",
+					["xOffset"] = 0,
+					["yOffset"] = 1,
+				},
+				["width"] = 80,
+				["height"] = 20,
+			},
+		},
+		["grid"] = {
+			["grid"] = {
+				["enable"] = true,
+				["size"] = 34,
+				["shownames"] = true,
+			},
+			["party"] = {
+				["gridAllowed"] = true,
+				["wrapXOffset"] = 1,
+				["wrapYOffset"] = 1,
+			},
+			["raid10"] = {
+				["gridAllowed"] = true,
+				["wrapXOffset"] = 1,
+				["wrapYOffset"] = 1,
+				["gRowCol"] = 1,
+				["showBy"] = "RIGHT_DOWN",
+			},
+			["raid25"] = {
+				["gridAllowed"] = true,
+				["wrapXOffset"] = 1,
+				["wrapYOffset"] = 1,
+				["gRowCol"] = 1,
+				["showBy"] = "RIGHT_DOWN",
+			},
+			["raid40"] = {
+				["gridAllowed"] = true,
+				["wrapXOffset"] = 1,
+				["wrapYOffset"] = 1,
+				["gRowCol"] = 1,
+				["showBy"] = "RIGHT_DOWN",
+			},
+		},
+	}
+};
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/installer/presets/media.lua b/Interface/AddOns/SVUI/installer/presets/media.lua
new file mode 100644
index 0000000..6724b9b
--- /dev/null
+++ b/Interface/AddOns/SVUI/installer/presets/media.lua
@@ -0,0 +1,119 @@
+--[[
+##############################################################################
+_____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
+ ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__      #
+  __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____     #
+   ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____    #
+    ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____   #
+     _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____  #
+      __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ #
+       _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_#
+        ___\///////////___________\///___________\/////////_____\///////////_#
+##############################################################################
+S U P E R - V I L L A I N - U I   By: Munglunch                              #
+##############################################################################
+##########################################################
+LOCALIZED LUA FUNCTIONS
+##########################################################
+]]--
+--[[ GLOBALS ]]--
+local _G = _G;
+local unpack    = _G.unpack;
+local select    = _G.select;
+local pairs     = _G.pairs;
+--[[
+##########################################################
+LOCALIZED GLOBALS
+##########################################################
+]]--
+local SVUI_CLASS_COLORS = _G.SVUI_CLASS_COLORS
+local RAID_CLASS_COLORS = _G.RAID_CLASS_COLORS
+--[[
+##########################################################
+GET ADDON DATA
+##########################################################
+]]--
+local SV, L = unpack(select(2, ...));
+local scc = SVUI_CLASS_COLORS[SV.class];
+local rcc = RAID_CLASS_COLORS[SV.class];
+local r2 = .1 + (rcc.r * .1)
+local g2 = .1 + (rcc.g * .1)
+local b2 = .1 + (rcc.b * .1)
+--[[
+##########################################################
+LAYOUT PRESETS
+##########################################################
+]]--
+local presets = {
+	["media"] = {
+		["link"] = "media",
+		["default"] = {
+			["colors"] = {
+				["special"] = {.37, .32, .29, 1},
+			},
+			["textures"] = {
+				["pattern"] = "SVUI Backdrop 1",
+				["comic"] = "SVUI Comic 1",
+				["unitlarge"] = "SVUI Unit BG 1",
+				["unitsmall"] = "SVUI Small BG 1",
+			},
+			["unitframes"] = {
+				["buff_bars"] = {.91, .91, .31, 1},
+				["health"] = {.1, .6, .02, 1},
+				["casting"] = {.91, .91, .31, 1},
+				["spark"] = {1, .72, 0, 1},
+			},
+		},
+		["kaboom"] = {
+			["colors"] = {
+				["special"] = {.28, .31, .32, 1},
+			},
+			["textures"] = {
+				["pattern"] = "SVUI Backdrop 2",
+				["comic"] = "SVUI Comic 2",
+				["unitlarge"] = "SVUI Unit BG 2",
+				["unitsmall"] = "SVUI Small BG 2",
+			},
+			["unitframes"] = {
+				["buff_bars"] = {.51, .79, 0, 1},
+				["health"] = {.16, .86, .22, 1},
+				["casting"] = {.91, .91, 0, 1},
+				["spark"] = {1, .72, 0, 1},
+			},
+		},
+		["classy"] = {
+			["colors"] = {
+				["special"] = {r2, g2, b2, 1},
+			},
+			["textures"] = {
+				["pattern"] = "SVUI Backdrop 3",
+				["comic"] = "SVUI Comic 3",
+				["unitlarge"] = "SVUI Unit BG 3",
+				["unitsmall"] = "SVUI Small BG 3",
+			},
+			["unitframes"] = {
+				["buff_bars"] = {scc.r, scc.g, scc.b, 1},
+				["health"] = {.16, .86, .22, 1},
+				["casting"] = {.91, .91, 0, 1},
+				["spark"] = {1, .72, 0, 1},
+			},
+		},
+		["dark"] = {
+			["colors"] = {
+				["special"] = {.25, .26, .27, 1},
+			},
+			["textures"] = {
+				["pattern"] = "SVUI Backdrop 4",
+				["comic"] = "SVUI Comic 4",
+				["unitlarge"] = "SVUI Unit BG 4",
+				["unitsmall"] = "SVUI Small BG 4",
+			},
+			["unitframes"] = {
+				["buff_bars"] = {.45, .55, .15, 1},
+				["health"] = {.06, .06, .06, 1},
+				["casting"] = {.8, .8, 0, 1},
+				["spark"] = {1, .72, 0, 1},
+			},
+		},
+	}
+};
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/installer/presets/units.lua b/Interface/AddOns/SVUI/installer/presets/units.lua
new file mode 100644
index 0000000..2e997ce
--- /dev/null
+++ b/Interface/AddOns/SVUI/installer/presets/units.lua
@@ -0,0 +1,385 @@
+--[[
+##############################################################################
+_____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
+ ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__      #
+  __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____     #
+   ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____    #
+    ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____   #
+     _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____  #
+      __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ #
+       _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_#
+        ___\///////////___________\///___________\/////////_____\///////////_#
+##############################################################################
+S U P E R - V I L L A I N - U I   By: Munglunch                              #
+##############################################################################
+##########################################################
+LOCALIZED LUA FUNCTIONS
+##########################################################
+]]--
+--[[ GLOBALS ]]--
+local _G = _G;
+local unpack    = _G.unpack;
+local select    = _G.select;
+local pairs     = _G.pairs;
+--[[
+##########################################################
+LOCALIZED GLOBALS
+##########################################################
+]]--
+local SVUI_CLASS_COLORS = _G.SVUI_CLASS_COLORS
+local RAID_CLASS_COLORS = _G.RAID_CLASS_COLORS
+--[[
+##########################################################
+GET ADDON DATA
+##########################################################
+]]--
+local SV, L = unpack(select(2, ...));
+local scc = SVUI_CLASS_COLORS[SV.class];
+local rcc = RAID_CLASS_COLORS[SV.class];
+local r2 = .1 + (rcc.r * .1)
+local g2 = .1 + (rcc.g * .1)
+local b2 = .1 + (rcc.b * .1)
+--[[
+##########################################################
+LAYOUT PRESETS
+##########################################################
+]]--
+local presets = {
+	["units"] = {
+		["link"] = "SVUnit",
+		["default"] = {
+			["player"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["target"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["pet"] = {
+				width = 130,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["targettarget"] = {
+				width = 130,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["boss"] = {
+				width = 200,
+				height = 45,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["party"] = {
+				width = 75,
+				height = 60,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "INNERTOPLEFT"
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+		},
+		["super"] = {
+			["player"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["target"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["pet"] = {
+				width = 150,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["targettarget"] = {
+				width = 150,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["boss"] = {
+				width = 200,
+				height = 45,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["party"] = {
+				width = 75,
+				height = 60,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "INNERTOPLEFT"
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+		},
+		["simple"] = {
+			["player"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 60,
+				}
+			},
+			["target"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 60,
+				}
+			},
+			["pet"] = {
+				width = 150,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 30,
+				},
+				name = {
+					position = "INNERLEFT"
+				},
+			},
+			["targettarget"] = {
+				width = 150,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 30,
+				},
+				name = {
+					position = "INNERLEFT"
+				},
+			},
+			["boss"] = {
+				width = 200,
+				height = 45,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 45,
+				}
+			},
+			["party"] = {
+				width = 100,
+				height = 35,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 35,
+				},
+				name = {
+					position = "INNERRIGHT"
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+		},
+		["compact"] = {
+			["player"] = {
+				width = 215,
+				height = 50,
+				portrait = {
+					enable = false
+				}
+			},
+			["target"] = {
+				width = 215,
+				height = 50,
+				portrait = {
+					enable = false
+				}
+			},
+			["pet"] = {
+				width = 130,
+				height = 30,
+				portrait = {
+					enable = false
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["targettarget"] = {
+				width = 130,
+				height = 30,
+				portrait = {
+					enable = false
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["boss"] = {
+				width = 200,
+				height = 45,
+				portrait = {
+					enable = false
+				}
+			},
+			["party"] = {
+				width = 70,
+				height = 30,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = false
+				},
+				name = {
+					position = "INNERTOPLEFT"
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+		},
+	}
+};
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/installer/setup.lua b/Interface/AddOns/SVUI/installer/setup.lua
new file mode 100644
index 0000000..bb2b478
--- /dev/null
+++ b/Interface/AddOns/SVUI/installer/setup.lua
@@ -0,0 +1,2401 @@
+--[[
+##############################################################################
+_____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
+ ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__      #
+  __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____     #
+   ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____    #
+    ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____   #
+     _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____  #
+      __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ #
+       _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_#
+        ___\///////////___________\///___________\/////////_____\///////////_#
+##############################################################################
+S U P E R - V I L L A I N - U I   By: Munglunch                              #
+##############################################################################
+##########################################################
+LOCALIZED LUA FUNCTIONS
+##########################################################
+]]--
+--[[ GLOBALS ]]--
+local _G = _G;
+local unpack 	= _G.unpack;
+local select 	= _G.select;
+local type 		= _G.type;
+local string 	= _G.string;
+local table     = _G.table;
+local format = string.format;
+local tcopy = table.copy;
+--[[
+##########################################################
+GET ADDON DATA
+##########################################################
+]]--
+local SV, L, Registry = unpack(select(2, ...));
+--[[
+##########################################################
+LOCAL VARS
+##########################################################
+]]--
+local CURRENT_PAGE, MAX_PAGE, XOFF = 0, 9, (GetScreenWidth() * 0.025)
+local okToResetMOVE = false
+local mungs = false;
+local user_music_vol;
+local musicIsPlaying;
+
+local SVUI_CLASS_COLORS = _G.SVUI_CLASS_COLORS
+local RAID_CLASS_COLORS = _G.RAID_CLASS_COLORS
+local scc = SVUI_CLASS_COLORS[SV.class];
+local rcc = RAID_CLASS_COLORS[SV.class];
+local r2 = .1 + (rcc.r * .1)
+local g2 = .1 + (rcc.g * .1)
+local b2 = .1 + (rcc.b * .1)
+--[[
+##########################################################
+SETUP CLASS OBJECT
+##########################################################
+]]--
+local Setup = {};
+--[[
+##########################################################
+LAYOUT PRESETS
+##########################################################
+]]--
+local PRESET_DATA;
+
+local function LoadAllPresets()
+	PRESET_DATA = {}
+
+	PRESET_DATA["media"] = {
+		["link"] = "media",
+		["default"] = {
+			["colors"] = {
+				["special"] = {.37, .32, .29, 1},
+			},
+			["textures"] = {
+				["pattern"] = "SVUI Backdrop 1",
+				["comic"] = "SVUI Comic 1",
+				["unitlarge"] = "SVUI Unit BG 1",
+				["unitsmall"] = "SVUI Small BG 1",
+			},
+			["unitframes"] = {
+				["buff_bars"] = {.91, .91, .31, 1},
+				["health"] = {.1, .6, .02, 1},
+				["casting"] = {.91, .91, .31, 1},
+				["spark"] = {1, .72, 0, 1},
+			},
+		},
+		["kaboom"] = {
+			["colors"] = {
+				["special"] = {.28, .31, .32, 1},
+			},
+			["textures"] = {
+				["pattern"] = "SVUI Backdrop 2",
+				["comic"] = "SVUI Comic 2",
+				["unitlarge"] = "SVUI Unit BG 2",
+				["unitsmall"] = "SVUI Small BG 2",
+			},
+			["unitframes"] = {
+				["buff_bars"] = {.51, .79, 0, 1},
+				["health"] = {.16, .86, .22, 1},
+				["casting"] = {.91, .91, 0, 1},
+				["spark"] = {1, .72, 0, 1},
+			},
+		},
+		["classy"] = {
+			["colors"] = {
+				["special"] = {r2, g2, b2, 1},
+			},
+			["textures"] = {
+				["pattern"] = "SVUI Backdrop 3",
+				["comic"] = "SVUI Comic 3",
+				["unitlarge"] = "SVUI Unit BG 3",
+				["unitsmall"] = "SVUI Small BG 3",
+			},
+			["unitframes"] = {
+				["buff_bars"] = {scc.r, scc.g, scc.b, 1},
+				["health"] = {.16, .86, .22, 1},
+				["casting"] = {.91, .91, 0, 1},
+				["spark"] = {1, .72, 0, 1},
+			},
+		},
+		["dark"] = {
+			["colors"] = {
+				["special"] = {.25, .26, .27, 1},
+			},
+			["textures"] = {
+				["pattern"] = "SVUI Backdrop 4",
+				["comic"] = "SVUI Comic 4",
+				["unitlarge"] = "SVUI Unit BG 4",
+				["unitsmall"] = "SVUI Small BG 4",
+			},
+			["unitframes"] = {
+				["buff_bars"] = {.45, .55, .15, 1},
+				["health"] = {.06, .06, .06, 1},
+				["casting"] = {.8, .8, 0, 1},
+				["spark"] = {1, .72, 0, 1},
+			},
+		},
+	}
+	PRESET_DATA["auras"] = {
+		["link"] = "SVUnit",
+		["default"] = {
+			["player"] = {
+				["buffs"] = {
+					enable = false,
+					attachTo = "DEBUFFS",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["debuffs"] = {
+					enable = false,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			},
+			["target"] = {
+				["smartAuraDisplay"] = "DISABLED",
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			},
+			["focus"] = {
+				["smartAuraDisplay"] = "DISABLED",
+				["buffs"] = {
+					enable = false,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			}
+		},
+		["icons"] = {
+			["player"] = {
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			},
+			["target"] = {
+				["smartAuraDisplay"] = "DISABLED",
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			},
+			["focus"] = {
+				["smartAuraDisplay"] = "DISABLED",
+				["buffs"] = {
+					enable = false,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = false
+				}
+			}
+		},
+		["bars"] = {
+			["player"] = {
+				["buffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["debuffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "FRAME"
+				}
+			},
+			["target"] = {
+				["smartAuraDisplay"] = "SHOW_DEBUFFS_ON_FRIENDLIES",
+				["buffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["debuffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "FRAME"
+				}
+			},
+			["focus"] = {
+				["smartAuraDisplay"] = "SHOW_DEBUFFS_ON_FRIENDLIES",
+				["buffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["debuffs"] = {
+					enable = false,
+					attachTo = "FRAME"
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "FRAME"
+				}
+			}
+		},
+		["theworks"] = {
+			["player"] = {
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPLEFT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'RIGHT',
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "DEBUFFS"
+				}
+			},
+			["target"] = {
+				["smartAuraDisplay"] = "SHOW_DEBUFFS_ON_FRIENDLIES",
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "DEBUFFS"
+				}
+			},
+			["focus"] = {
+				["smartAuraDisplay"] = "SHOW_DEBUFFS_ON_FRIENDLIES",
+				["buffs"] = {
+					enable = true,
+					attachTo = "FRAME",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["debuffs"] = {
+					enable = true,
+					attachTo = "BUFFS",
+					anchorPoint = 'TOPRIGHT',
+					verticalGrowth = 'UP',
+					horizontalGrowth = 'LEFT',
+				},
+				["aurabar"] = {
+					enable = true,
+					attachTo = "DEBUFFS"
+				}
+			}
+		},
+	}
+	PRESET_DATA["bars"] = {
+		["link"] = "SVBar",
+		["default"] = {
+			["Bar1"] = {
+				buttonsize = 32
+			},
+			["Bar2"] = {
+				enable = false
+			},
+			["Bar3"] = {
+				buttons = 6,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 32
+			},
+			["Bar5"] = {
+				buttons = 6,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 32
+			}
+		},
+		["onebig"] = {
+			["Bar1"] = {
+				buttonsize = 40
+			},
+			["Bar2"] = {
+				enable = false
+			},
+			["Bar3"] = {
+				buttons = 6,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 40
+			},
+			["Bar5"] = {
+				buttons = 6,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 40
+			}
+		},
+		["twosmall"] = {
+			["Bar1"] = {
+				buttonsize = 32
+			},
+			["Bar2"] = {
+				enable = true,
+				buttonsize = 32
+			},
+			["Bar3"] = {
+				buttons = 12,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 32
+			},
+			["Bar5"] = {
+				buttons = 12,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 32
+			}
+		},
+		["twobig"] = {
+			["Bar1"] = {
+				buttonsize = 40
+			},
+			["Bar2"] = {
+				enable = true,
+				buttonsize = 40
+			},
+			["Bar3"] = {
+				buttons = 12,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 40
+			},
+			["Bar5"] = {
+				buttons = 12,
+				buttonspacing = 2,
+				buttonsPerRow = 6,
+				buttonsize = 40
+			}
+		},
+	}
+	PRESET_DATA["units"] = {
+		["link"] = "SVUnit",
+		["default"] = {
+			["player"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["target"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["pet"] = {
+				width = 130,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["targettarget"] = {
+				width = 130,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["boss"] = {
+				width = 200,
+				height = 45,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["party"] = {
+				width = 75,
+				height = 60,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "INNERTOPLEFT"
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+		},
+		["super"] = {
+			["player"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["target"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["pet"] = {
+				width = 150,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["targettarget"] = {
+				width = 150,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["boss"] = {
+				width = 200,
+				height = 45,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				}
+			},
+			["party"] = {
+				width = 75,
+				height = 60,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				name = {
+					position = "INNERTOPLEFT"
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+		},
+		["simple"] = {
+			["player"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 60,
+				}
+			},
+			["target"] = {
+				width = 215,
+				height = 60,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 60,
+				}
+			},
+			["pet"] = {
+				width = 150,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 30,
+				},
+				name = {
+					position = "INNERLEFT"
+				},
+			},
+			["targettarget"] = {
+				width = 150,
+				height = 30,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 30,
+				},
+				name = {
+					position = "INNERLEFT"
+				},
+			},
+			["boss"] = {
+				width = 200,
+				height = 45,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 45,
+				}
+			},
+			["party"] = {
+				width = 100,
+				height = 35,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = true,
+					overlay = false,
+					style = "2D",
+					width = 35,
+				},
+				name = {
+					position = "INNERRIGHT"
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+		},
+		["compact"] = {
+			["player"] = {
+				width = 215,
+				height = 50,
+				portrait = {
+					enable = false
+				}
+			},
+			["target"] = {
+				width = 215,
+				height = 50,
+				portrait = {
+					enable = false
+				}
+			},
+			["pet"] = {
+				width = 130,
+				height = 30,
+				portrait = {
+					enable = false
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["targettarget"] = {
+				width = 130,
+				height = 30,
+				portrait = {
+					enable = false
+				},
+				name = {
+					position = "CENTER"
+				},
+			},
+			["boss"] = {
+				width = 200,
+				height = 45,
+				portrait = {
+					enable = false
+				}
+			},
+			["party"] = {
+				width = 70,
+				height = 30,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = false
+				},
+				name = {
+					position = "INNERTOPLEFT"
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				wrapXOffset = 6,
+				wrapYOffset = 6,
+			},
+		},
+	}
+	PRESET_DATA["layouts"] = {
+		["link"] = "SVUnit",
+		["default"] = {
+			["grid"] = {
+				["enable"] = false,
+			},
+			["party"] = {
+				width = 75,
+				height = 60,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				icons = {
+					roleIcon = {
+						["attachTo"] = "INNERBOTTOMRIGHT",
+						["xOffset"] = 0,
+						["yOffset"] = 0,
+					},
+				},
+				name = {
+					["font"] = "SVUI Default Font",
+					["fontOutline"] = "OUTLINE",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 0,
+					["yOffset"] = 0,
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				gRowCol = 1,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				showBy = "RIGHT_DOWN",
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				gRowCol = 1,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				showBy = "RIGHT_DOWN",
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				gRowCol = 1,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				showBy = "RIGHT_DOWN",
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+		},
+		["healer"] = {
+			["grid"] = {
+				["enable"] = false,
+			},
+			["party"] = {
+				width = 75,
+				height = 60,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				portrait = {
+					enable = true,
+					overlay = true,
+					style = "3D",
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMRIGHT",
+						["xOffset"] = 0,
+						["yOffset"] = 0,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["fontOutline"] = "OUTLINE",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 0,
+					["yOffset"] = 0,
+				},
+			},
+			["raid10"] = {
+				width = 50,
+				height = 30,
+				["showBy"] = "DOWN_RIGHT",
+				["gRowCol"] = 1,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = true,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 0,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+			["raid25"] = {
+				width = 50,
+				height = 30,
+				["showBy"] = "DOWN_RIGHT",
+				["gRowCol"] = 1,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = true,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 0,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+			["raid40"] = {
+				width = 50,
+				height = 30,
+				["showBy"] = "DOWN_RIGHT",
+				["gRowCol"] = 1,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = true,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERBOTTOMLEFT",
+						["xOffset"] = 8,
+						["yOffset"] = 0,
+					},
+				},
+				["name"] = {
+					["font"] = "SVUI Default Font",
+					["position"] = "INNERTOPLEFT",
+					["xOffset"] = 8,
+					["yOffset"] = 0,
+				},
+			},
+		},
+		["dps"] = {
+			["grid"] = {
+				["enable"] = false,
+			},
+			["party"] = {
+				width = 115,
+				height = 25,
+				wrapXOffset = 9,
+				wrapYOffset = 13,
+				["power"] = {
+					["enable"] = false,
+				},
+				portrait = {
+					enable = false,
+					overlay = false,
+					style = "2D",
+					width = 35,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "LEFT",
+						["xOffset"] = -2,
+						["yOffset"] = 0,
+					},
+				},
+				["name"] = {
+					["font"] = "Roboto",
+					["fontOutline"] = "NONE",
+					["position"] = "CENTER",
+					["xOffset"] = 0,
+					["yOffset"] = 1,
+				},
+			},
+			["raid10"] = {
+				["showBy"] = "UP_RIGHT",
+				["gRowCol"] = 2,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERLEFT",
+						["xOffset"] = 10,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "Roboto",
+					["position"] = "CENTER",
+					["xOffset"] = 0,
+					["yOffset"] = 1,
+				},
+				["width"] = 80,
+				["height"] = 20,
+			},
+			["raid25"] = {
+				["showBy"] = "UP_RIGHT",
+				["gRowCol"] = 3,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERLEFT",
+						["xOffset"] = 10,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "Roboto",
+					["position"] = "CENTER",
+					["xOffset"] = 0,
+					["yOffset"] = 1,
+				},
+				["width"] = 80,
+				["height"] = 20,
+			},
+			["raid40"] = {
+				["showBy"] = "UP_RIGHT",
+				["gRowCol"] = 4,
+				["wrapXOffset"] = 4,
+				["wrapYOffset"] = 4,
+				["power"] = {
+					["enable"] = false,
+				},
+				["icons"] = {
+					["roleIcon"] = {
+						["attachTo"] = "INNERLEFT",
+						["xOffset"] = 10,
+						["yOffset"] = 1,
+					},
+				},
+				["name"] = {
+					["font"] = "Roboto",
+					["position"] = "CENTER",
+					["xOffset"] = 0,
+					["yOffset"] = 1,
+				},
+				["width"] = 80,
+				["height"] = 20,
+			},
+		},
+		["grid"] = {
+			["grid"] = {
+				["enable"] = true,
+				["size"] = 34,
+				["shownames"] = true,
+			},
+			["party"] = {
+				["gridAllowed"] = true,
+				["wrapXOffset"] = 1,
+				["wrapYOffset"] = 1,
+			},
+			["raid10"] = {
+				["gridAllowed"] = true,
+				["wrapXOffset"] = 1,
+				["wrapYOffset"] = 1,
+				["gRowCol"] = 1,
+				["showBy"] = "RIGHT_DOWN",
+			},
+			["raid25"] = {
+				["gridAllowed"] = true,
+				["wrapXOffset"] = 1,
+				["wrapYOffset"] = 1,
+				["gRowCol"] = 1,
+				["showBy"] = "RIGHT_DOWN",
+			},
+			["raid40"] = {
+				["gridAllowed"] = true,
+				["wrapXOffset"] = 1,
+				["wrapYOffset"] = 1,
+				["gRowCol"] = 1,
+				["showBy"] = "RIGHT_DOWN",
+			},
+		},
+	}
+end
+
+local function _copyPresets(saved, preset)
+	if(type(preset) == 'table') then
+        for key,val in pairs(preset) do
+        	if(not saved[key]) then saved[key] = {} end
+    		if(type(val) == "table") then
+    			_copyPresets(saved[key], val)
+    		elseif(saved[key]) then
+            	saved[key] = val
+            end
+        end
+    else
+    	saved = preset
+    end
+end
+--[[
+##########################################################
+LOCAL FUNCTIONS
+##########################################################
+]]--
+local function SetInstallButton(button)
+    if(not button) then return end
+    button.Left:SetAlpha(0)
+    button.Middle:SetAlpha(0)
+    button.Right:SetAlpha(0)
+    button:SetNormalTexture("")
+    button:SetPushedTexture("")
+    button:SetPushedTexture("")
+    button:SetDisabledTexture("")
+    button:RemoveTextures()
+    button:SetFrameLevel(button:GetFrameLevel() + 1)
+end
+
+local function forceCVars()
+	SetCVar("alternateResourceText",1)
+	SetCVar("statusTextDisplay","BOTH")
+	SetCVar("ShowClassColorInNameplate",1)
+	SetCVar("screenshotQuality",10)
+	SetCVar("chatMouseScroll",1)
+	SetCVar("chatStyle","classic")
+	SetCVar("WholeChatWindowClickable",0)
+	SetCVar("ConversationMode","inline")
+	SetCVar("showTutorials",0)
+	SetCVar("UberTooltips",1)
+	SetCVar("threatWarning",3)
+	SetCVar('alwaysShowActionBars',1)
+	SetCVar('lockActionBars',1)
+	SetCVar('SpamFilter',0)
+	InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:SetValue('SHIFT')
+	InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:RefreshValue()
+end
+
+local function ShowLayout(show40)
+	if(not _G["SVUI_Raid40"] or (show40 and _G["SVUI_Raid40"].forceShow == true)) then return end
+	if(not show40 and _G["SVUI_Raid40"].forceShow ~= true) then return end
+	SV.SVUnit:UpdateGroupConfig(_G["SVUI_Raid40"], show40)
+end
+
+local function BarShuffle()
+	local bar2 = SV.db.SVBar.Bar2.enable;
+	local base = 30;
+	local bS = SV.db.SVBar.Bar1.buttonspacing;
+	local tH = SV.db.SVBar.Bar1.buttonsize  +  (base - bS);
+	local b2h = bar2 and tH or base;
+	local sph = (400 - b2h);
+	if not SV.db.framelocations then SV.db.framelocations = {} end
+	SV.db.framelocations.SVUI_SpecialAbility_MOVE = "BOTTOMSVUIParentBOTTOM0"..sph;
+	SV.db.framelocations.SVUI_ActionBar2_MOVE = "BOTTOMSVUI_ActionBar1TOP0"..(-bS);
+	SV.db.framelocations.SVUI_ActionBar3_MOVE = "BOTTOMLEFTSVUI_ActionBar1BOTTOMRIGHT40";
+	SV.db.framelocations.SVUI_ActionBar5_MOVE = "BOTTOMRIGHTSVUI_ActionBar1BOTTOMLEFT-40";
+	if bar2 then
+		SV.db.framelocations.SVUI_PetActionBar_MOVE = "BOTTOMLEFTSVUI_ActionBar2TOPLEFT04"
+		SV.db.framelocations.SVUI_StanceBar_MOVE = "BOTTOMRIGHTSVUI_ActionBar2TOPRIGHT04";
+	else
+		SV.db.framelocations.SVUI_PetActionBar_MOVE = "BOTTOMLEFTSVUI_ActionBar1TOPLEFT04"
+		SV.db.framelocations.SVUI_StanceBar_MOVE = "BOTTOMRIGHTSVUI_ActionBar1TOPRIGHT04";
+	end
+end
+
+local function UFMoveBottomQuadrant(toggle)
+	if not SV.db.framelocations then SV.db.framelocations = {} end
+	if not toggle then
+		SV.db.framelocations.SVUI_Player_MOVE = "BOTTOMSVUIParentBOTTOM-278182"
+		SV.db.framelocations.SVUI_PlayerCastbar_MOVE = "BOTTOMSVUIParentBOTTOM-278122"
+		SV.db.framelocations.SVUI_Target_MOVE = "BOTTOMSVUIParentBOTTOM278182"
+		SV.db.framelocations.SVUI_TargetCastbar_MOVE = "BOTTOMSVUIParentBOTTOM278122"
+		SV.db.framelocations.SVUI_Pet_MOVE = "BOTTOMSVUIParentBOTTOM0181"
+		SV.db.framelocations.SVUI_TargetTarget_MOVE = "BOTTOMSVUIParentBOTTOM0214"
+		SV.db.framelocations.SVUI_Focus_MOVE = "BOTTOMSVUIParentBOTTOM310432"
+		SV.db.framelocations.SVUI_ThreatBar_MOVE = "BOTTOMRIGHTSVUIParentBOTTOMRIGHT-495182"
+	elseif toggle == "shift" then
+		SV.db.framelocations.SVUI_Player_MOVE = "BOTTOMSVUIParentBOTTOM-278210"
+		SV.db.framelocations.SVUI_PlayerCastbar_MOVE = "BOTTOMSVUIParentBOTTOM-278150"
+		SV.db.framelocations.SVUI_Target_MOVE = "BOTTOMSVUIParentBOTTOM278210"
+		SV.db.framelocations.SVUI_TargetCastbar_MOVE = "BOTTOMSVUIParentBOTTOM278150"
+		SV.db.framelocations.SVUI_Pet_MOVE = "BOTTOMSVUIParentBOTTOM0209"
+		SV.db.framelocations.SVUI_TargetTarget_MOVE = "BOTTOMSVUIParentBOTTOM0242"
+		SV.db.framelocations.SVUI_Focus_MOVE = "BOTTOMSVUIParentBOTTOM310432"
+		SV.db.framelocations.SVUI_ThreatBar_MOVE = "BOTTOMRIGHTSVUIParentBOTTOMRIGHT-495210"
+	else
+		local c = 136;
+		local d = 135;
+		local e = 80;
+		SV.db.framelocations.SVUI_Player_MOVE = "BOTTOMSVUIParentBOTTOM"..-c..""..d;
+		SV.db.framelocations.SVUI_PlayerCastbar_MOVE = "BOTTOMSVUIParentBOTTOM"..-c..""..(d-60);
+		SV.db.framelocations.SVUI_Target_MOVE = "BOTTOMSVUIParentBOTTOM"..c..""..d;
+		SV.db.framelocations.SVUI_TargetCastbar_MOVE = "BOTTOMSVUIParentBOTTOM"..c..""..(d-60);
+		SV.db.framelocations.SVUI_Pet_MOVE = "BOTTOMSVUIParentBOTTOM"..-c..""..e;
+		SV.db.framelocations.SVUI_TargetTarget_MOVE = "BOTTOMSVUIParentBOTTOM"..c..""..e;
+		SV.db.framelocations.SVUI_Focus_MOVE = "BOTTOMSVUIParentBOTTOM"..c..""..(d + 150);
+		SV.db.framelocations.SVUI_ThreatBar_MOVE = "BOTTOMRIGHTSVUIParentBOTTOMRIGHT-495"..d;
+	end
+end
+
+local function UFMoveLeftQuadrant(toggle)
+	if not SV.db.framelocations then SV.db.framelocations = {} end
+	if not toggle then
+		SV.db.framelocations.SVUI_Assist_MOVE = "TOPLEFTSVUIParentTOPLEFT"..XOFF.."-250"
+		SV.db.framelocations.SVUI_Tank_MOVE = "TOPLEFTSVUIParentTOPLEFT"..XOFF.."-175"
+		SV.db.framelocations.SVUI_Raidpet_MOVE = "TOPLEFTSVUIParentTOPLEFT"..XOFF.."-325"
+		SV.db.framelocations.SVUI_Party_MOVE = "BOTTOMLEFTSVUIParentBOTTOMLEFT"..XOFF.."400"
+		SV.db.framelocations.SVUI_Raid10_MOVE = "BOTTOMLEFTSVUIParentBOTTOMLEFT"..XOFF.."400"
+		SV.db.framelocations.SVUI_Raid25_MOVE = "BOTTOMLEFTSVUIParentBOTTOMLEFT"..XOFF.."400"
+		SV.db.framelocations.SVUI_Raid40_MOVE = "BOTTOMLEFTSVUIParentBOTTOMLEFT"..XOFF.."400"
+	else
+		SV.db.framelocations.SVUI_Assist_MOVE = "TOPLEFTSVUIParentTOPLEFT4-250"
+		SV.db.framelocations.SVUI_Tank_MOVE = "TOPLEFTSVUIParentTOPLEFT4-175"
+		SV.db.framelocations.SVUI_Raidpet_MOVE = "TOPLEFTSVUIParentTOPLEFT4-325"
+		SV.db.framelocations.SVUI_Party_MOVE = "BOTTOMLEFTSVUIParentBOTTOMLEFT4300"
+		SV.db.framelocations.SVUI_Raid40_MOVE = "BOTTOMLEFTSVUIParentBOTTOMLEFT4300"
+		SV.db.framelocations.SVUI_Raid10_MOVE = "BOTTOMLEFTSVUIParentBOTTOMLEFT4300"
+		SV.db.framelocations.SVUI_Raid25_MOVE = "BOTTOMLEFTSVUIParentBOTTOMLEFT4300"
+	end
+end
+
+local function UFMoveTopQuadrant(toggle)
+	if not SV.db.framelocations then SV.db.framelocations = {} end
+	if not toggle then
+		SV.db.framelocations.GM_MOVE = "TOPLEFTSVUIParentTOPLEFT250-25"
+		SV.db.framelocations.SVUI_LootFrame_MOVE = "BOTTOMSVUIParentBOTTOM0350"
+		SV.db.framelocations.SVUI_AltPowerBar_MOVE = "TOPSVUIParentTOP0-40"
+		SV.db.framelocations.LoC_MOVE = "BOTTOMSVUIParentBOTTOM0350"
+		SV.db.framelocations.BNET_MOVE = "TOPRIGHTSVUIParentTOPRIGHT-4-250"
+	else
+		SV.db.framelocations.GM_MOVE = "TOPLEFTSVUIParentTOPLEFT344-25"
+		SV.db.framelocations.SVUI_LootFrame_MOVE = "BOTTOMSVUIParentBOTTOM0254"
+		SV.db.framelocations.SVUI_AltPowerBar_MOVE = "TOPSVUIParentTOP0-39"
+		SV.db.framelocations.LoC_MOVE = "BOTTOMSVUIParentBOTTOM0443"
+		SV.db.framelocations.BNET_MOVE = "TOPRIGHTSVUIParentTOPRIGHT-4-248"
+	end
+end
+
+local function UFMoveRightQuadrant(toggle)
+	if not SV.db.framelocations then SV.db.framelocations = {} end
+	local dH = SV.db.SVDock.dockRightHeight  +  60
+	if not toggle or toggle == "high" then
+		SV.db.framelocations.SVUI_BossHolder_MOVE = "RIGHTSVUIParentRIGHT-1050"
+		SV.db.framelocations.SVUI_ArenaHolder_MOVE = "RIGHTSVUIParentRIGHT-1050"
+		SV.db.framelocations.Tooltip_MOVE = "BOTTOMRIGHTSVUIParentBOTTOMRIGHT-284"..dH;
+	else
+		SV.db.framelocations.SVUI_BossHolder_MOVE = "RIGHTSVUIParentRIGHT-1050"
+		SV.db.framelocations.SVUI_ArenaHolder_MOVE = "RIGHTSVUIParentRIGHT-1050"
+		SV.db.framelocations.Tooltip_MOVE = "BOTTOMRIGHTSVUIParentBOTTOMRIGHT-284"..dH;
+	end
+end
+
+local function InitializeChatFrames(mungs)
+	forceCVars()
+	FCF_ResetChatWindows()
+	FCF_SetLocked(ChatFrame1, 1)
+	FCF_DockFrame(ChatFrame2)
+	FCF_SetLocked(ChatFrame2, 1)
+	FCF_OpenNewWindow(LOOT)
+	FCF_DockFrame(ChatFrame3)
+	FCF_SetLocked(ChatFrame3, 1)
+	for i = 1, NUM_CHAT_WINDOWS do
+		local chat = _G["ChatFrame"..i]
+		local chatID = chat:GetID()
+		if i == 1 then
+			chat:ClearAllPoints()
+			chat:Point("BOTTOMLEFT", LeftSuperDock, "BOTTOMLEFT", 5, 5)
+			chat:Point("TOPRIGHT", LeftSuperDock, "TOPRIGHT", -5, -10)
+		end
+		FCF_SavePositionAndDimensions(chat)
+		FCF_StopDragging(chat)
+		FCF_SetChatWindowFontSize(nil, chat, 12)
+		if i == 1 then
+			FCF_SetWindowName(chat, GENERAL)
+		elseif i == 2 then
+			FCF_SetWindowName(chat, GUILD_EVENT_LOG)
+		elseif i == 3 then
+			FCF_SetWindowName(chat, LOOT)
+		end
+	end
+	ChatFrame_RemoveAllMessageGroups(ChatFrame1)
+	ChatFrame_AddMessageGroup(ChatFrame1, "SAY")
+	ChatFrame_AddMessageGroup(ChatFrame1, "EMOTE")
+	ChatFrame_AddMessageGroup(ChatFrame1, "YELL")
+	ChatFrame_AddMessageGroup(ChatFrame1, "GUILD")
+	ChatFrame_AddMessageGroup(ChatFrame1, "OFFICER")
+	ChatFrame_AddMessageGroup(ChatFrame1, "GUILD_ACHIEVEMENT")
+	ChatFrame_AddMessageGroup(ChatFrame1, "WHISPER")
+	ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_SAY")
+	ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_EMOTE")
+	ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_YELL")
+	ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_BOSS_EMOTE")
+	ChatFrame_AddMessageGroup(ChatFrame1, "PARTY")
+	ChatFrame_AddMessageGroup(ChatFrame1, "PARTY_LEADER")
+	ChatFrame_AddMessageGroup(ChatFrame1, "RAID")
+	ChatFrame_AddMessageGroup(ChatFrame1, "RAID_LEADER")
+	ChatFrame_AddMessageGroup(ChatFrame1, "RAID_WARNING")
+	ChatFrame_AddMessageGroup(ChatFrame1, "INSTANCE_CHAT")
+	ChatFrame_AddMessageGroup(ChatFrame1, "INSTANCE_CHAT_LEADER")
+	ChatFrame_AddMessageGroup(ChatFrame1, "BATTLEGROUND")
+	ChatFrame_AddMessageGroup(ChatFrame1, "BATTLEGROUND_LEADER")
+	ChatFrame_AddMessageGroup(ChatFrame1, "BG_HORDE")
+	ChatFrame_AddMessageGroup(ChatFrame1, "BG_ALLIANCE")
+	ChatFrame_AddMessageGroup(ChatFrame1, "BG_NEUTRAL")
+	ChatFrame_AddMessageGroup(ChatFrame1, "SYSTEM")
+	ChatFrame_AddMessageGroup(ChatFrame1, "ERRORS")
+	ChatFrame_AddMessageGroup(ChatFrame1, "AFK")
+	ChatFrame_AddMessageGroup(ChatFrame1, "DND")
+	ChatFrame_AddMessageGroup(ChatFrame1, "IGNORED")
+	ChatFrame_AddMessageGroup(ChatFrame1, "ACHIEVEMENT")
+	ChatFrame_AddMessageGroup(ChatFrame1, "BN_WHISPER")
+	ChatFrame_AddMessageGroup(ChatFrame1, "BN_CONVERSATION")
+	ChatFrame_AddMessageGroup(ChatFrame1, "BN_INLINE_TOAST_ALERT")
+	ChatFrame_AddMessageGroup(ChatFrame1, "COMBAT_FACTION_CHANGE")
+	ChatFrame_AddMessageGroup(ChatFrame1, "SKILL")
+	ChatFrame_AddMessageGroup(ChatFrame1, "LOOT")
+	ChatFrame_AddMessageGroup(ChatFrame1, "MONEY")
+	ChatFrame_AddMessageGroup(ChatFrame1, "COMBAT_XP_GAIN")
+	ChatFrame_AddMessageGroup(ChatFrame1, "COMBAT_HONOR_GAIN")
+	ChatFrame_AddMessageGroup(ChatFrame1, "COMBAT_GUILD_XP_GAIN")
+
+	ChatFrame_RemoveAllMessageGroups(ChatFrame3)
+	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_FACTION_CHANGE")
+	ChatFrame_AddMessageGroup(ChatFrame3, "SKILL")
+	ChatFrame_AddMessageGroup(ChatFrame3, "LOOT")
+	ChatFrame_AddMessageGroup(ChatFrame3, "MONEY")
+	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_XP_GAIN")
+	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_HONOR_GAIN")
+	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_GUILD_XP_GAIN")
+
+	ChatFrame_AddChannel(ChatFrame1, GENERAL)
+
+	ToggleChatColorNamesByClassGroup(true, "SAY")
+	ToggleChatColorNamesByClassGroup(true, "EMOTE")
+	ToggleChatColorNamesByClassGroup(true, "YELL")
+	ToggleChatColorNamesByClassGroup(true, "GUILD")
+	ToggleChatColorNamesByClassGroup(true, "OFFICER")
+	ToggleChatColorNamesByClassGroup(true, "GUILD_ACHIEVEMENT")
+	ToggleChatColorNamesByClassGroup(true, "ACHIEVEMENT")
+	ToggleChatColorNamesByClassGroup(true, "WHISPER")
+	ToggleChatColorNamesByClassGroup(true, "PARTY")
+	ToggleChatColorNamesByClassGroup(true, "PARTY_LEADER")
+	ToggleChatColorNamesByClassGroup(true, "RAID")
+	ToggleChatColorNamesByClassGroup(true, "RAID_LEADER")
+	ToggleChatColorNamesByClassGroup(true, "RAID_WARNING")
+	ToggleChatColorNamesByClassGroup(true, "BATTLEGROUND")
+	ToggleChatColorNamesByClassGroup(true, "BATTLEGROUND_LEADER")
+	ToggleChatColorNamesByClassGroup(true, "INSTANCE_CHAT")
+	ToggleChatColorNamesByClassGroup(true, "INSTANCE_CHAT_LEADER")
+	ToggleChatColorNamesByClassGroup(true, "CHANNEL1")
+	ToggleChatColorNamesByClassGroup(true, "CHANNEL2")
+	ToggleChatColorNamesByClassGroup(true, "CHANNEL3")
+	ToggleChatColorNamesByClassGroup(true, "CHANNEL4")
+	ToggleChatColorNamesByClassGroup(true, "CHANNEL5")
+	ToggleChatColorNamesByClassGroup(true, "CHANNEL6")
+	ToggleChatColorNamesByClassGroup(true, "CHANNEL7")
+	ToggleChatColorNamesByClassGroup(true, "CHANNEL8")
+	ToggleChatColorNamesByClassGroup(true, "CHANNEL9")
+	ToggleChatColorNamesByClassGroup(true, "CHANNEL10")
+	ToggleChatColorNamesByClassGroup(true, "CHANNEL11")
+
+	ChangeChatColor("CHANNEL1", 195 / 255, 230 / 255, 232 / 255)
+	ChangeChatColor("CHANNEL2", 232 / 255, 158 / 255, 121 / 255)
+	ChangeChatColor("CHANNEL3", 232 / 255, 228 / 255, 121 / 255)
+
+	if not mungs then
+		if SV.Chat then
+			SV.Chat:ReLoad(true)
+			if SVUI_Cache["Dock"].RightSuperDockFaded  == true then RightSuperDockToggleButton:Click()end
+			if SVUI_Cache["Dock"].LeftSuperDockFaded  == true then LeftSuperDockToggleButton:Click()end
+		end
+		SV:SavedPopup()
+	end
+end
+
+local function SetUserScreen(rez, preserve)
+	if not preserve then
+		if okToResetMOVE then
+			SV:ResetMovables("")
+			okToResetMOVE = false;
+		end
+		SV.db:SetDefault("SVUnit")
+	end
+
+	if not SV.db.framelocations then SV.db.framelocations = {} end
+	if rez == "low" then
+		if not preserve then
+			SV.db.SVDock.dockLeftWidth = 350;
+			SV.db.SVDock.dockLeftHeight = 180;
+			SV.db.SVDock.dockRightWidth = 350;
+			SV.db.SVDock.dockRightHeight = 180;
+			SV.db.SVAura.wrapAfter = 10
+			SV.db.SVUnit.fontSize = 10;
+			SV.db.SVUnit.player.width = 200;
+			SV.db.SVUnit.player.castbar.width = 200;
+			SV.db.SVUnit.player.classbar.fill = "fill"
+			SV.db.SVUnit.player.health.tags = "[health:color][health:current]"
+			SV.db.SVUnit.target.width = 200;
+			SV.db.SVUnit.target.castbar.width = 200;
+			SV.db.SVUnit.target.health.tags = "[health:color][health:current]"
+			SV.db.SVUnit.pet.power.enable = false;
+			SV.db.SVUnit.pet.width = 200;
+			SV.db.SVUnit.pet.height = 26;
+			SV.db.SVUnit.targettarget.debuffs.enable = false;
+			SV.db.SVUnit.targettarget.power.enable = false;
+			SV.db.SVUnit.targettarget.width = 200;
+			SV.db.SVUnit.targettarget.height = 26;
+			SV.db.SVUnit.boss.width = 200;
+			SV.db.SVUnit.boss.castbar.width = 200;
+			SV.db.SVUnit.arena.width = 200;
+			SV.db.SVUnit.arena.castbar.width = 200
+		end
+		if not mungs then
+			UFMoveBottomQuadrant(true)
+			UFMoveLeftQuadrant(true)
+			UFMoveTopQuadrant(true)
+			UFMoveRightQuadrant(true)
+		end
+		SV.ghettoMonitor = true
+	else
+		SV.db:SetDefault("SVDock")
+		SV.db:SetDefault("SVAura")
+		if not mungs then
+			UFMoveBottomQuadrant()
+			UFMoveLeftQuadrant()
+			UFMoveTopQuadrant()
+			UFMoveRightQuadrant()
+		end
+		SV.ghettoMonitor = nil
+	end
+
+	if(not preserve and not mungs) then
+		BarShuffle()
+    	SV:SetSVMovablesPositions()
+		Registry:Update('SVDock')
+		Registry:Update('SVAura')
+		Registry:Update('SVBar')
+		Registry:Update('SVUnit')
+		SV:SavedPopup()
+	end
+end
+--[[
+##########################################################
+GLOBAL/MODULE FUNCTIONS
+##########################################################
+]]--
+function Setup:LoadPresetData(category, theme)
+	if(not PRESET_DATA) then LoadAllPresets() end
+	if(PRESET_DATA and PRESET_DATA[category] and PRESET_DATA[category]["link"]) then
+		theme = theme or "default"
+		local saved = PRESET_DATA[category]["link"]
+		local preset =  PRESET_DATA[category][theme]
+	    _copyPresets(SV.db[saved], preset)
+	end
+end
+
+function Setup:SetColorTheme(style, preserve)
+	style = style or "default";
+
+	if not preserve then
+		SV.db:SetDefault("media")
+	end
+
+	local presets = self:LoadPresetData("media", style)
+	SV.db.LAYOUT.mediastyle = style;
+
+	if(style == "default") then
+		SV.db.SVUnit.healthclass = true;
+	else
+		SV.db.SVUnit.healthclass = false;
+	end
+
+	if(not mungs) then
+		SV:MediaUpdate()
+		Registry:Update('SVStats')
+		Registry:Update('SVUnit')
+		if(not preserve) then
+			SV:SavedPopup()
+		end
+	end
+end
+
+function Setup:SetUnitframeLayout(style, preserve)
+	style = style or "default";
+
+	if not SV.db.framelocations then SV.db.framelocations = {} end
+
+	if not preserve then
+		SV.db:SetDefault("SVUnit")
+		SV.db:SetDefault("SVStats")
+		if okToResetMOVE then
+			SV:ResetMovables('')
+			okToResetMOVE = false
+		end
+	end
+
+	local presets = self:LoadPresetData("units", style)
+	SV.db.LAYOUT.unitstyle = style
+
+	if(SV.db.LAYOUT.mediastyle == "default") then
+		SV.db.SVUnit.healthclass = true;
+	end
+
+	if(not mungs) then
+		if(not preserve) then
+			if SV.db.LAYOUT.barstyle and (SV.db.LAYOUT.barstyle == "twosmall" or SV.db.LAYOUT.barstyle == "twobig") then
+				UFMoveBottomQuadrant("shift")
+			else
+				UFMoveBottomQuadrant()
+			end
+			SV:SetSVMovablesPositions()
+		end
+		Registry:Update('SVStats')
+		Registry:Update('SVUnit')
+		if(not preserve) then
+			SV:SavedPopup()
+		end
+	end
+end
+
+function Setup:SetGroupframeLayout(style, preserve)
+	style = style or "default";
+
+	local presets = self:LoadPresetData("layouts", style)
+	SV.db.LAYOUT.groupstyle = style
+
+	if(not mungs) then
+		Registry:Update('SVUnit')
+		if(not preserve) then
+			SV:SavedPopup()
+		end
+	end
+end
+
+function Setup:SetupBarLayout(style, preserve)
+	style = style or "default";
+
+	if not SV.db.framelocations then SV.db.framelocations={} end
+	if not preserve then
+		SV.db:SetDefault("SVBar")
+		if okToResetMOVE then
+			SV:ResetMovables('')
+			okToResetMOVE=false
+		end
+	end
+
+	local presets = self:LoadPresetData("bars", style)
+	SV.db.LAYOUT.barstyle = style;
+
+	if(not mungs) then
+		if(not preserve) then
+			if(style == 'twosmall' or style == 'twobig') then
+				UFMoveBottomQuadrant("shift")
+			else
+				UFMoveBottomQuadrant()
+			end
+		end
+		if(not preserve) then
+			BarShuffle()
+			SV:SetSVMovablesPositions()
+		end
+		Registry:Update('SVStats')
+		Registry:Update('SVBar')
+		if(not preserve) then
+			SV:SavedPopup()
+		end
+	end
+end
+
+function Setup:SetupAuralayout(style, preserve)
+	style = style or "default";
+	local presets = self:LoadPresetData("auras", style)
+	SV.db.LAYOUT.aurastyle = style;
+
+	if(not mungs) then
+		Registry:Update('SVStats')
+		Registry:Update('SVAura')
+		Registry:Update('SVUnit')
+		if(not preserve) then
+			SV:SavedPopup()
+		end
+	end
+end
+
+local function PlayThemeSong()
+	if(not musicIsPlaying) then
+		SetCVar("Sound_MusicVolume", 100)
+		SetCVar("Sound_EnableMusic", 1)
+		StopMusic()
+		PlayMusic([[Interface\AddOns\SVUI\assets\sounds\SV.mp3]])
+		musicIsPlaying = true
+	end
+end
+
+local function InstallComplete()
+	SVUI_Profile.SAFEDATA.install_version = SV.___version;
+	StopMusic()
+	SetCVar("Sound_MusicVolume",user_music_vol)
+	okToResetMOVE = false;
+	ReloadUI()
+end
+
+local function InstallMungsChoice()
+	mungs = true;
+	okToResetMOVE = false;
+	InitializeChatFrames(true);
+	SetUserScreen('high');
+	SV:SetColorTheme();
+	SV.db.LAYOUT.unitstyle = nil;
+	SV:SetUnitframeLayout();
+	SV.db.LAYOUT.groupstyle = nil;
+	SV.db.LAYOUT.barstyle = nil;
+	SV:SetupBarLayout();
+	SV:SetupAuralayout();
+	SVUI_Profile.SAFEDATA.install_version = SV.___version;
+	StopMusic()
+	SetCVar("Sound_MusicVolume",user_music_vol)
+	ReloadUI()
+end
+
+local function ResetAll()
+	SVUI_InstallNextButton:Disable()
+	SVUI_InstallPrevButton:Disable()
+	SVUI_InstallOption01Button:Hide()
+	SVUI_InstallOption01Button:SetScript("OnClick",nil)
+	SVUI_InstallOption01Button:SetText("")
+	SVUI_InstallOption02Button:Hide()
+	SVUI_InstallOption02Button:SetScript("OnClick",nil)
+	SVUI_InstallOption02Button:SetText("")
+	SVUI_InstallOption03Button:Hide()
+	SVUI_InstallOption03Button:SetScript("OnClick",nil)
+	SVUI_InstallOption03Button:SetText("")
+	SVUI_InstallOption1Button:Hide()
+	SVUI_InstallOption1Button:SetScript("OnClick",nil)
+	SVUI_InstallOption1Button:SetText("")
+	SVUI_InstallOption2Button:Hide()
+	SVUI_InstallOption2Button:SetScript('OnClick',nil)
+	SVUI_InstallOption2Button:SetText('')
+	SVUI_InstallOption3Button:Hide()
+	SVUI_InstallOption3Button:SetScript('OnClick',nil)
+	SVUI_InstallOption3Button:SetText('')
+	SVUI_InstallOption4Button:Hide()
+	SVUI_InstallOption4Button:SetScript('OnClick',nil)
+	SVUI_InstallOption4Button:SetText('')
+	SVUI_SetupHolder.SubTitle:SetText("")
+	SVUI_SetupHolder.Desc1:SetText("")
+	SVUI_SetupHolder.Desc2:SetText("")
+	SVUI_SetupHolder.Desc3:SetText("")
+	SVUI_SetupHolder:Size(550,400)
+end
+
+local function SetPage(newPage)
+	CURRENT_PAGE = newPage;
+	ResetAll()
+	InstallStatus.text:SetText(CURRENT_PAGE.."  /  "..MAX_PAGE)
+	local setupFrame = SVUI_SetupHolder;
+	if newPage  ~= MAX_PAGE then
+		SVUI_InstallNextButton:Enable()
+		SVUI_InstallNextButton:Show()
+	end
+	if newPage  ~= 1 then
+		SVUI_InstallPrevButton:Enable()
+		SVUI_InstallPrevButton:Show()
+	end
+	--[[
+		more useful globalstrings
+
+		CUSTOM
+		SETTINGS
+		DEFAULT
+		DEFAULTS
+		USE
+		UIOPTIONS_MENU
+		LFGWIZARD_TITLE
+		CONTINUE
+	]]--
+	ShowLayout()
+	if newPage == 1 then
+		local hasOldConfig = SVUI_Profile.SAFEDATA.install_version
+		SVUI_InstallPrevButton:Disable()
+		SVUI_InstallPrevButton:Hide()
+		okToResetMOVE = true
+		setupFrame.SubTitle:SetText(format(L["This is Supervillain UI version %s!"], SV.___version))
+		setupFrame.Desc1:SetText(L["Before I can turn you loose, persuing whatever villainy you feel will advance your professional career... I need to ask some questions and turn a few screws first."])
+		setupFrame.Desc2:SetText(L["At any time you can get to the config options by typing the command  / sv. For quick changes to frame, bar or color sets, call your henchman by clicking the button on the bottom right of your screen. (Its the one with his stupid face on it)"])
+		setupFrame.Desc3:SetText(L["CHOOSE_OR_DIE"])
+		SVUI_InstallOption01Button:Show()
+		SVUI_InstallOption01Button:SetScript("OnClick", InstallMungsChoice)
+		SVUI_InstallOption01Button:SetText(USE.."\n"..DEFAULT.."\n"..SETTINGS)
+
+		SVUI_InstallOption02Button:Show()
+		SVUI_InstallOption02Button:SetScript("OnClick", InstallComplete)
+		SVUI_InstallOption02Button:SetText("PRETEND YOU\nDID THIS\nALREADY")
+
+		if(hasOldConfig) then
+			SVUI_InstallOption03Button:Show()
+			SVUI_InstallOption03Button:SetScript("OnClick", InstallComplete)
+			SVUI_InstallOption03Button:SetText("Keep\nSaved\n"..SETTINGS)
+		end
+
+	elseif newPage == 2 then
+		setupFrame.SubTitle:SetText(CHAT)
+		setupFrame.Desc1:SetText(L["Whether you want to or not, you will be needing a communicator so other villains can either update you on their doings-of-evil or inform you about the MANY abilities of Chuck Norris"])
+		setupFrame.Desc2:SetText(L["The chat windows function the same as standard chat windows, you can right click the tabs and drag them, rename them, slap them around, you know... whatever. Clickity-click to setup your chat windows."])
+		setupFrame.Desc3:SetText(L["CHOOSE_OR_DIE"])
+		SVUI_InstallOption1Button:Show()
+		SVUI_InstallOption1Button:SetScript("OnClick", function()
+			InitializeChatFrames(false)
+		end)
+		SVUI_InstallOption1Button:SetText(CHAT_DEFAULTS)
+
+	elseif newPage == 3 then
+		local rez = GetCVar("gxResolution")
+		setupFrame.SubTitle:SetText(RESOLUTION)
+		setupFrame.Desc1:SetText(format(L["Your current resolution is %s, this is considered a %s resolution."], rez, (SV.ghettoMonitor and LOW or HIGH)))
+		if SV.ghettoMonitor then
+			setupFrame.Desc2:SetText(L["This resolution requires that you change some settings to get everything to fit on your screen."].." "..L["Click the button below to resize your chat frames, unitframes, and reposition your actionbars."].." "..L["You may need to further alter these settings depending how low your resolution is."])
+			setupFrame.Desc3:SetText(L["CHOOSE_OR_DIE"])
+		else
+			setupFrame.Desc2:SetText(L["This resolution doesn't require that you change settings for the UI to fit on your screen."].." "..L["Click the button below to resize your chat frames, unitframes, and reposition your actionbars."].." "..L["This is completely optional."])
+			setupFrame.Desc3:SetText(L["CHOOSE_OR_DIE"])
+		end
+		SVUI_InstallOption1Button:Show()
+		SVUI_InstallOption1Button:SetScript("OnClick", function()
+			SetUserScreen("high")
+			SVUI_SetupHolder.Desc1:SetText(L["|cffFF9F00"..HIGH.." "..RESOLUTION.."!|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["So what you think your better than me with your big monitor? HUH?!?!"])
+			SVUI_SetupHolder.Desc3:SetText(L["Dont forget whos in charge here! But enjoy the incredible detail."])
+		end)
+		SVUI_InstallOption1Button:SetText(HIGH)
+		SVUI_InstallOption2Button:Show()
+		SVUI_InstallOption2Button:SetScript("OnClick", function()
+			SetUserScreen("low")
+			SVUI_SetupHolder.Desc1:SetText(L["|cffFF9F00"..LOW.." "..RESOLUTION.."|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["Why are you playing this on what I would assume is a calculator display?"])
+			SVUI_SetupHolder.Desc3:SetText(L["Enjoy the ONE incredible pixel that fits on this screen."])
+		end)
+		SVUI_InstallOption2Button:SetText(LOW)
+
+	elseif newPage == 4 then
+		setupFrame.SubTitle:SetText(COLOR.." "..SETTINGS)
+		setupFrame.Desc1:SetText(L["Choose a theme layout you wish to use for your initial setup."])
+		setupFrame.Desc2:SetText(L["You can always change fonts and colors of any element of Supervillain UI from the in-game configuration."])
+		setupFrame.Desc3:SetText(L["CHOOSE_OR_DIE"])
+		SVUI_InstallOption1Button:Show()
+		SVUI_InstallOption1Button:SetScript("OnClick", function()
+			SV:SetColorTheme("kaboom")
+			SVUI_SetupHolder.Desc1:SetText(L["|cffFF9F00KABOOOOM!|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["This theme tells the world that you are a villain who can put on a show"]..CONTINUED)
+			SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["or better yet, you ARE the show!"])
+		end)
+		SVUI_InstallOption1Button:SetText(L["Kaboom!"])
+		SVUI_InstallOption2Button:Show()
+		SVUI_InstallOption2Button:SetScript("OnClick", function()
+			SV:SetColorTheme("dark")
+			SVUI_SetupHolder.Desc1:SetText(L["|cffAF30FFThe Darkest Night|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["This theme indicates that you have no interest in wasting time"]..CONTINUED)
+			SVUI_SetupHolder.Desc3:SetText(CONTINUED..L[" the dying begins NOW!"])
+		end)
+		SVUI_InstallOption2Button:SetText(L["Darkness"])
+		SVUI_InstallOption3Button:Show()
+		SVUI_InstallOption3Button:SetScript("OnClick", function()
+			SV:SetColorTheme("classy")
+			SVUI_SetupHolder.Desc1:SetText(L["|cffFFFF00"..CLASS_COLORS.."|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["This theme is for villains who take pride in their class"]..CONTINUED)
+			SVUI_SetupHolder.Desc3:SetText(CONTINUED..L[" villains know how to reprezent!"])
+		end)
+		SVUI_InstallOption3Button:SetText(L["Class" .. "\n" .. "Colors"])
+		SVUI_InstallOption4Button:Show()
+		SVUI_InstallOption4Button:SetScript("OnClick", function()
+			SV:SetColorTheme()
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFPlain and Simple|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["This theme is for any villain who sticks to their traditions"]..CONTINUED)
+			SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["you don't need fancyness to kick some ass!"])
+		end)
+		SVUI_InstallOption4Button:SetText(L["Vintage"])
+
+	elseif newPage == 5 then
+		ShowLayout(true)
+		setupFrame.SubTitle:SetText(UNITFRAME_LABEL.." "..SETTINGS)
+		setupFrame.Desc1:SetText(L["You can now choose what primary unitframe style you wish to use."])
+		setupFrame.Desc2:SetText(L["This will change the layout of your unitframes (ie.. Player, Target, Pet, Party, Raid ...etc)."])
+		setupFrame.Desc3:SetText(L["CHOOSE_OR_DIE"])
+		SVUI_InstallOption1Button:Show()
+		SVUI_InstallOption1Button:SetScript("OnClick", function()
+			SV.db.LAYOUT.unitstyle = nil;
+			SV:SetUnitframeLayout("super")
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFLets Do This|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["This layout is anything but minimal! Using this is like being at a rock concert"]..CONTINUED)
+			SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["then annihilating the crowd with frickin lazer beams!"])
+		end)
+		SVUI_InstallOption1Button:SetText(L["Super"])
+		SVUI_InstallOption2Button:Show()
+		SVUI_InstallOption2Button:SetScript("OnClick", function()
+			SV.db.LAYOUT.unitstyle = nil;
+			SV:SetUnitframeLayout("simple")
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFSimply Simple|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["This layout is for the villain who just wants to get things done!"]..CONTINUED)
+			SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["but he still wants to see your face before he hits you!"])
+		end)
+		SVUI_InstallOption2Button:SetText(L["Simple"])
+		SVUI_InstallOption3Button:Show()
+		SVUI_InstallOption3Button:SetScript("OnClick", function()
+			SV.db.LAYOUT.unitstyle = nil;
+			SV:SetUnitframeLayout("compact")
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFEl Compacto|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["Just the necessities so you can see more of the world around you"]..CONTINUED)
+			SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["you dont need no fanciness getting in the way of world domination do you?"])
+		end)
+		SVUI_InstallOption3Button:SetText(L["Compact"])
+
+	elseif newPage == 6 then
+		ShowLayout(true)
+		setupFrame.SubTitle:SetText("Group Layout")
+		setupFrame.Desc1:SetText(L["You can now choose what group layout you prefer."])
+		setupFrame.Desc2:SetText(L["This will adjust various settings on group units, attempting to make certain roles more usable"])
+		setupFrame.Desc3:SetText(L["CHOOSE_OR_DIE"])
+
+		SVUI_InstallOption1Button:Show()
+		SVUI_InstallOption1Button:SetScript("OnClick", function()
+			SV.db.LAYOUT.groupstyle = "default";
+			SV:SetGroupframeLayout("default")
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFStandard|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["You are good to go with the default layout"]..CONTINUED)
+			SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["frames schmames, lets kill some stuff!"])
+		end)
+		SVUI_InstallOption1Button:SetText(L["Standard"])
+
+		SVUI_InstallOption2Button:Show()
+		SVUI_InstallOption2Button:SetScript("OnClick", function()
+			SV.db.LAYOUT.groupstyle = nil;
+			SV:SetGroupframeLayout("healer")
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFMEDIC!!|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["You are pretty helpful.. for a VILLAIN!"]..CONTINUED)
+			SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["Hey, even a super villain gets his ass kicked once in awhile. We need the likes of you!"])
+		end)
+		SVUI_InstallOption2Button:SetText(L["Healer"])
+
+		SVUI_InstallOption3Button:Show()
+		SVUI_InstallOption3Button:SetScript("OnClick", function()
+			SV.db.LAYOUT.groupstyle = nil;
+			SV:SetGroupframeLayout("dps")
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFDeath Dealer|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["You are the kings of our craft. Handing out pain like its halloween candy."]..CONTINUED)
+			SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["I will move and squeeze group frames out of your way so you have more room for BOOM!"])
+		end)
+		SVUI_InstallOption3Button:SetText(L["DPS"])
+
+		SVUI_InstallOption4Button:Show()
+		SVUI_InstallOption4Button:SetScript("OnClick", function()
+			SV.db.LAYOUT.groupstyle = nil;
+			SV:SetGroupframeLayout("grid")
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFCubed|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["You are cold and calculated, your frames should reflect as much."]..CONTINUED)
+			SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["I'm gonna make these frames so precise that you can cut your finger on them!"])
+		end)
+		SVUI_InstallOption4Button:SetText(L["Grid"])
+
+	elseif newPage == 7 then
+		setupFrame.SubTitle:SetText(ACTIONBAR_LABEL.." "..SETTINGS)
+		setupFrame.Desc1:SetText(L["Choose a layout for your action bars."])
+		setupFrame.Desc2:SetText(L["Sometimes you need big buttons, sometimes you don't. Your choice here."])
+		setupFrame.Desc3:SetText(L["CHOOSE_OR_DIE"])
+		SVUI_InstallOption1Button:Show()
+		SVUI_InstallOption1Button:SetScript("OnClick", function()
+			SV.db.LAYOUT.barstyle = nil;
+			SV:SetupBarLayout("default")
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFLean And Clean|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["Lets keep it slim and deadly, not unlike a ninja sword."])
+			SVUI_SetupHolder.Desc3:SetText(L["You dont ever even look at your bar hardly, so pick this one!"])
+		end)
+		SVUI_InstallOption1Button:SetText(L["Small" .. "\n" .. "Row"])
+		SVUI_InstallOption2Button:Show()
+		SVUI_InstallOption2Button:SetScript("OnClick", function()
+			SV.db.LAYOUT.barstyle = nil;
+			SV:SetupBarLayout("twosmall")
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFMore For Less|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["Granted, you dont REALLY need the buttons due to your hotkey-leetness, you just like watching cooldowns!"])
+			SVUI_SetupHolder.Desc3:SetText(L["Sure thing cowboy, your secret is safe with me!"])
+		end)
+		SVUI_InstallOption2Button:SetText(L["2 Small" .. "\n" .. "Rows"])
+		SVUI_InstallOption3Button:Show()
+		SVUI_InstallOption3Button:SetScript("OnClick", function()
+			SV.db.LAYOUT.barstyle = nil;
+			SV:SetupBarLayout("onebig")
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFWhat Big Buttons You Have|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["The better to PEW-PEW you with my dear!"])
+			SVUI_SetupHolder.Desc3:SetText(L["When you have little time for mouse accuracy, choose this set!"])
+		end)
+		SVUI_InstallOption3Button:SetText(L["Big" .. "\n" .. "Row"])
+		SVUI_InstallOption4Button:Show()
+		SVUI_InstallOption4Button:SetScript("OnClick", function()
+			SV.db.LAYOUT.barstyle = nil;
+			SV:SetupBarLayout("twobig")
+			SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFThe Double Down|r"])
+			SVUI_SetupHolder.Desc2:SetText(L["Lets be honest for a moment. Who doesnt like a huge pair in their face?"])
+			SVUI_SetupHolder.Desc3:SetText(L["Double your bars then double their size for maximum button goodness!"])
+		end)
+		SVUI_InstallOption4Button:SetText(L["2 Big" .. "\n" .. "Rows"])
+
+	elseif newPage == 8 then
+		setupFrame.SubTitle:SetText(AURAS.." "..SETTINGS)
+		setupFrame.Desc1:SetText(L["Select an aura layout. \"Icons\" will display only icons and aurabars won't be used. \"Bars\" will display only aurabars and icons won't be used (duh). \"The Works!\" does just what it says.... icons, bars and awesomeness."])
+		setupFrame.Desc2:SetText(L["If you have an aura that you don't want to display simply hold down shift and right click the icon for it to suffer a painful death."])
+		setupFrame.Desc3:SetText(L["CHOOSE_OR_DIE"])
+
+		SVUI_InstallOption1Button:Show()
+		SVUI_InstallOption1Button:SetScript("OnClick", function()
+			SV:SetupAuralayout()
+		end)
+		SVUI_InstallOption1Button:SetText(L["Vintage"])
+
+		SVUI_InstallOption2Button:Show()
+		SVUI_InstallOption2Button:SetScript("OnClick", function()
+			SV:SetupAuralayout("icons")
+		end)
+		SVUI_InstallOption2Button:SetText(L["Icons"])
+
+		SVUI_InstallOption3Button:Show()
+		SVUI_InstallOption3Button:SetScript("OnClick", function()
+			SV:SetupAuralayout("bars")
+		end)
+		SVUI_InstallOption3Button:SetText(L["Bars"])
+
+		SVUI_InstallOption4Button:Show()
+		SVUI_InstallOption4Button:SetScript("OnClick", function()
+			SV:SetupAuralayout("theworks")
+		end)
+		SVUI_InstallOption4Button:SetText(L["The" .. "\n" .. "Works!"])
+
+	elseif newPage == 9 then
+		SVUI_InstallNextButton:Disable()
+		SVUI_InstallNextButton:Hide()
+		setupFrame.SubTitle:SetText(BASIC_OPTIONS_TOOLTIP..CONTINUED..AUCTION_TIME_LEFT0)
+		setupFrame.Desc1:SetText(L["Thats it! All done! Now we just need to hand these choices off to the henchmen so they can get you ready to (..insert evil tasks here..)!"])
+		setupFrame.Desc2:SetText(L["Click the button below to reload and get on your way! Good luck villain!"])
+		SVUI_InstallOption1Button:Show()
+		SVUI_InstallOption1Button:SetScript("OnClick", InstallComplete)
+		SVUI_InstallOption1Button:SetText(L["THE_BUTTON_BELOW"])
+		SVUI_SetupHolder:Size(550, 350)
+	end
+end
+
+local function NextPage()
+	if CURRENT_PAGE ~= MAX_PAGE then
+		CURRENT_PAGE = CURRENT_PAGE + 1;
+		SetPage(CURRENT_PAGE)
+	end
+end
+
+local function PreviousPage()
+	if CURRENT_PAGE ~= 1 then
+		CURRENT_PAGE = CURRENT_PAGE - 1;
+		SetPage(CURRENT_PAGE)
+	end
+end
+
+local function ResetGlobalVariables()
+	for k,v in pairs(SVUI_Cache) do
+		SVUI_Cache[k] = nil
+	end
+end
+
+function Setup:Reset()
+	mungs = true;
+	okToResetMOVE = false;
+	InitializeChatFrames(true);
+	SV.db:Reset()
+	SetUserScreen();
+
+	if SV.db.LAYOUT.mediastyle then
+        SV:SetColorTheme(SV.db.LAYOUT.mediastyle)
+    else
+    	SV.db.LAYOUT.mediastyle = nil;
+    	SV:SetColorTheme()
+    end
+
+    if SV.db.LAYOUT.unitstyle then
+        SV:SetUnitframeLayout(SV.db.LAYOUT.unitstyle)
+    else
+    	SV.db.LAYOUT.unitstyle = nil;
+    	SV:SetUnitframeLayout()
+    end
+
+    if SV.db.LAYOUT.barstyle then
+        SV:SetupBarLayout(SV.db.LAYOUT.barstyle)
+    else
+    	SV.db.LAYOUT.barstyle = nil;
+    	SV:SetupBarLayout()
+    end
+
+    if SV.db.LAYOUT.aurastyle then
+        SV:SetupAuralayout(SV.db.LAYOUT.aurastyle)
+    else
+    	SV.db.LAYOUT.aurastyle = nil;
+    	SV:SetupAuralayout()
+    end
+
+	SVUI_Profile.SAFEDATA.install_version = SV.___version;
+	ResetGlobalVariables()
+	ReloadUI()
+end
+
+function Setup:Install(autoLoaded)
+	if(not user_music_vol) then
+		user_music_vol = GetCVar("Sound_MusicVolume")
+	end
+
+	-- frame
+	if not SVUI_SetupHolder then
+		local frame = CreateFrame("Button", "SVUI_SetupHolder", UIParent)
+		frame.SetPage = SetPage;
+		frame:Size(550, 400)
+		frame:SetPanelTemplate("Action")
+		frame:SetPoint("CENTER")
+		frame:SetFrameStrata("TOOLTIP")
+		frame.Title = frame:CreateFontString(nil, "OVERLAY")
+		frame.Title:SetFont(SV.Media.font.narrator, 22, "OUTLINE")
+		frame.Title:Point("TOP", 0, -5)
+		frame.Title:SetText(L["Supervillain UI Installation"])
+
+		frame.Next = CreateFrame("Button", "SVUI_InstallNextButton", frame, "UIPanelButtonTemplate")
+		frame.Next:RemoveTextures()
+		frame.Next:Size(110, 25)
+		frame.Next:Point("BOTTOMRIGHT", 50, 5)
+		SetInstallButton(frame.Next)
+		frame.Next.texture = frame.Next:CreateTexture(nil, "BORDER")
+		frame.Next.texture:Size(110, 75)
+		frame.Next.texture:Point("RIGHT")
+		frame.Next.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION-ARROW")
+		frame.Next.texture:SetVertexColor(1, 0.5, 0)
+		frame.Next.text = frame.Next:CreateFontString(nil, "OVERLAY")
+		frame.Next.text:SetFont(SV.Media.font.action, 18, "OUTLINE")
+		frame.Next.text:SetPoint("CENTER")
+		frame.Next.text:SetText(CONTINUE)
+		frame.Next:Disable()
+		frame.Next:SetScript("OnClick", NextPage)
+		frame.Next:SetScript("OnEnter", function(this)
+			this.texture:SetVertexColor(1, 1, 0)
+		end)
+		frame.Next:SetScript("OnLeave", function(this)
+			this.texture:SetVertexColor(1, 0.5, 0)
+		end)
+
+		frame.Prev = CreateFrame("Button", "SVUI_InstallPrevButton", frame, "UIPanelButtonTemplate")
+		frame.Prev:RemoveTextures()
+		frame.Prev:Size(110, 25)
+		frame.Prev:Point("BOTTOMLEFT", -50, 5)
+		SetInstallButton(frame.Prev)
+		frame.Prev.texture = frame.Prev:CreateTexture(nil, "BORDER")
+		frame.Prev.texture:Size(110, 75)
+		frame.Prev.texture:Point("LEFT")
+		frame.Prev.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION-ARROW")
+		frame.Prev.texture:SetTexCoord(1, 0, 1, 1, 0, 0, 0, 1)
+		frame.Prev.texture:SetVertexColor(1, 0.5, 0)
+		frame.Prev.text = frame.Prev:CreateFontString(nil, "OVERLAY")
+		frame.Prev.text:SetFont(SV.Media.font.action, 18, "OUTLINE")
+		frame.Prev.text:SetPoint("CENTER")
+		frame.Prev.text:SetText(PREVIOUS)
+		frame.Prev:Disable()
+		frame.Prev:SetScript("OnClick", PreviousPage)
+		frame.Prev:SetScript("OnEnter", function(this)
+			this.texture:SetVertexColor(1, 1, 0)
+		end)
+		frame.Prev:SetScript("OnLeave", function(this)
+			this.texture:SetVertexColor(1, 0.5, 0)
+		end)
+		frame.Status = CreateFrame("Frame", "InstallStatus", frame)
+		frame.Status:SetFrameLevel(frame.Status:GetFrameLevel() + 2)
+		frame.Status:Size(150, 30)
+		frame.Status:Point("BOTTOM", frame, "TOP", 0, 2)
+		frame.Status.text = frame.Status:CreateFontString(nil, "OVERLAY")
+		frame.Status.text:SetFont(SV.Media.font.numbers, 22, "OUTLINE")
+		frame.Status.text:SetPoint("CENTER")
+		frame.Status.text:SetText(CURRENT_PAGE.."  /  "..MAX_PAGE)
+
+		frame.Option01 = CreateFrame("Button", "SVUI_InstallOption01Button", frame, "UIPanelButtonTemplate")
+		frame.Option01:RemoveTextures()
+		frame.Option01:Size(160, 30)
+		frame.Option01:Point("BOTTOM", 0, 15)
+		frame.Option01:SetText("")
+		SetInstallButton(frame.Option01)
+		frame.Option01.texture = frame.Option01:CreateTexture(nil, "BORDER")
+		frame.Option01.texture:Size(160, 160)
+		frame.Option01.texture:Point("CENTER", frame.Option01, "BOTTOM", 0, -15)
+		frame.Option01.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
+		frame.Option01.texture:SetGradient("VERTICAL", 0, 0.3, 0, 0, 0.7, 0)
+		frame.Option01:SetScript("OnEnter", function(this)
+			this.texture:SetVertexColor(0.5, 1, 0.4)
+		end)
+		frame.Option01:SetScript("OnLeave", function(this)
+			this.texture:SetGradient("VERTICAL", 0, 0.3, 0, 0, 0.7, 0)
+		end)
+		hooksecurefunc(frame.Option01, "SetWidth", function(g, h)
+			g.texture:Size(h, h)
+			g.texture:Point("CENTER", g, "BOTTOM", 0, -(h * 0.09))
+		end)
+		frame.Option01:SetFrameLevel(frame.Option01:GetFrameLevel() + 10)
+		frame.Option01:Hide()
+
+		frame.Option02 = CreateFrame("Button", "SVUI_InstallOption02Button", frame, "UIPanelButtonTemplate")
+		frame.Option02:RemoveTextures()
+		frame.Option02:Size(130, 30)
+		frame.Option02:Point("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
+		frame.Option02:SetText("")
+		SetInstallButton(frame.Option02)
+		frame.Option02.texture = frame.Option02:CreateTexture(nil, "BORDER")
+		frame.Option02.texture:Size(130, 110)
+		frame.Option02.texture:Point("CENTER", frame.Option02, "BOTTOM", 0, -15)
+		frame.Option02.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
+		frame.Option02.texture:SetGradient("VERTICAL", 0.3, 0, 0, 0.7, 0, 0)
+		frame.Option02:SetScript("OnEnter", function(this)
+			this.texture:SetVertexColor(0.5, 1, 0.4)
+		end)
+		frame.Option02:SetScript("OnLeave", function(this)
+			this.texture:SetGradient("VERTICAL", 0.3, 0, 0, 0.7, 0, 0)
+		end)
+		hooksecurefunc(frame.Option02, "SetWidth", function(g, h)
+			g.texture:Size(h, h)
+			g.texture:Point("CENTER", g, "BOTTOM", 0, -(h * 0.09))
+		end)
+		frame.Option02:SetScript("OnShow", function()
+			frame.Option01:SetWidth(130)
+			frame.Option01:ClearAllPoints()
+			frame.Option01:Point("BOTTOMRIGHT", frame, "BOTTOM", -4, 15)
+		end)
+		frame.Option02:SetScript("OnHide", function()
+			frame.Option01:SetWidth(160)
+			frame.Option01:ClearAllPoints()
+			frame.Option01:Point("BOTTOM", 0, 15)
+		end)
+		frame.Option02:SetFrameLevel(frame.Option01:GetFrameLevel() + 10)
+		frame.Option02:Hide()
+
+		frame.Option03 = CreateFrame("Button", "SVUI_InstallOption03Button", frame, "UIPanelButtonTemplate")
+		frame.Option03:RemoveTextures()
+		frame.Option03:Size(130, 30)
+		frame.Option03:Point("BOTTOM", frame, "BOTTOM", 0, 15)
+		frame.Option03:SetText("")
+		SetInstallButton(frame.Option03)
+		frame.Option03.texture = frame.Option03:CreateTexture(nil, "BORDER")
+		frame.Option03.texture:Size(130, 110)
+		frame.Option03.texture:Point("CENTER", frame.Option03, "BOTTOM", 0, -15)
+		frame.Option03.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
+		frame.Option03.texture:SetGradient("VERTICAL", 0, 0.1, 0.3, 0, 0.5, 0.7)
+		frame.Option03:SetScript("OnEnter", function(this)
+			this.texture:SetVertexColor(0.2, 0.5, 1)
+		end)
+		frame.Option03:SetScript("OnLeave", function(this)
+			this.texture:SetGradient("VERTICAL", 0, 0.1, 0.3, 0, 0.5, 0.7)
+		end)
+		hooksecurefunc(frame.Option03, "SetWidth", function(g, h)
+			g.texture:Size(h, h)
+			g.texture:Point("CENTER", g, "BOTTOM", 0, -(h * 0.09))
+		end)
+		frame.Option03:SetScript("OnShow", function(self)
+			self:SetWidth(130)
+			frame.Option01:SetWidth(130)
+			frame.Option01:ClearAllPoints()
+			frame.Option01:Point("RIGHT", self, "LEFT", -8, 0)
+			frame.Option02:SetWidth(130)
+			frame.Option02:ClearAllPoints()
+			frame.Option02:Point("LEFT", self, "RIGHT", 8, 0)
+		end)
+		frame.Option03:SetScript("OnHide", function()
+			frame.Option01:SetWidth(160)
+			frame.Option01:ClearAllPoints()
+			frame.Option01:Point("BOTTOM", 0, 15)
+			frame.Option02:ClearAllPoints()
+			frame.Option02:Point("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
+		end)
+		frame.Option03:SetFrameLevel(frame.Option01:GetFrameLevel() + 10)
+		frame.Option03:Hide()
+
+		frame.Option1 = CreateFrame("Button", "SVUI_InstallOption1Button", frame, "UIPanelButtonTemplate")
+		frame.Option1:RemoveTextures()
+		frame.Option1:Size(160, 30)
+		frame.Option1:Point("BOTTOM", 0, 15)
+		frame.Option1:SetText("")
+		SetInstallButton(frame.Option1)
+		frame.Option1.texture = frame.Option1:CreateTexture(nil, "BORDER")
+		frame.Option1.texture:Size(160, 160)
+		frame.Option1.texture:Point("CENTER", frame.Option1, "BOTTOM", 0, -15)
+		frame.Option1.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
+		frame.Option1.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
+		frame.Option1:SetScript("OnEnter", function(this)
+			this.texture:SetVertexColor(0.5, 1, 0.4)
+		end)
+		frame.Option1:SetScript("OnLeave", function(this)
+			this.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
+		end)
+		hooksecurefunc(frame.Option1, "SetWidth", function(g, h)
+			g.texture:Size(h, h)
+			g.texture:Point("CENTER", g, "BOTTOM", 0, -(h * 0.09))
+		end)
+		frame.Option1:SetFrameLevel(frame.Option1:GetFrameLevel() + 10)
+		frame.Option1:Hide()
+
+		frame.Option2 = CreateFrame("Button", "SVUI_InstallOption2Button", frame, "UIPanelButtonTemplate")
+		frame.Option2:RemoveTextures()
+		frame.Option2:Size(120, 30)
+		frame.Option2:Point("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
+		frame.Option2:SetText("")
+		SetInstallButton(frame.Option2)
+		frame.Option2.texture = frame.Option2:CreateTexture(nil, "BORDER")
+		frame.Option2.texture:Size(120, 110)
+		frame.Option2.texture:Point("CENTER", frame.Option2, "BOTTOM", 0, -15)
+		frame.Option2.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
+		frame.Option2.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
+		frame.Option2:SetScript("OnEnter", function(this)
+			this.texture:SetVertexColor(0.5, 1, 0.4)
+		end)
+		frame.Option2:SetScript("OnLeave", function(this)
+			this.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
+		end)
+		hooksecurefunc(frame.Option2, "SetWidth", function(g, h)
+			g.texture:Size(h, h)
+			g.texture:Point("CENTER", g, "BOTTOM", 0, -(h * 0.09))
+		end)
+		frame.Option2:SetScript("OnShow", function()
+			frame.Option1:SetWidth(120)
+			frame.Option1:ClearAllPoints()
+			frame.Option1:Point("BOTTOMRIGHT", frame, "BOTTOM", -4, 15)
+		end)
+		frame.Option2:SetScript("OnHide", function()
+			frame.Option1:SetWidth(160)
+			frame.Option1:ClearAllPoints()
+			frame.Option1:Point("BOTTOM", 0, 15)
+		end)
+		frame.Option2:SetFrameLevel(frame.Option1:GetFrameLevel() + 10)
+		frame.Option2:Hide()
+
+		frame.Option3 = CreateFrame("Button", "SVUI_InstallOption3Button", frame, "UIPanelButtonTemplate")
+		frame.Option3:RemoveTextures()
+		frame.Option3:Size(110, 30)
+		frame.Option3:Point("LEFT", frame.Option2, "RIGHT", 4, 0)
+		frame.Option3:SetText("")
+		SetInstallButton(frame.Option3)
+		frame.Option3.texture = frame.Option3:CreateTexture(nil, "BORDER")
+		frame.Option3.texture:Size(110, 100)
+		frame.Option3.texture:Point("CENTER", frame.Option3, "BOTTOM", 0, -9)
+		frame.Option3.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
+		frame.Option3.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
+		frame.Option3:SetScript("OnEnter", function(this)
+			this.texture:SetVertexColor(0.5, 1, 0.4)
+		end)
+		frame.Option3:SetScript("OnLeave", function(this)
+			this.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
+		end)
+		frame.Option3:SetScript("OnShow", function()
+			frame.Option1:SetWidth(110)
+			frame.Option1:ClearAllPoints()
+			frame.Option1:Point("RIGHT", frame.Option2, "LEFT", -4, 0)
+			frame.Option2:SetWidth(110)
+			frame.Option2:ClearAllPoints()
+			frame.Option2:Point("BOTTOM", frame, "BOTTOM", 0, 15)
+		end)
+		frame.Option3:SetScript("OnHide", function()
+			frame.Option1:SetWidth(160)
+			frame.Option1:ClearAllPoints()
+			frame.Option1:Point("BOTTOM", 0, 15)
+			frame.Option2:SetWidth(120)
+			frame.Option2:ClearAllPoints()
+			frame.Option2:Point("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
+		end)
+		frame.Option3:SetFrameLevel(frame.Option1:GetFrameLevel() + 10)
+		frame.Option3:Hide()
+
+		frame.Option4 = CreateFrame("Button", "SVUI_InstallOption4Button", frame, "UIPanelButtonTemplate")
+		frame.Option4:RemoveTextures()
+		frame.Option4:Size(110, 30)
+		frame.Option4:Point("LEFT", frame.Option3, "RIGHT", 4, 0)
+		frame.Option4:SetText("")
+		SetInstallButton(frame.Option4)
+		frame.Option4.texture = frame.Option4:CreateTexture(nil, "BORDER")
+		frame.Option4.texture:Size(110, 100)
+		frame.Option4.texture:Point("CENTER", frame.Option4, "BOTTOM", 0, -9)
+		frame.Option4.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
+		frame.Option4.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
+		frame.Option4:SetScript("OnEnter", function(this)
+			this.texture:SetVertexColor(0.5, 1, 0.4)
+		end)
+		frame.Option4:SetScript("OnLeave", function(this)
+			this.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
+		end)
+		frame.Option4:SetScript("OnShow", function()
+			frame.Option1:Width(110)
+			frame.Option2:Width(110)
+			frame.Option1:ClearAllPoints()
+			frame.Option1:Point("RIGHT", frame.Option2, "LEFT", -4, 0)
+			frame.Option2:ClearAllPoints()
+			frame.Option2:Point("BOTTOMRIGHT", frame, "BOTTOM", -4, 15)
+		end)
+		frame.Option4:SetScript("OnHide", function()
+			frame.Option1:SetWidth(160)
+			frame.Option1:ClearAllPoints()
+			frame.Option1:Point("BOTTOM", 0, 15)
+			frame.Option2:SetWidth(120)
+			frame.Option2:ClearAllPoints()
+			frame.Option2:Point("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
+		end)
+
+		frame.Option4:SetFrameLevel(frame.Option1:GetFrameLevel() + 10)
+		frame.Option4:Hide()
+
+		frame.SubTitle = frame:CreateFontString(nil, "OVERLAY")
+		frame.SubTitle:SetFont(SV.Media.font.roboto, 16, "OUTLINE")
+		frame.SubTitle:Point("TOP", 0, -40)
+		frame.Desc1 = frame:CreateFontString(nil, "OVERLAY")
+		frame.Desc1:SetFont(SV.Media.font.roboto, 14, "OUTLINE")
+		frame.Desc1:Point("TOPLEFT", 20, -75)
+		frame.Desc1:Width(frame:GetWidth()-40)
+		frame.Desc2 = frame:CreateFontString(nil, "OVERLAY")
+		frame.Desc2:SetFont(SV.Media.font.roboto, 14, "OUTLINE")
+		frame.Desc2:Point("TOPLEFT", 20, -125)
+		frame.Desc2:Width(frame:GetWidth()-40)
+		frame.Desc3 = frame:CreateFontString(nil, "OVERLAY")
+		frame.Desc3:SetFont(SV.Media.font.roboto, 14, "OUTLINE")
+		frame.Desc3:Point("TOPLEFT", 20, -175)
+		frame.Desc3:Width(frame:GetWidth()-40)
+		local closeButton = CreateFrame("Button", "SVUI_InstallCloseButton", frame, "UIPanelCloseButton")
+		closeButton:SetPoint("TOPRIGHT", frame, "TOPRIGHT")
+		closeButton:SetScript("OnClick", function()frame:Hide()end)
+		frame.tutorialImage = frame:CreateTexture("InstallTutorialImage", "OVERLAY")
+		frame.tutorialImage:Size(256, 128)
+		frame.tutorialImage:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\SPLASH")
+		frame.tutorialImage:Point("BOTTOM", 0, 70)
+	end
+
+	SVUI_SetupHolder:SetScript("OnHide", function()
+		StopMusic()
+		SetCVar("Sound_MusicVolume", user_music_vol)
+		musicIsPlaying = nil
+	end)
+
+	SVUI_SetupHolder:Show()
+	NextPage()
+	if(not autoLoaded) then
+		PlayThemeSong()
+	else
+		SV.Timers:ExecuteTimer(PlayThemeSong, 5)
+	end
+end
+
+SV.Setup = Setup
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_ActionPanel/oUF_ActionPanel.toc b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_ActionPanel/oUF_ActionPanel.toc
index 8322bce..28b273d 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_ActionPanel/oUF_ActionPanel.toc
+++ b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_ActionPanel/oUF_ActionPanel.toc
@@ -2,7 +2,7 @@
 ## Title: oUF ActionPanel
 ## Notes: Adds a backing to all unit frames that provides many utilities.
 ## Author: Munglunch
-## Version: 4.3
+## Version: 4.4
 ## X-Category: oUF
 ## Dependencies: oUF

diff --git a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_Afflicted/oUF_Afflicted.toc b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_Afflicted/oUF_Afflicted.toc
index 00093d7..c8b4d84 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_Afflicted/oUF_Afflicted.toc
+++ b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_Afflicted/oUF_Afflicted.toc
@@ -2,7 +2,7 @@
 ## Title: oUF Afflicted
 ## Notes: Adds Custom Debuff Highlighting to oUF.
 ## Author: Munglunch
-## Version: 4.3
+## Version: 4.4
 ## X-Category: oUF
 ## Dependencies: oUF

diff --git a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_ArcaneCharge/oUF_ArcaneCharge.toc b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_ArcaneCharge/oUF_ArcaneCharge.toc
index 770e6fd..8d226c3 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_ArcaneCharge/oUF_ArcaneCharge.toc
+++ b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_ArcaneCharge/oUF_ArcaneCharge.toc
@@ -2,7 +2,7 @@
 ## Title: oUF Arcane Charge
 ## Notes: Adds support for arcane charge indicators to oUF.
 ## Author: Munglunch
-## Version: 4.3
+## Version: 4.4
 ## Dependencies: oUF

 oUF_ArcaneCharge.lua
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_Combatant/oUF_Combatant.toc b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_Combatant/oUF_Combatant.toc
index dd9200c..10740d3 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_Combatant/oUF_Combatant.toc
+++ b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_Combatant/oUF_Combatant.toc
@@ -2,7 +2,7 @@
 ## Title: oUF Combatant
 ## Notes: Adds PvP trinket status and spec icons to oUF frames.
 ## Author: Munglunch
-## Version: 4.30
+## Version: 4.40
 ## X-Category: oUF
 ## Dependencies: oUF

diff --git a/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua b/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua
index f15e9bf..29bff9f 100644
--- a/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua
+++ b/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua
@@ -337,6 +337,7 @@ local function ModifyActionButton(parent)
 	local checked = parent:GetCheckedTexture()
 	if cooldown then
 		cooldown.SizeOverride = MOD.db.cooldownSize
+		--cooldown:SetAlpha(0)
 	end
 	if highlight then
 		highlight:SetTexture(1,1,1,.2)
@@ -369,7 +370,7 @@ local function ModifyActionButton(parent)
 	end
 	if icon then
 		icon:SetTexCoord(.1,.9,.1,.9)
-		icon:SetGradient("VERTICAL",.5,.5,.5,1,1,1)
+		--icon:SetGradient("VERTICAL",.5,.5,.5,1,1,1)
 		icon:FillInner()
 	end
 	if shine then shine:SetAllPoints()end
@@ -381,9 +382,9 @@ local function ModifyActionButton(parent)
     	hotkey:SetJustifyV("TOP")
 		hotkey:SetShadowOffset(1,-1)
 	end
-	if parent.style then
-		parent.style:SetDrawLayer('BACKGROUND',-7)
-	end
+	-- if parent.style then
+	-- 	parent.style:SetDrawLayer('BACKGROUND',-7)
+	-- end
 	parent.FlyoutUpdateFunc = SetFlyoutButton;
 	MOD:FixKeybindText(parent)
 end
diff --git a/Interface/AddOns/SVUI/system/common.lua b/Interface/AddOns/SVUI/system/common.lua
index 3171d3c..0aa22a4 100644
--- a/Interface/AddOns/SVUI/system/common.lua
+++ b/Interface/AddOns/SVUI/system/common.lua
@@ -591,6 +591,29 @@ local _templates = {
         shadow = false,
         noupdate = true,
     },
+    ["Paper"] = {
+        backdrop = {
+            bgFile = [[Interface\AddOns\SVUI\assets\artwork\Template\Background\PAPER]],
+            edgeFile = [[Interface\BUTTONS\WHITE8X8]],
+            tile = false,
+            tileSize = 0,
+            edgeSize = 2,
+            insets =
+            {
+                left = 1,
+                right = 1,
+                top = 1,
+                bottom = 1,
+            },
+        },
+        color = "white",
+        gradient = "white",
+        texture = [[Interface\AddOns\SVUI\assets\artwork\Template\Background\PAPER]],
+        texupdate = false,
+        padding = 2,
+        shadow = false,
+        noupdate = true,
+    },
     ["Container"] = {
         backdrop = {
             bgFile = [[Interface\AddOns\SVUI\assets\artwork\Template\Background\PATTERN3]],
diff --git a/Interface/AddOns/SVUI/system/media.lua b/Interface/AddOns/SVUI/system/media.lua
index 87cf595..8e7cdcd 100644
--- a/Interface/AddOns/SVUI/system/media.lua
+++ b/Interface/AddOns/SVUI/system/media.lua
@@ -144,6 +144,7 @@ do
     ["red"]         = {0.9, 0.08, 0.08, 1},
     ["yellow"]      = {1, 1, 0, 1},
     ["transparent"] = {0, 0, 0, 0.5},
+    ["white"]       = {1, 1, 1, 1},
   }

   SV.Media["font"] = {
@@ -164,16 +165,16 @@ do
     ["default"]   = Shared:Fetch("statusbar", "SVUI BasicBar"),
     ["gradient"]  = Shared:Fetch("statusbar", "SVUI MultiColorBar"),
     ["smooth"]    = Shared:Fetch("statusbar", "SVUI SmoothBar"),
-    ["flat"]    = Shared:Fetch("statusbar", "SVUI PlainBar"),
+    ["flat"]      = Shared:Fetch("statusbar", "SVUI PlainBar"),
     ["textured"]  = Shared:Fetch("statusbar", "SVUI FancyBar"),
     ["gloss"]     = Shared:Fetch("statusbar", "SVUI GlossBar"),
-    ["glow"]    = Shared:Fetch("statusbar", "SVUI GlowBar"),
+    ["glow"]      = Shared:Fetch("statusbar", "SVUI GlowBar"),
     ["lazer"]     = Shared:Fetch("statusbar", "SVUI LazerBar"),
   }

   SV.Media["bg"] = {
-    ["pattern"]   = Shared:Fetch("background", "SVUI Backdrop 1"),
-    ["comic"]     = Shared:Fetch("background", "SVUI Comic 1"),
+    ["pattern"]     = Shared:Fetch("background", "SVUI Backdrop 1"),
+    ["comic"]       = Shared:Fetch("background", "SVUI Comic 1"),
     ["unitlarge"]   = Shared:Fetch("background", "SVUI Unit BG 3"),
     ["unitsmall"]   = Shared:Fetch("background", "SVUI Small BG 3")
   }
@@ -183,16 +184,17 @@ do
     ["special"]   = {"VERTICAL", 0.33, 0.25, 0.13, 0.47, 0.39, 0.27},
     ["class"]     = {"VERTICAL", r2, g2, b2, r1, g1, b1},
     ["bizzaro"]   = {"VERTICAL", ir2, ig2, ib2, ir1, ig1, ib1},
-    ["dark"]    = {"VERTICAL", 0.02, 0.02, 0.02, 0.22, 0.22, 0.22},
+    ["dark"]      = {"VERTICAL", 0.02, 0.02, 0.02, 0.22, 0.22, 0.22},
     ["darkest"]   = {"VERTICAL", 0.15, 0.15, 0.15, 0, 0, 0},
     ["darkest2"]  = {"VERTICAL", 0, 0, 0, 0.12, 0.12, 0.12},
     ["light"]     = {"VERTICAL", 0.65, 0.65, 0.65, 0.95, 0.95, 0.95},
-    ["highlight"]   = {"VERTICAL", 0.1, 0.8, 0.8, 0.2, 0.5, 1},
+    ["highlight"] = {"VERTICAL", 0.1, 0.8, 0.8, 0.2, 0.5, 1},
     ["green"]     = {"VERTICAL", 0.08, 0.5, 0, 0.25, 0.9, 0.08},
-    ["red"]     = {"VERTICAL", 0.5, 0, 0, 0.9, 0.08, 0.08},
+    ["red"]       = {"VERTICAL", 0.5, 0, 0, 0.9, 0.08, 0.08},
     ["yellow"]    = {"VERTICAL", 1, 0.3, 0, 1, 1, 0},
     ["inverse"]   = {"VERTICAL", 0.25, 0.25, 0.25, 0.12, 0.12, 0.12},
-    ["icon"]        = {"VERTICAL", 0.5, 0.53, 0.55, 0.8, 0.8, 1}
+    ["icon"]      = {"VERTICAL", 0.5, 0.53, 0.55, 0.8, 0.8, 1},
+    ["white"]     = {"VERTICAL", 0.75, 0.75, 0.75, 1, 1, 1},
   }
 end
 --[[
diff --git a/Interface/AddOns/SVUI_AnsweringService/SVUI_AnsweringService.toc b/Interface/AddOns/SVUI_AnsweringService/SVUI_AnsweringService.toc
index 245f31b..e797e5b 100644
--- a/Interface/AddOns/SVUI_AnsweringService/SVUI_AnsweringService.toc
+++ b/Interface/AddOns/SVUI_AnsweringService/SVUI_AnsweringService.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 4.3
+## Version: 4.4
 ## Title: |cffFF9900SVUI |r|cffFFEF00Answering Service|r
 ## Notes: Supervillain UI [|cff9911FFAutomatic Whispers|r]
 ## RequiredDeps: SVUI
diff --git a/Interface/AddOns/SVUI_ArtOfWar/SVUI_ArtOfWar.toc b/Interface/AddOns/SVUI_ArtOfWar/SVUI_ArtOfWar.toc
index 3460242..201a470 100644
--- a/Interface/AddOns/SVUI_ArtOfWar/SVUI_ArtOfWar.toc
+++ b/Interface/AddOns/SVUI_ArtOfWar/SVUI_ArtOfWar.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 4.3
+## Version: 4.4
 ## Title: |cffFF9900SVUI |r|cffFFEF00Art of War|r
 ## Notes: Supervillain UI [|cff9911FFPvP Tools|r].
 ## SavedVariables: SVAOW_Data
diff --git a/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc b/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc
index d7c1a57..1402902 100644
--- a/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc
+++ b/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 4.3
+## Version: 4.4
 ## Title: |cffFF9900SVUI |r|cffFFEF00Config O Matic|r
 ## Notes: Supervillain UI [|cff9911FFConfig Options|r]
 ## RequiredDeps: SVUI
diff --git a/Interface/AddOns/SVUI_Laborer/SVUI_Laborer.toc b/Interface/AddOns/SVUI_Laborer/SVUI_Laborer.toc
index 617be9e..e3603d1 100644
--- a/Interface/AddOns/SVUI_Laborer/SVUI_Laborer.toc
+++ b/Interface/AddOns/SVUI_Laborer/SVUI_Laborer.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 4.3
+## Version: 4.4
 ## Title: |cffFF9900SVUI |r|cffFFEF00Laborer|r
 ## Notes: Supervillain UI [|cff9911FFProfession Tools|r].
 ## SavedVariables: LABOR_Data
diff --git a/Interface/AddOns/SVUI_LogOMatic/SVUI_LogOMatic.toc b/Interface/AddOns/SVUI_LogOMatic/SVUI_LogOMatic.toc
index 2840469..f4f3e83 100644
--- a/Interface/AddOns/SVUI_LogOMatic/SVUI_LogOMatic.toc
+++ b/Interface/AddOns/SVUI_LogOMatic/SVUI_LogOMatic.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 4.3
+## Version: 4.4
 ## Title: |cffFF9900SVUI |r|cffFFEF00Log O Matic|r
 ## Notes: Supervillain UI [|cff9911FFData Logging|r].
 ## SavedVariables: SVLOG_Data
diff --git a/Interface/AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.toc b/Interface/AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.toc
index 37765ad..d817f26 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.toc
+++ b/Interface/AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch, Azilroka, Sortokk
-## Version: 4.3
+## Version: 4.4
 ## Title: |cffFF9900SVUI |r|cffFFEF00Style O Matic|r
 ## Notes: Supervillain UI [|cff9911FFAddon Skins|r].
 ## RequiredDeps: SVUI
diff --git a/Interface/AddOns/SVUI_StyleOMatic/addons/spellbook.lua b/Interface/AddOns/SVUI_StyleOMatic/addons/spellbook.lua
index 867b91a..2812bd9 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/addons/spellbook.lua
+++ b/Interface/AddOns/SVUI_StyleOMatic/addons/spellbook.lua
@@ -226,9 +226,8 @@ local function SpellBookStyle()

 	-- SpellBookFrameInset:ClearAllPoints()
 	-- SpellBookFrameInset:Point("TOPLEFT", SpellBookFrame, "TOPLEFT", 20, -46)
-	-- SpellBookFrameInset:Point("BOTTOMRIGHT", SpellBookFrame, "BOTTOMRIGHT", -20, 56)
-	-- SpellBookFrameInset:SetFixedPanelTemplate("Component")
-	-- SpellBookFrameInset:SetPanelColor("light")
+	-- SpellBookFrameInset:Point("BOTTOMRIGHT", SpellBookFrame, "BOTTOMRIGHT", -20, 20)
+	SpellBookFrameInset:SetFixedPanelTemplate("Blackout")

 	_G["SpellBookFrameTutorialButton"]:Die()

diff --git a/Interface/AddOns/SVUI_StyleOMatic/addons/worldmap.lua b/Interface/AddOns/SVUI_StyleOMatic/addons/worldmap.lua
index e9f259a..3f47f77 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/addons/worldmap.lua
+++ b/Interface/AddOns/SVUI_StyleOMatic/addons/worldmap.lua
@@ -22,28 +22,30 @@ HELPERS
 ]]--
 local function AdjustMapLevel()
   if InCombatLockdown()then return end
-    WorldMapFrame:SetFrameLevel(2)
-    WorldMapDetailFrame:SetFrameLevel(4)
+    WorldMapFrame:SetFrameLevel(4)
+    WorldMapDetailFrame:SetFrameLevel(6)
     WorldMapFrame:SetFrameStrata('HIGH')
-    WorldMapArchaeologyDigSites:SetFrameLevel(6)
+    WorldMapArchaeologyDigSites:SetFrameLevel(8)
     WorldMapArchaeologyDigSites:SetFrameStrata('DIALOG')
 end

 local function WorldMap_SmallView()
   WorldMapFrame.Panel:ClearAllPoints()
-  WorldMapFrame.Panel:SetAllPoints(WorldMapFrame)
-  WorldMapFrame.backdrop:ClearAllPoints()
-  WorldMapFrame.backdrop:Point("TOPLEFT", WorldMapFrame.Panel, 2, 2)
-  WorldMapFrame.backdrop:Point("BOTTOMRIGHT", WorldMapFrame.Panel, 2, -2)
+  WorldMapFrame.Panel:WrapOuter(WorldMapFrame, 4, 4)
+  WorldMapFrame.Panel.Panel:WrapOuter(WorldMapFrame.Panel)
 end

 local function WorldMap_FullView()
   WorldMapFrame.Panel:ClearAllPoints()
-  WorldMapFrame.Panel:Point("TOPLEFT", WorldMapDetailFrame, "TOPLEFT", -12, 70)
-  WorldMapFrame.Panel:Point("BOTTOMRIGHT", WorldMapShowDropDown, "BOTTOMRIGHT", 4, -4)
-  WorldMapFrame.backdrop:ClearAllPoints()
-  WorldMapFrame.backdrop:Point("TOPLEFT", WorldMapFrame.Panel, 2, 2)
-  WorldMapFrame.backdrop:Point("BOTTOMRIGHT", WorldMapFrame.Panel, 2, -2)
+
+  if(SV.___interface >= 60000) then
+    WorldMapFrame.Panel:Point("TOPLEFT", WorldMapDetailFrame, "TOPLEFT", -12, 74)
+    WorldMapFrame.Panel:Point("BOTTOMRIGHT", WorldMapDetailFrame, "BOTTOMRIGHT", 12, -24)
+  else
+    WorldMapFrame.Panel:Point("TOPLEFT", WorldMapDetailFrame, "TOPLEFT", -12, 74)
+    WorldMapFrame.Panel:Point("BOTTOMRIGHT", WorldMapShowDropDown, "BOTTOMRIGHT", 4, -4)
+  end
+  WorldMapFrame.Panel.Panel:SetAllPoints(SV.UIParent)
 end

 local function WorldMap_QuestView()
@@ -79,21 +81,70 @@ local function WorldMap_QuestView()
   end
 end

+local function StripQuestMapFrame()
+  WorldMapFrame.BorderFrame:RemoveTextures(true)
+  WorldMapFrame.BorderFrame.ButtonFrameEdge:SetTexture(0,0,0,0)
+  WorldMapFrame.BorderFrame.InsetBorderTop:SetTexture(0,0,0,0)
+  WorldMapFrame.BorderFrame.Inset:RemoveTextures(true)
+  WorldMapTitleButton:RemoveTextures(true)
+  WorldMapFrameNavBar:RemoveTextures(true)
+  WorldMapFrameNavBarOverlay:RemoveTextures(true)
+  QuestMapFrame:RemoveTextures(true)
+  QuestMapFrame.DetailsFrame:RemoveTextures(true)
+
+  QuestMapFrame.DetailsFrame:SetPanelTemplate("Paper")
+
+  QuestMapFrame.DetailsFrame.CompleteQuestFrame:RemoveTextures(true)
+  QuestMapFrame.DetailsFrame.CompleteQuestFrame.CompleteButton:RemoveTextures(true)
+  QuestMapFrame.DetailsFrame.CompleteQuestFrame.CompleteButton:SetButtonTemplate()
+
+  QuestMapFrame.DetailsFrame.BackButton:RemoveTextures(true)
+  QuestMapFrame.DetailsFrame.BackButton:SetButtonTemplate()
+
+  QuestMapFrame.DetailsFrame.AbandonButton:RemoveTextures(true)
+  QuestMapFrame.DetailsFrame.AbandonButton:SetButtonTemplate()
+
+  QuestMapFrame.DetailsFrame.ShareButton:RemoveTextures(true)
+  QuestMapFrame.DetailsFrame.ShareButton:SetButtonTemplate()
+
+  QuestMapFrame.DetailsFrame.TrackButton:RemoveTextures(true)
+  QuestMapFrame.DetailsFrame.TrackButton:SetButtonTemplate()
+
+  QuestMapFrame.DetailsFrame.RewardsFrame:RemoveTextures(true)
+  QuestMapFrame.DetailsFrame.RewardsFrame:SetPanelTemplate("Paper")
+  QuestMapFrame.DetailsFrame.RewardsFrame:SetPanelColor("dark")
+
+  QuestScrollFrame:RemoveTextures(true)
+
+  local w,h = WorldMapFrame.UIElementsFrame:GetSize()
+  local underlay = CreateFrame("Frame", nil, WorldMapFrame)
+  underlay:Size(w,h)
+  underlay:SetAllPoints(WorldMapFrame.UIElementsFrame)
+  underlay:SetPanelTemplate("Blackout")
+
+  WorldMapFrame.UIElementsFrame:SetParent(underlay)
+
+  local detailWidth = QuestMapFrame.DetailsFrame.RewardsFrame:GetWidth()
+  QuestMapFrame.DetailsFrame:ClearAllPoints()
+  QuestMapFrame.DetailsFrame:SetPoint("TOPLEFT", underlay, "TOPRIGHT", 2, 0)
+  QuestMapFrame.DetailsFrame:SetWidth(detailWidth)
+
+  WorldMapFrameNavBar:ClearAllPoints()
+  WorldMapFrameNavBar:Point("TOPLEFT", WorldMapFrame.Panel, "TOPLEFT", 12, -22)
+  WorldMapFrameNavBar:SetPanelTemplate("Blackout")
+end
+
 local function WorldMap_OnShow()
-  WorldMapFrame:RemoveTextures()
-  if not SV.db.SVMap.tinyWorldMap then
-    BlackoutWorld:SetTexture(0, 0, 0, 1)
-  else
-    BlackoutWorld:SetTexture(0,0,0,0)
-  end

   if(SV.___interface >= 60000) then
+    --StripQuestMapFrame()
     if WORLDMAP_SETTINGS.size == WORLDMAP_FULLMAP_SIZE then
       WorldMap_FullView()
     elseif WORLDMAP_SETTINGS.size == WORLDMAP_WINDOWED_SIZE then
       WorldMap_SmallView()
     end
   else
+    WorldMapFrame:RemoveTextures()
     if WORLDMAP_SETTINGS.size == WORLDMAP_FULLMAP_SIZE then
       WorldMap_FullView()
     elseif WORLDMAP_SETTINGS.size == WORLDMAP_WINDOWED_SIZE then
@@ -103,6 +154,12 @@ local function WorldMap_OnShow()
     end
   end

+  if not SV.db.SVMap.tinyWorldMap then
+    BlackoutWorld:SetTexture(0, 0, 0, 1)
+  else
+    BlackoutWorld:SetTexture(0,0,0,0)
+  end
+
   WorldMapFrameAreaLabel:SetFontTemplate(nil, 50, "OUTLINE")
   WorldMapFrameAreaLabel:SetShadowOffset(2, -2)
   WorldMapFrameAreaLabel:SetTextColor(0.90, 0.8294, 0.6407)
@@ -111,12 +168,8 @@ local function WorldMap_OnShow()
   WorldMapFrameAreaPetLevels:SetFontTemplate(nil, 25, 'OUTLINE')
   WorldMapZoneInfo:SetFontTemplate(nil, 27, "OUTLINE")
   WorldMapZoneInfo:SetShadowOffset(2, -2)
+
   if InCombatLockdown() then return end
-  WorldMapFrame:SetFrameLevel(2)
-  WorldMapDetailFrame:SetFrameLevel(4)
-  WorldMapFrame:SetFrameStrata('HIGH')
-  WorldMapArchaeologyDigSites:SetFrameLevel(6)
-  WorldMapArchaeologyDigSites:SetFrameStrata('DIALOG')
   AdjustMapLevel()
 end
 --[[
@@ -127,24 +180,18 @@ WORLDMAP STYLER
 local function WorldMapStyle()
   if SV.db.SVStyle.blizzard.enable ~= true or SV.db.SVStyle.blizzard.worldmap ~= true then return end

-  WorldMapFrame:SetFrameLevel(2)
+  WorldMapFrame:SetFrameLevel(4)
+  STYLE:ApplyWindowStyle(WorldMapFrame, true, true)
+  WorldMapFrame.Panel:SetPanelTemplate("Blackout")

   STYLE:ApplyScrollFrameStyle(WorldMapQuestScrollFrameScrollBar)
   STYLE:ApplyScrollFrameStyle(WorldMapQuestDetailScrollFrameScrollBar, 4)
   STYLE:ApplyScrollFrameStyle(WorldMapQuestRewardScrollFrameScrollBar, 4)

-  WorldMapFrame:SetBasicPanel()
-  WorldMapFrame.Panel:SetFrameLevel(1)
-  WorldMapFrame.backdrop = CreateFrame("Frame", nil, WorldMapFrame)
-  WorldMapFrame.backdrop:SetAllPoints(WorldMapFrame)
-  WorldMapFrame.backdrop:SetFrameLevel(0)
-  WorldMapFrame.backdrop:SetPanelTemplate("Action");
+  WorldMapDetailFrame:SetFrameLevel(6)
+  WorldMapDetailFrame:SetPanelTemplate("Blackout")

-  WorldMapDetailFrame:SetFrameLevel(4)
-  WorldMapDetailFrame:SetBasicPanel()
-  WorldMapDetailFrame.Panel:SetFrameLevel(3)
-
-  WorldMapArchaeologyDigSites:SetFrameLevel(6)
+  WorldMapArchaeologyDigSites:SetFrameLevel(8)

   WorldMapFrameSizeDownButton:SetFrameLevel(999)
   WorldMapFrameSizeUpButton:SetFrameLevel(999)
@@ -165,11 +212,13 @@ local function WorldMapStyle()
     WorldMapTrackQuest:SetCheckboxTemplate(true)
     hooksecurefunc("WorldMapFrame_SetFullMapView", WorldMap_FullView)
     hooksecurefunc("WorldMapFrame_SetQuestMapView", WorldMap_QuestView)
+  else
+    StripQuestMapFrame()
   end

   WorldMapFrame:HookScript("OnShow", WorldMap_OnShow)
   hooksecurefunc("WorldMap_ToggleSizeUp", WorldMap_OnShow)
-  BlackoutWorld:SetParent(WorldMapFrame.backdrop)
+  BlackoutWorld:SetParent(WorldMapFrame.Panel.Panel)
 end
 --[[
 ##########################################################
diff --git a/Interface/SPELLBOOK/Professions-Book-Left.blp b/Interface/SPELLBOOK/Professions-Book-Left.blp
new file mode 100644
index 0000000..d6496a0
Binary files /dev/null and b/Interface/SPELLBOOK/Professions-Book-Left.blp differ
diff --git a/Interface/SPELLBOOK/Professions-Book-Right.blp b/Interface/SPELLBOOK/Professions-Book-Right.blp
new file mode 100644
index 0000000..e499938
Binary files /dev/null and b/Interface/SPELLBOOK/Professions-Book-Right.blp differ
diff --git a/Interface/SPELLBOOK/Spellbook-Page-1.blp b/Interface/SPELLBOOK/Spellbook-Page-1.blp
new file mode 100644
index 0000000..c96119d
Binary files /dev/null and b/Interface/SPELLBOOK/Spellbook-Page-1.blp differ
diff --git a/Interface/SPELLBOOK/Spellbook-Page-2.blp b/Interface/SPELLBOOK/Spellbook-Page-2.blp
new file mode 100644
index 0000000..97ee489
Binary files /dev/null and b/Interface/SPELLBOOK/Spellbook-Page-2.blp differ