Quantcast

Version 1.1 for MoP

Darthpred [08-28-12 - 08:03]
Version 1.1 for MoP
Filename
CHANGELOG.txt
Description for Tukui.txt
ElvUI_SLE/ElvUI_SLE.lua
ElvUI_SLE/ElvUI_SLE.toc
ElvUI_SLE/config/load_config.xml
ElvUI_SLE/config/profile.lua
ElvUI_SLE/config/sle_private.lua
ElvUI_SLE/core/install.lua
ElvUI_SLE/core/load_core.xml
ElvUI_SLE/core/options.lua
ElvUI_SLE/layout/layout.lua
ElvUI_SLE/libs/load_libs.xml
ElvUI_SLE/locales/china.lua
ElvUI_SLE/locales/english.lua
ElvUI_SLE/locales/french.lua
ElvUI_SLE/locales/german.lua
ElvUI_SLE/locales/korean.lua
ElvUI_SLE/locales/russian.lua
ElvUI_SLE/locales/spanish.lua
ElvUI_SLE/locales/taiwan.lua
ElvUI_SLE/modules/auras/auras.lua
ElvUI_SLE/modules/auras/load_auras.xml
ElvUI_SLE/modules/auras/options.lua
ElvUI_SLE/modules/autorelease/autorelease.lua
ElvUI_SLE/modules/autorelease/options.lua
ElvUI_SLE/modules/backgrounds/backgrounds.lua
ElvUI_SLE/modules/backgrounds/options.lua
ElvUI_SLE/modules/chat/chat.lua
ElvUI_SLE/modules/chat/options.lua
ElvUI_SLE/modules/datatexts/add_panels.lua
ElvUI_SLE/modules/datatexts/dashboard/dashboard.lua
ElvUI_SLE/modules/datatexts/dashboard/datapanels/bags.lua
ElvUI_SLE/modules/datatexts/dashboard/datapanels/durability.lua
ElvUI_SLE/modules/datatexts/dashboard/datapanels/fps.lua
ElvUI_SLE/modules/datatexts/dashboard/datapanels/ms.lua
ElvUI_SLE/modules/datatexts/dashboard/load_dashboard.xml
ElvUI_SLE/modules/datatexts/load_datatexts.xml
ElvUI_SLE/modules/datatexts/options.lua
ElvUI_SLE/modules/datatexts/time.lua
ElvUI_SLE/modules/datatexts/version.lua
ElvUI_SLE/modules/exprepbar/exprepbar.lua
ElvUI_SLE/modules/exprepbar/options.lua
ElvUI_SLE/modules/load_modules.xml
ElvUI_SLE/modules/marks/marks.lua
ElvUI_SLE/modules/marks/options.lua
ElvUI_SLE/modules/raidutility/options.lua
ElvUI_SLE/modules/raidutility/raidutility.lua
ElvUI_SLE/modules/skins/addons/load_addons.xml
ElvUI_SLE/modules/skins/addons/notes.lua
ElvUI_SLE/modules/skins/addons/oces.lua
ElvUI_SLE/modules/skins/addons/tdb.lua
ElvUI_SLE/modules/skins/blizzard/extraab.lua
ElvUI_SLE/modules/skins/blizzard/load_blizzard.xml
ElvUI_SLE/modules/skins/blizzard/petbattle.lua
ElvUI_SLE/modules/skins/load_skins.xml
ElvUI_SLE/modules/skins/options.lua
ElvUI_SLE/modules/uibuttons/options.lua
ElvUI_SLE/modules/uibuttons/uibuttons.lua
ElvUI_SLE/modules/unitframes/load_unitframes.xml
ElvUI_SLE/modules/unitframes/options.lua
ElvUI_SLE/modules/unitframes/tags.lua
ElvUI_SLE/modules/unitframes/units/arena.lua
ElvUI_SLE/modules/unitframes/units/boss.lua
ElvUI_SLE/modules/unitframes/units/focus.lua
ElvUI_SLE/modules/unitframes/units/player.lua
ElvUI_SLE/modules/unitframes/units/target.lua
ElvUI_SLE/modules/unitframes/units/targettarget.lua
ElvUI_SLE/modules/unitframes/update_elements.lua
ToDo.txt
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 1225024..60b45dc 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,3 +1,23 @@
+v1.1 (August 28, 2012)
+- (Backend) Optimize Druid Resource
+- (Backend) Private options now use Elv's popus
+- Added Demonic Fury number on warlock classbar
+- Added debuff resizing
+- Added hiding for combat ico
+- Readded castername in buff/debuff icon due to darth rewriting auras.lua and not doing his job
+- Moved options for auras to its own category
+- Removed some skinning of addons as we are now working with Azilroka on the skinning package.
+- Removed embed right fix due it being removed from ElvUI
+- Fixed the chat text going over the panel's border
+- Options for full values on hp/power text changed due to ElvUI's changes in text formatting. Now you can use tags. Just add a ":sl" at the end of the health or power tag to get full value. Doesn't work with percent.
+- Background frames now have an option for transparancy
+- Exp/Rep bar text options were changed to show full or short values
+- Added an option to move editbox for chat pannels
+- PvP text options were removed, ElvUI now has it's own
+- Removed Skada and DBM skins
+- Removed Pet Autocast option
+- Changed positions of some options
+
 v1.03 (July 25, 2012)
 - Fixed Combatlog not anchoring correctly in right panel as the only chat window
 - Fixed Microbar Bug (Leave combat issue)
@@ -18,4 +38,8 @@ v1.01 (July 11, 2012)
 - Added Alphabet layout to Microbar

 v1.0 (July 7, 2012)
-- Inital Release
\ No newline at end of file
+- Inital Release
+
+===Things done in beta, not looked at in live yet.===
+- Skinned more of the Blizzard Interface Options (Raid Profiles Section)
+- Skinned additional button in interface options area
\ No newline at end of file
diff --git a/Description for Tukui.txt b/Description for Tukui.txt
index d1a1ef2..902faaa 100644
--- a/Description for Tukui.txt
+++ b/Description for Tukui.txt
@@ -2,15 +2,11 @@

 <font color="red"><b>Please Note:</b></font> This addon will not function without ElvUI installed.  You can download it at <a href="http://www.tukui.org/dl.php">http://www.tukui.org</a>.

-Shadow & Light is an external edit of ElvUI. Which means it wasn't made by changing of ElvUI's files directly.  What this means to you, is that any time ElvUI has an update, you will not have to worry about it overwriting our edited version of ElvUI.  It also means if we push an update it mess with any ElvUI files.  This addon can not be used without ElvUI installed and enabled.
+Shadow & Light is an external edit of ElvUI, meaning it isn't made by changing of ElvUI's files directly.  What this means to you, is that any time ElvUI gets updated, you will not have to worry about it overwriting our edited version of ElvUI.  It also means if we push an update it will not mess with any ElvUI files.  This addon can not be used without ElvUI installed and enabled.

 Originally this project started as two personal edits of ElvUI by Darth Predator and I.  For technical support reasons and other reasons as well, we have moved to a combine effort on this external edit of the ElvUI.  Shadow & Light does not disable or hinder the normal function of ElvUI but does add additional features that are not yet implemented or will not be added to ElvUI.
 You'll find Shadow & Light options under it's own configuration category in ElvUI's config section by typing /ec

-<font color="#20ff20"><b>Mists of Pandaria Beta Download:</b></font>
-- <a href="https://github.com/Repooc/ElvUI_SLE-MoP-Beta/downloads">Github</a>
-- <a href="http://www.tukui.org/addons/index.php?act=view&id=43">Tukui.org</a>
-
 <font color="#3e8ac6"><b>Suggestions/Concerns:</b></font>
 - Private Massage on <a href="http://www.tukui.org/">TukUI.org</a> to <a href="http://www.tukui.org/forums/?pm=new/sdp>Darth Predator</a> or <a href="http://www.tukui.org/forums/?pm=new/repooc>Repooc</a>
 - <a href="http://wow.curseforge.com/addons/shadow-and-light-edit/tickets/">Curse Ticket System</a>
@@ -26,44 +22,31 @@ You'll find Shadow & Light options under it's own configuration category in ElvU
 - Modified Installation Process (Includes settings that each of the authors play with.)
 - Dragon Soul LFR progression in Time Datatext
 - PvP Auto Release
-- Customizable size of auras near the minimap
-- Tweaked visuals for pet autocastable abilities
 - Ability to show full value for hp/mana on unitframes
-- Customize PvP text position and visibility states on player unitframe
 - Customize Combat Icon position on player unitframe
 - Classbar offset
-- Balance Druid power value text on ClassBar
-- Compacted Exp/Rep Bar
+- Balance Druid and DEmonoligy Warlock power value text on ClassBar
+- Ability to set text on exp/rep bar to full values
 - Misc Custom UI Button (Quickly access ElvUI Config, ReloadUI, Toggle Move Anchors, Boss mod config/options (DBM, DXE, or Bigwigs), Addons Manager (stAddOnManager or ACP)
-- <a href="http://www.tukui.org/addons/index.php?act=view&id=45">Microbar</a>
 - Skinned Raid Marker Bar
 - Additional datatext panels that can be moved
-- Additional options for DBM and Skada skins
+- Additional options for DBM skin
 - Chat fading
 - Customizable size of chat history stored
 - Additional background panels that can be customized to your liking.
 - Freely movable Raid Utility menu
 - Caster Name in Auras Tooltip
-- Increased number of auras per row near the minimap
 - Altered layout of chat panels
+- Movvable Pet Batlle Actionbar

 <font color="#3e8ac6"><b>Skins:</b></font>
-- <a href="http://www.curse.com/addons/wow/altoholic">Altoholic Skin</a>
-- Minor fix to the ElvUI Auctionator skin
-- <a href="http://www.curse.com/addons/wow/deadly-boss-mods">DBM Options Window Skin</a>
-- <a href="http://www.wowinterface.com/downloads/info20568-ExtendedVendorUI.html">Extended Vendor Skin</a>
-- <a href="http://www.curse.com/addons/wow/move-anything">MoveAnything Skin</a>
 - <a href="http://www.curse.com/addons/wow/notes">Nirriti's Notes Skin</a>
 - <a href="http://www.curse.com/addons/wow/oces">OneClickEnchantScroll Skin</a>
 - <a href="http://www.curse.com/addons/wow/rbtabbed-browser">Tabbed Dungeon Browser Skin</a>
-- <a href="http://www.curse.com/addons/wow/tellmewhen">TellMeWhen Options Window Skin</a>
 - Removed Boss Button Texture
-- Additional skinning of Blizzard's options

 <font color="#3e8ac6"><b>Included Addons:</b></font>
 (if you have any of those the I'd recommend to disable them)
-- <a href="http://www.tukui.org/forums/topic.php?id=21133">XP & Rep Bars mod</a> for ElvUI by <a href="http://www.tukui.org/forums/profile.php?id=16698">Benik</a>
-- <a href="http://www.tukui.org/forums/topic.php?id=21221">Extended Vendor Skin</a> & <a href="http://www.tukui.org/forums/topic.php?id=20692">Altoholic Skin</a> by <a href="http://www.tukui.org/forums/profile.php?id=13475">Azilroka</a>
 - The idea of Classbar offset was taken from <a href="http://www.tukui.org/forums/topic.php?id=21398">Boradan's guide</a> and his <a href="http://www.tukui.org/forums/topic.php?id=21517">addon</a>
 - <a href="http://www.tukui.org/forums/topic.php?id=21378">Blizzard additional skins</a> by <a href="http://www.tukui.org/forums/profile.php?id=1109">Pat</a>
 - UI buttons idea by <a href="http://www.tukui.org/forums/profile.php?id=7616">Swordyy</a>
diff --git a/ElvUI_SLE/ElvUI_SLE.lua b/ElvUI_SLE/ElvUI_SLE.lua
index 91cbd34..5712378 100644
--- a/ElvUI_SLE/ElvUI_SLE.lua
+++ b/ElvUI_SLE/ElvUI_SLE.lua
@@ -1,16 +1,13 @@
--------------------------------------------------
---Here be Credits
--------------------------------------------------
---Testing line
-local E, L, V, P, G =  unpack(ElvUI); --Engine, Locales, Profile, Global
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local SLE = E:NewModule('SLE', 'AceHook-3.0', 'AceEvent-3.0');

-function SLE:Initialize()
-	self:RegisterEvent("PLAYER_REGEN_DISABLED", "UpdateThings");
-	if E.db.general.loginmessage then
-		print(L['SLE_LOGIN_MSG'])
-	end
-	E.db.datatexts.panels.Top_Center = 'Version'
+function SLE:Tutorials() --Additional tutorials
+	table.insert(E.TutorialList, #(E.TutorialList)+1, L["To enable full values of health/power on unitframes in Shadow & Light add \":sl\" to the end of the health/power tag.\nExample: [health:current:sl]."]);
+end
+
+function SLE:ConfigCats() --Additional config groups
+	table.insert(E.ConfigModeLayouts, #(E.ConfigModeLayouts)+1, "S&L");
+	E.ConfigModeLocalizedStrings["S&L"] = "S&L"
 end

 --Updating things that must be updated only after everything loads
@@ -18,7 +15,7 @@ function SLE:UpdateThings()
 	E:GetModule('UnitFrames'):Update_CombatIndicator()
 end

-StaticPopupDialogs["VERSION_MISMATCH"] = {
+E.PopupDialogs["VERSION_MISMATCH"] = {
 	text = L["Your version of ElvUI is older than recommended to use with Shadow & Light Edit. Please, download the latest version from tukui.org."],
 	button1 = CLOSE,
 	timeout = 0,
@@ -27,19 +24,35 @@ StaticPopupDialogs["VERSION_MISMATCH"] = {
 }

 --Showing warning message about too old versions of ElvUI
-	if tonumber(E.version) < 3.89 then
-		StaticPopup_Show("VERSION_MISMATCH")
-	end
+if tonumber(E.version) < 4.00 then
+	E:StaticPopup_Show("VERSION_MISMATCH")
+end

 E.UpdateAllSLE = E.UpdateAll
 function E:UpdateAll()
     E.UpdateAllSLE(self)
+	E:GetModule('BackGrounds'):UpdateFrames()
 	E:GetModule('DTPanels'):Update()
+	E:GetModule('DTPanels'):DashboardShow()
+	E:GetModule('DTPanels'):DashWidth()
 	E:GetModule('UnitFrames'):Update_CombatIndicator()
-	E:GetModule('UIButtons'):Start()
+	E:GetModule('UIButtons'):UpdateAll()
 	E.db.datatexts.panels.Top_Center = 'Version'
 	E:GetModule('DataTexts'):LoadDataTexts() --Prevents datatexts from not changing on profile switch (Elv's issue)
 	E:GetModule('RaidUtility'):MoveButton()
 end

+
+function SLE:Initialize()
+	self:RegisterEvent("PLAYER_REGEN_DISABLED", "UpdateThings");
+	if E.db.general.loginmessage then
+		print(L['SLE_LOGIN_MSG'])
+	end
+	E.db.datatexts.panels.Top_Center = 'Version'
+	E:GetModule('DTPanels'):DashboardShow()
+	E:GetModule('Layout'):EditboxPos()
+	SLE:Tutorials()
+	SLE:ConfigCats()
+end
+
 E:RegisterModule(SLE:GetName())
\ No newline at end of file
diff --git a/ElvUI_SLE/ElvUI_SLE.toc b/ElvUI_SLE/ElvUI_SLE.toc
index 2b89db5..e8b18ab 100644
--- a/ElvUI_SLE/ElvUI_SLE.toc
+++ b/ElvUI_SLE/ElvUI_SLE.toc
@@ -1,20 +1,20 @@
-## Interface: 40300
-## Title: |cff1784d1ElvUI |rShadow and Light Edit
-## Author: Darth Predator, Repooc
-## Version: 1.03
-## Notes: Plugin-edit for |cff1784d1ElvUI|r.
-## Notes-ruRU: Плагин-редакция для |cff1784d1ElvUI|r.
-## eMail: darthpred@gmail.com, repooc@tukui.org
-## URL: http://tukui.org/
-## RequiredDeps: ElvUI
-## OptionalDeps: Skada, CoolLine, Poisoner
-## DefaultState: Enabled
-
-libs\load_libs.xml
-locales\load_locales.xml
-media\load_media.xml
-ElvUI_SLE.lua
-core\load_core.xml
-modules\load_modules.xml
-config\load_config.xml
+## Interface: 50001
+## Title: |cff1784d1ElvUI |rShadow and Light Edit
+## Author: Darth Predator, Repooc
+## Version: 1.1
+## Notes: Plugin-edit for |cff1784d1ElvUI|r.
+## Notes-ruRU: Плагин-редакция для |cff1784d1ElvUI|r.
+## eMail: darthpred@gmail.com, repooc@tukui.org
+## URL: http://tukui.org/
+## RequiredDeps: ElvUI
+## OptionalDeps: Skada, CoolLine, Poisoner
+## DefaultState: Enabled
+
+libs\load_libs.xml
+locales\load_locales.xml
+media\load_media.xml
+ElvUI_SLE.lua
+core\load_core.xml
+modules\load_modules.xml
+config\load_config.xml
 layout\layout.lua
\ No newline at end of file
diff --git a/ElvUI_SLE/config/load_config.xml b/ElvUI_SLE/config/load_config.xml
index ad4ad17..31e82cc 100644
--- a/ElvUI_SLE/config/load_config.xml
+++ b/ElvUI_SLE/config/load_config.xml
@@ -1,4 +1,4 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/">
 	<Script file="profile.lua"/>
-	<Script file="sle_global.lua"/>
+	<Script file="sle_private.lua"/>
 </Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/config/profile.lua b/ElvUI_SLE/config/profile.lua
index 7c077b8..d08c89a 100644
--- a/ElvUI_SLE/config/profile.lua
+++ b/ElvUI_SLE/config/profile.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB

 P['sle'] = {
 	--Background frames
@@ -48,8 +48,14 @@ P['sle'] = {
 		['size'] = 18,
 	},

-	--Balance text
-	['bpenable'] = false;
+	--Exp/Rep Bar
+	['exprep'] = {
+		['explong'] = false,
+		['replong'] = false,
+	},
+
+	--Power text on classbars
+	['powtext'] = false;

 	--Auto release
 	['pvpautorelease'] = true,
@@ -96,6 +102,10 @@ P['sle'] = {
 			['enabled'] = true,
 			['width'] = 396,
 		},
+		['dashboard'] = {
+			['enable'] = false,
+			['width'] = 100,
+		},
 	},

 	--Raid Utility
@@ -104,22 +114,9 @@ P['sle'] = {
 		['ypos'] = E.screenheight - 16,
 	},

-	--Exp/Rep info
-	['xprepinfo'] = {
-		['enabled'] = false,
-		['xprepdet'] = false,
-		['repreact'] = false,
-		['xprest'] = false,
-	},
-
-	--PvP indicator
-	['pvp'] = {
-		['pos'] = 'CENTER',
-		['mouse'] = true,
-	},
-
 	--Combat Icon
 	['combatico'] = {
+		['enable'] = true,
 		['pos'] = 'TOP',
 	},

@@ -131,44 +128,19 @@ P['sle'] = {
 		['position'] = "uib_vert",
 	},

-	--Pet Bar Autocast
-	['petbar'] = {
-		['autocast'] = true,
-	},
-
 	--Chat
 	['chat'] = {
 		['fade'] = false,
-		['sound'] = false,
-		['warningsound'] = "ElvUI Warning",
+		['editbox'] = "Down",
 	},

-	--Unit Frames text formatting
-	['unitframes'] = {
-		['reverse'] = {
-			['health'] = false,
-			['mana'] = false,
-		},
-		['normal'] = {
-			['health'] = false,
-			['mana'] = false,
-		},
+	['vengeance'] = {
+		['enable'] = true,
+		['width'] = 408,
+		['height'] = 18,
 	},
 }

-P['microbar'] = {
-	['enable'] = true,
-	['mouse'] = false, --Mouseover
-    ['backdrop'] = true, --Backdrop
-	['combat'] = false, --Hide in combat
-	['alpha'] = 1, --Transparency
-	['scale'] = 1, --Scale
-	['layout'] = "Micro_Hor", --Button layuot format
-	['xoffset'] = 0,
-	['yoffset'] = 0,
-	['symbolic'] = false,
-}
-
 --For some reason datatext settings refuses to work if there is no general setting block here O_o
 --Core
 P['general'] = {
@@ -178,34 +150,53 @@ P['general'] = {
 	['loginmessage'] = true,
 	["interruptAnnounce"] = "NONE",
 	["autoRepair"] = "NONE",
+	['autoRoll'] = false,
 	['vendorGrays'] = false,
 	['autoAcceptInvite'] = false,
-
-	-- fonts
-	["fontsize"] = 11,
-	["font"] = "ElvUI Pixel",
-
-	--colors
+
+	["fontSize"] = 12,
+	["font"] = "ElvUI Font",
+
 	["bordercolor"] = { r = 0.1,g = 0.1,b = 0.1 },
 	["backdropcolor"] = { r = 0.1,g = 0.1,b = 0.1 },
 	["backdropfadecolor"] = { r = .054,g = .054,b = .054, a = 0.8 },
 	["valuecolor"] = {r = 23/255,g = 132/255,b = 209/255},
+
+	['mapAlpha'] = 1,
+	['tinyWorldMap'] = true,

-	--panels
-	['panelWidth'] = 412,
-	['panelHeight'] = 180,
-	['panelBackdropNameLeft'] = '',
-	['panelBackdropNameRight'] = '',
-	['panelBackdrop'] = 'SHOWBOTH',
-	['expRepPos'] = 'TOP_SCREEN',
+	['minimap'] = {
+		['size'] = 176,
+		['locationText'] = 'MOUSEOVER',
+	},

-	--misc
-	['mapTransparency'] = 1,
-	['minimapSize'] = 176,
-	['raidReminder'] = true,
-	['minimapPanels'] = true,
-	['tinyWorldMap'] = true,
-	['minimapLocationText'] = 'MOUSEOVER',
+	['experience'] = {
+		['enable'] = true,
+		['width'] = 475,
+		['height'] = 10,
+		['textFormat'] = 'NONE',
+		['textSize'] = 11,
+	},
+	['reputation'] = {
+		['enable'] = true,
+		['width'] = 475,
+		['height'] = 10,
+		['textFormat'] = 'NONE',
+		['textSize'] = 11,
+	},
+	['threat'] = {
+		['enable'] = true,
+		['position'] = 'RIGHTCHAT',
+		['textSize'] = 12,
+	},
+	['totems'] = {
+		['enable'] = true,
+		['growthDirection'] = 'VERTICAL',
+		['sortDirection'] = 'ASCENDING',
+		['size'] = 40,
+		['spacing'] = 4,
+		['showBackdrop'] = false,
+	}
 };

 P.chat.editboxhistory = 5
@@ -214,6 +205,10 @@ P.auras.perRow = 19
 --Datatexts
 if IsAddOnLoaded("ElvUI_LocPlus") then
 P['datatexts'] = {
+	['font'] = 'ElvUI Font',
+	['fontSize'] = 12,
+	['fontOutline'] = 'NONE',
+
 	['panels'] = {
 		['LeftChatDataPanel'] = {
 			['left'] = 'Armor',
@@ -264,9 +259,14 @@ P['datatexts'] = {
 	['localtime'] = true,
 	['time24'] = false,
 	['battleground'] = true,
+	['minimapPanels'] = true,
 }
 else
 P['datatexts'] = {
+	['font'] = 'ElvUI Font',
+	['fontSize'] = 12,
+	['fontOutline'] = 'NONE',
+
 	['panels'] = {
 		['LeftChatDataPanel'] = {
 			['left'] = 'Armor',
@@ -315,10 +315,10 @@ P['datatexts'] = {
 	['localtime'] = true,
 	['time24'] = false,
 	['battleground'] = true,
+	['minimapPanels'] = true,
 }
 end

 P.unitframe.units.player.classbar.xOffset = 0
 P.unitframe.units.player.classbar.yOffset = 0
-P.unitframe.units.player.classbar.offset = false
-
+P.unitframe.units.player.classbar.offset = false
\ No newline at end of file
diff --git a/ElvUI_SLE/config/sle_private.lua b/ElvUI_SLE/config/sle_private.lua
new file mode 100644
index 0000000..bf5cd6d
--- /dev/null
+++ b/ElvUI_SLE/config/sle_private.lua
@@ -0,0 +1,28 @@
+local E, L, V, P, G, _ =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+
+V['sle'] = {
+	--Auras Frame
+	['auras'] = {
+		['castername'] = false,
+	},
+
+	['dbm'] = {
+		['size'] = 10,
+	},
+
+	--Backgrounds
+	['backgrounds'] = {
+		['bottom'] = {
+			['template'] = "Default",
+		},
+		['left'] = {
+			['template'] = "Default",
+		},
+		['right'] = {
+			['template'] = "Default",
+		},
+		['action'] = {
+			['template'] = "Default",
+		},
+	},
+}
\ No newline at end of file
diff --git a/ElvUI_SLE/core/install.lua b/ElvUI_SLE/core/install.lua
index dcba784..aab4146 100644
--- a/ElvUI_SLE/core/install.lua
+++ b/ElvUI_SLE/core/install.lua
@@ -1,1765 +1,1781 @@
-local E, L, V, P, G = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
-local UF = E:GetModule('UnitFrames');
-
-local CURRENT_PAGE = 0
-local MAX_PAGE = 8
-
-local function SetupChat()
-	InstallStepComplete.message = L["Chat Set"]
-	InstallStepComplete:Show()
-	FCF_ResetChatWindows()
-	FCF_SetLocked(ChatFrame1, 1)
-	FCF_DockFrame(ChatFrame2)
-	FCF_SetLocked(ChatFrame2, 1)
-
-	FCF_OpenNewWindow(LOOT)
-	FCF_UnDockFrame(ChatFrame3)
-	FCF_SetLocked(ChatFrame3, 1)
-	ChatFrame3:Show()
-
-	for i = 1, NUM_CHAT_WINDOWS do
-		local frame = _G[format("ChatFrame%s", i)]
-		local chatFrameId = frame:GetID()
-		local chatName = FCF_GetChatWindowInfo(chatFrameId)
-
-		-- move general bottom left
-		if i == 1 then
-			frame:ClearAllPoints()
-			frame:Point("BOTTOMLEFT", LeftChatToggleButton, "TOPLEFT", 1, 3)
-		elseif i == 3 then
-			frame:ClearAllPoints()
-			frame:Point("BOTTOMLEFT", RightChatDataPanel, "TOPLEFT", 1, 3)
-		end
-
-		FCF_SavePositionAndDimensions(frame)
-		FCF_StopDragging(frame)
-
-		-- set default Elvui font size
-		FCF_SetChatWindowFontSize(nil, frame, 12)
-
-		-- rename windows general because moved to chat #3
-		if i == 1 then
-			FCF_SetWindowName(frame, GENERAL)
-		elseif i == 2 then
-			FCF_SetWindowName(frame, GUILD_EVENT_LOG)
-		elseif i == 3 then
-			FCF_SetWindowName(frame, LOOT.." / "..TRADE)
-		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, "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_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)
-	ChatFrame_RemoveChannel(ChatFrame1, L['Trade'])
-	ChatFrame_AddChannel(ChatFrame3, L['Trade'])
-
-
-	if E.myname == "Elv" then
-		SetCVar("scriptErrors", 1)
-	end
-
-	-- enable classcolor automatically on login and on each character without doing /configure each time.
-	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, "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")
-
-	--Adjust Chat Colors
-	--General
-	ChangeChatColor("CHANNEL1", 195/255, 230/255, 232/255)
-	--Trade
-	ChangeChatColor("CHANNEL2", 232/255, 158/255, 121/255)
-	--Local Defense
-	ChangeChatColor("CHANNEL3", 232/255, 228/255, 121/255)
-
-	if E.Chat then
-		E.Chat:PositionChat(true)
-		if E.db['RightChatPanelFaded'] then
-			RightChatToggleButton:Click()
-		end
-
-		if E.db['LeftChatPanelFaded'] then
-			LeftChatToggleButton:Click()
-		end
-	end
-end
-
-local function SetupCVars()
-	SetCVar("mapQuestDifficulty", 1)
-	SetCVar("ShowClassColorInNameplate", 1)
-	SetCVar("screenshotQuality", 10)
-	SetCVar("chatMouseScroll", 1)
-	SetCVar("chatStyle", "classic")
-	SetCVar("WholeChatWindowClickable", 0)
-	SetCVar("ConversationMode", "inline")
-	SetCVar("showTutorials", 0)
-	SetCVar("showNewbieTips", 0)
-	SetCVar("showLootSpam", 1)
-	SetCVar("UberTooltips", 1)
-	SetCVar("threatWarning", 3)
-	SetCVar('alwaysShowActionBars', 1)
-	SetCVar('lockActionBars', 1)
-	InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:SetValue('SHIFT')
-	InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:RefreshValue()
-
-	InstallStepComplete.message = L["CVars Set"]
-	InstallStepComplete:Show()
-end
-
-function E:GetColor(r, b, g, a)
-	return { r = r, b = b, g = g, a = a }
-end
-
-function E:SetupTheme(theme, noDisplayMsg)
-	local classColor = RAID_CLASS_COLORS[E.myclass]
-	E.db.theme = theme
-
-	--Set fonts
-	if theme == "classic" then
-		E.db.general.font = "ElvUI Font"
-		E.db.general.fontsize = 12
-
-		E.db.unitframe.font = "ElvUI Font"
-		E.db.unitframe.fontsize = 12
-		E.db.unitframe.fontoutline = "OUTLINE"
-	else
-		E.db.general.font = "ElvUI Pixel"
-		E.db.general.fontsize = 11
-
-		E.db.unitframe.font = "ElvUI Pixel"
-		E.db.unitframe.fontsize = 10
-		E.db.unitframe.fontoutline = "MONOCHROMEOUTLINE"
-	end
-
-	--Set colors
-	if theme == "classic" or theme == "classic_pixel" then
-		E.db.general.bordercolor = E:GetColor(.31, .31, .31)
-		E.db.general.backdropcolor = E:GetColor(.1, .1, .1)
-		E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8)
-
-		E.db.unitframe.colors.healthclass = false
-		E.db.unitframe.colors.health = E:GetColor(.31, .31, .31)
-		E.db.unitframe.units.player.castbar.color = E:GetColor(.31, .31, .31)
-		E.db.unitframe.units.target.castbar.color = E:GetColor(.31, .31, .31)
-		E.db.unitframe.units.focus.castbar.color = E:GetColor(.31, .31, .31)
-		E.db.unitframe.units.boss.castbar.color = E:GetColor(.31, .31, .31)
-		E.db.unitframe.units.arena.castbar.color = E:GetColor(.31, .31, .31)
-
-		E.db.classtimer.player.buffcolor = E:GetColor(.31, .31, .31)
-		E.db.classtimer.target.buffcolor = E:GetColor(.31, .31, .31)
-	elseif theme == "class" then
-		E.db.general.bordercolor = E:GetColor(classColor.r, classColor.b, classColor.g)
-		E.db.general.backdropcolor = E:GetColor(.1, .1, .1)
-		E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8)
-
-		E.db.unitframe.colors.healthclass = true
-		E.db.unitframe.units.player.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g)
-		E.db.unitframe.units.target.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g)
-		E.db.unitframe.units.focus.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g)
-		E.db.unitframe.units.boss.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g)
-		E.db.unitframe.units.arena.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g)
-
-		E.db.classtimer.player.buffcolor = E:GetColor(classColor.r, classColor.b, classColor.g)
-		E.db.classtimer.target.buffcolor = E:GetColor(classColor.r, classColor.b, classColor.g)
-	else
-		E.db.general.bordercolor = E:GetColor(.1, .1, .1)
-		E.db.general.backdropcolor = E:GetColor(.1, .1, .1)
-		E.db.general.backdropfadecolor = E:GetColor(.054, .054, .054, .8)
-
-		E.db.unitframe.colors.healthclass = false
-		E.db.unitframe.colors.health = E:GetColor(.1, .1, .1)
-		E.db.unitframe.units.player.castbar.color = E:GetColor(.1, .1, .1)
-		E.db.unitframe.units.target.castbar.color = E:GetColor(.1, .1, .1)
-		E.db.unitframe.units.focus.castbar.color = E:GetColor(.1, .1, .1)
-		E.db.unitframe.units.boss.castbar.color = E:GetColor(.1, .1, .1)
-		E.db.unitframe.units.arena.castbar.color = E:GetColor(.1, .1, .1)
-
-		E.db.classtimer.player.buffcolor = E:GetColor(.1, .1, .1)
-		E.db.classtimer.target.buffcolor = E:GetColor(.1, .1, .1)
-	end
-
-	--Value Color
-	if theme == "class" then
-		E.db.general.valuecolor = E:GetColor(classColor.r, classColor.b, classColor.g)
-	else
-		E.db.general.valuecolor = E:GetColor(.09, .819, .513)
-	end
-
-	E:UpdateAll(true)
-
-	InstallStatus:SetStatusBarColor(unpack(E['media'].rgbvaluecolor))
-
-	if InstallStepComplete and not noDisplayMsg then
-		InstallStepComplete.message = L["Theme Set"]
-		InstallStepComplete:Show()
-	end
-end
-
-function E:SetupResolution(noDataReset)
-	if not noDataReset then
-		E:ResetMovers('')
-	end
-
-	if self == 'low' then
-		if not E.db.movers then E.db.movers = {}; end
-		if not noDataReset then
-			E.db.general.panelWidth = 400
-			E.db.general.panelHeight = 180
-			E.db.sle.datatext.chatleft.width = 384
-			E.db.sle.datatext.chatright.width = 384
-
-			E:CopyTable(E.db.actionbar, P.actionbar)
-
-			E.db.actionbar.bar1.heightMult = 2;
-			E.db.actionbar.bar2.enabled = true;
-			E.db.actionbar.bar3.enabled = false;
-			E.db.actionbar.bar5.enabled = false;
-		end
-
-		E.db.movers.ElvAB_2 = "CENTERUIParentBOTTOM056.18"
-
-		if not noDataReset then
-			E:CopyTable(E.db.unitframe.units, P.unitframe.units)
-
-			E.db.unitframe.fontsize = 10
-
-			E.db.unitframe.units.player.width = 200;
-			E.db.unitframe.units.player.castbar.width = 200;
-			E.db.unitframe.units.player.classbar.fill = 'fill';
-
-			E.db.unitframe.units.target.width = 200;
-			E.db.unitframe.units.target.castbar.width = 200;
-
-			E.db.unitframe.units.pet.power.enable = false;
-			E.db.unitframe.units.pet.width = 200;
-			E.db.unitframe.units.pet.height = 26;
-
-			E.db.unitframe.units.targettarget.debuffs.enable = false;
-			E.db.unitframe.units.targettarget.power.enable = false;
-			E.db.unitframe.units.targettarget.width = 200;
-			E.db.unitframe.units.targettarget.height = 26;
-
-			E.db.unitframe.units.boss.width = 200;
-			E.db.unitframe.units.boss.castbar.width = 200;
-			E.db.unitframe.units.arena.width = 200;
-			E.db.unitframe.units.arena.castbar.width = 200;
-		end
-
-		E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106135"
-		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM10680"
-		E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106135"
-		E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-10680"
-		E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332"
-
-		E.db.lowresolutionset = true;
-	elseif not noDataReset then
-		E.db.general.panelWidth = P.general.panelWidth
-		E.db.general.panelHeight = P.general.panelHeight
-
-		E:CopyTable(E.db.actionbar, P.actionbar)
-		E:CopyTable(E.db.unitframe.units, P.unitframe.units)
-
-		E.db.lowresolutionset = nil;
-	end
-
-	if not noDataReset and E.db.theme then
-		E:SetupTheme(E.db.theme, true)
-	end
-
-	E:UpdateAll(true)
-
-	if InstallStepComplete and not noDataReset then
-		InstallStepComplete.message = L["Resolution Style Set"]
-		InstallStepComplete:Show()
-	end
-end
-
-function E:SetupLayout(layout, noDataReset)
-	--Unitframes
-	if not noDataReset then
-		E:CopyTable(E.db.unitframe.units, P.unitframe.units)
-	end
-	if layout == 'healer' then
-		if not IsAddOnLoaded('Clique') then
-			E:Print(L['Using the healer layout it is highly recommended you download the addon Clique to work side by side with ElvUI.'])
-		end
-
-		if not noDataReset then
-			E.db.unitframe.units.party.health.frequentUpdates = true;
-			E.db.unitframe.units.raid25.health.frequentUpdates = true;
-			E.db.unitframe.units.raid40.health.frequentUpdates = true;
-
-			E.db.unitframe.units.raid40.height = 36;
-			E.db.unitframe.units.raid40.health.text = true;
-			E.db.unitframe.units.raid40.name.position = 'TOP';
-			E.db.unitframe.units.raid40.roleIcon.enable = true;
-			E.db.unitframe.units.boss.width = 200;
-			E.db.unitframe.units.boss.castbar.width = 200;
-			E.db.unitframe.units.arena.width = 200;
-			E.db.unitframe.units.arena.castbar.width = 200;
-
-			E.db.unitframe.units.party.point = 'LEFT';
-			E.db.unitframe.units.party.xOffset = 5;
-			E.db.unitframe.units.party.healPrediction = true;
-			E.db.unitframe.units.party.columnAnchorPoint = 'LEFT';
-			E.db.unitframe.units.party.width = 80;
-			E.db.unitframe.units.party.height = 52;
-			E.db.unitframe.units.party.health.text_format = 'deficit';
-			E.db.unitframe.units.party.health.position = 'BOTTOM';
-			E.db.unitframe.units.party.health.orientation = 'VERTICAL';
-			E.db.unitframe.units.party.name.position = 'TOP';
-			E.db.unitframe.units.party.name.length = "SHORT";
-			E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT';
-			E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT';
-			E.db.unitframe.units.party.debuffs.useFilter = 'DebuffBlacklist';
-			E.db.unitframe.units.party.debuffs.sizeOverride = 0;
-			E.db.unitframe.units.party.petsGroup.enable = true;
-			E.db.unitframe.units.party.petsGroup.width = 80;
-			E.db.unitframe.units.party.petsGroup.initialAnchor = 'BOTTOM';
-			E.db.unitframe.units.party.petsGroup.anchorPoint = 'TOP';
-			E.db.unitframe.units.party.petsGroup.xOffset = 0;
-			E.db.unitframe.units.party.petsGroup.yOffset = 1;
-			E.db.unitframe.units.party.targetsGroup.enable = false;
-			E.db.unitframe.units.party.targetsGroup.width = 80;
-			E.db.unitframe.units.party.targetsGroup.initialAnchor = 'BOTTOM';
-			E.db.unitframe.units.party.targetsGroup.anchorPoint = 'TOP';
-			E.db.unitframe.units.party.targetsGroup.xOffset = 0;
-			E.db.unitframe.units.party.targetsGroup.yOffset = 1;
-
-			E.db.unitframe.units.raid25.healPrediction = true;
-			E.db.unitframe.units.raid25.health.orientation = 'VERTICAL';
-
-			E.db.unitframe.units.raid40.healPrediction = true;
-			E.db.unitframe.units.raid40.health.orientation = 'VERTICAL';
-		end
-
-		if not E.db.movers then E.db.movers = {}; end
-		if E.db.lowresolutionset then
-			E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-305242"
-			E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM305242"
-			E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM080"
-			E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM080"
-			E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM080"
-			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM305187"
-			E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0104"
-			E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-305187"
-			E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310432"
-
-		else
-			E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTUIParentBOTTOMLEFT464242"
-			E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464242"
-			E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM050"
-			E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM050"
-			E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM050"
-			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464151"
-			E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM074"
-			E.db.movers.ElvUF_PetMover = "BOTTOMLEFTUIParentBOTTOMLEFT464151"
-			E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM280332"
-		end
-	elseif E.db.lowresolutionset then
-		if not E.db.movers then E.db.movers = {}; end
-		E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106135"
-		E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106135"
-		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM10680"
-		E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-10680"
-		E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332"
-	else
-		if not noDataReset then
-			E:ResetMovers('')
-		end
-	end
-
-	if E.db.lowresolutionset and not noDataReset then
-		E.db.unitframe.units.player.width = 200;
-		E.db.unitframe.units.player.castbar.width = 200;
-		E.db.unitframe.units.player.classbar.fill = 'fill';
-
-		E.db.unitframe.units.target.width = 200;
-		E.db.unitframe.units.target.castbar.width = 200;
-
-		E.db.unitframe.units.pet.power.enable = false;
-		E.db.unitframe.units.pet.width = 200;
-		E.db.unitframe.units.pet.height = 26;
-
-		E.db.unitframe.units.targettarget.debuffs.enable = false;
-		E.db.unitframe.units.targettarget.power.enable = false;
-		E.db.unitframe.units.targettarget.width = 200;
-		E.db.unitframe.units.targettarget.height = 26;
-
-		E.db.unitframe.units.boss.width = 200;
-		E.db.unitframe.units.boss.castbar.width = 200;
-		E.db.unitframe.units.arena.width = 200;
-		E.db.unitframe.units.arena.castbar.width = 200;
-	end
-
-	--Datatexts
-	if not noDataReset then
-		E:CopyTable(E.db.datatexts.panels, P.datatexts.panels)
-		if layout == 'tank' then
-			E.db.datatexts.panels.LeftChatDataPanel.left = 'Armor';
-			E.db.datatexts.panels.LeftChatDataPanel.right = 'Avoidance';
-		elseif layout == 'healer' or layout == 'dpsCaster' then
-			E.db.datatexts.panels.LeftChatDataPanel.left = 'Spell/Heal Power';
-			E.db.datatexts.panels.LeftChatDataPanel.right = 'Haste';
-		else
-			E.db.datatexts.panels.LeftChatDataPanel.left = 'Attack Power';
-			E.db.datatexts.panels.LeftChatDataPanel.right = 'Crit Chance';
-		end
-
-		if InstallStepComplete then
-			InstallStepComplete.message = L["Layout Set"]
-			InstallStepComplete:Show()
-		end
-	end
-
-	E.db.layoutSet = layout
-
-	if not noDataReset and E.db.theme then
-		E:SetupTheme(E.db.theme, true)
-	end
-
-	E:UpdateAll(true)
-	local DT = E:GetModule('DataTexts')
-	DT:LoadDataTexts()
-end
-
-function E:DarthSetup() --The function to switch from classic ElvUI settings to Darth's
-	InstallStepComplete.message = L["Darth's Defaults Set"]
-	InstallStepComplete:Show()
-	if not E.db.movers then E.db.movers = {}; end
-
-	layout = E.db.layoutSet --To know if some sort of layout was choosed before
-
-	--General options
-	E.db.general.vendorGrays = true
-	E.db.general.fontsize = 10
-	E.db.general.stickyFrames = false
-	E.db.general.minimapLocationText = 'SHOW'
-	E.db.general.panelHeight = 227
-	if E.db.lowresolutionset then
-		E.db.general.panelWidth = 400
-	else
-		E.db.general.panelWidth = 444
-	end
-	--Nameplates
-	E.db.nameplate.showhealth = true
-	--Datatexts
-	E.db.datatexts.time24 = true
-	E.db.sle.datatext.top.enabled = true
-	E.db.sle.datatext.bottom.enabled = true
-	if E.db.lowresolutionset then
-		E.db.sle.datatext.dp1.enabled = false
-		E.db.sle.datatext.dp2.enabled = false
-		E.db.sle.datatext.dp3.enabled = false
-		E.db.sle.datatext.dp4.enabled = false
-		E.db.sle.datatext.dp5.enabled = false
-		E.db.sle.datatext.dp6.enabled = false
-		E.db.sle.datatext.chatleft.width = 384
-		E.db.sle.datatext.chatright.width = 384
-		E.db.sle.datatext.bottom.width = E.screenwidth/3 + 52
-	else
-		E.db.sle.datatext.dp1.enabled = true
-		E.db.sle.datatext.dp2.enabled = true
-		E.db.sle.datatext.dp3.enabled = true
-		E.db.sle.datatext.dp4.enabled = true
-		E.db.sle.datatext.dp5.enabled = true
-		E.db.sle.datatext.dp6.enabled = true
-		E.db.sle.datatext.chatleft.width = 428
-		E.db.sle.datatext.chatright.width = 428
-		E.db.sle.datatext.bottom.width = E.screenwidth/10 - 4
-	end
-
-	if E.db.lowresolutionset then
-		E.db.datatexts.panels.LeftChatDataPanel.left = 'Bags';
-		E.db.datatexts.panels.LeftChatDataPanel.middle = 'Gold';
-		E.db.datatexts.panels.LeftChatDataPanel.right = 'Durability';
-	else
-		E.db.datatexts.panels.LeftChatDataPanel.right = 'Friends';
-		E.db.datatexts.panels.LeftChatDataPanel.left = 'Call to Arms';
-		E.db.datatexts.panels.LeftChatDataPanel.middle = 'Durability';
-	end
-	E.db.datatexts.panels.LeftMiniPanel = 'Time';
-	E.db.datatexts.panels.RightMiniPanel = 'Guild';
-
-	if layout == 'tank' then
-		E.db.datatexts.panels.DP_6.left = 'Avoidance';
-		E.db.datatexts.panels.DP_6.middle = 'Attack Power';
-		E.db.datatexts.panels.DP_6.right = 'Expertise';
-		if E.db.lowresolutionset then
-			E.db.datatexts.panels.RightChatDataPanel.left = 'Avoidance';
-			E.db.datatexts.panels.RightChatDataPanel.middle = 'Attack Power';
-			E.db.datatexts.panels.RightChatDataPanel.right = 'Expertise';
-		else
-			E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
-			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
-			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
-		end
-		E.db.datatexts.panels.DP_5.right = 'Armor';
-	elseif layout == 'healer' then
-		E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power';
-		E.db.datatexts.panels.DP_6.middle = 'Haste';
-		E.db.datatexts.panels.DP_6.right = 'Crit Chance';
-		if E.db.lowresolutionset then
-			E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power';
-			E.db.datatexts.panels.RightChatDataPanel.middle = 'Crit Chance';
-			E.db.datatexts.panels.RightChatDataPanel.right = 'Mana Regen';
-		else
-			E.db.datatexts.panels.RightChatDataPanel.left = 'Mana Regen';
-			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
-			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
-		end
-		E.db.datatexts.panels.DP_5.right = 'Armor';
-	elseif layout == 'dpsCaster' then
-		E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power';
-		E.db.datatexts.panels.DP_6.middle = 'Haste';
-		E.db.datatexts.panels.DP_6.right = 'Crit Chance';
-		if E.db.lowresolutionset then
-			E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power';
-			E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste';
-			E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance';
-		else
-			E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
-			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
-			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
-		end
-		E.db.datatexts.panels.DP_5.right = 'Armor';
-	else
-		E.db.datatexts.panels.DP_6.left = 'Attack Power';
-		E.db.datatexts.panels.DP_6.middle = 'Haste';
-		E.db.datatexts.panels.DP_6.right = 'Crit Chance';
-		if E.db.lowresolutionset then
-			E.db.datatexts.panels.RightChatDataPanel.left = 'Attack Power';
-			E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste';
-			E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance';
-		else
-			E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
-			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
-			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
-		end
-		E.db.datatexts.panels.DP_5.right = 'Expertise';
-	end
-
-	--Actionbars
-	E.db.actionbar.hotkeytext = false
-	if E.db.lowresolutionset then
-		E.db.movers.ElvAB_2 = "BOTTOMUIParentBOTTOM056" --Need to move up if low resolution is set
-	else
-		E.db.actionbar.bar2.enabled = false; --Don't need to hide that if not
-	end
-	E.db.actionbar.bar4.enabled = false;
-	E.db.actionbar.bar1.point = 'TOPLEFT'
-	E.db.actionbar.bar3.point = 'TOPLEFT'
-	E.db.actionbar.bar5.point = 'TOPLEFT'
-	E.db.actionbar.barShapeShift.buttonsize = 25
-	E.db.actionbar.barPet.point = 'TOPLEFT'
-	E.db.actionbar.barPet.buttonsPerRow = 10
-	E.db.actionbar.barPet.buttonsize = 22
-	--Actionbars moving up
-	E.db.movers.ElvAB_1 = "BOTTOMUIParentBOTTOM021"
-	E.db.movers.ShiftAB = "TOPLEFTUIParentTOPLEFT0-21"
-	if E.db.lowresolutionset then
-		E.db.movers.PetAB = "BOTTOMElvAB_2TOP10"
-	else
-		E.db.movers.PetAB = "BOTTOMElvAB_1TOP10"
-	end
-
-	--Unitframes
-	E.db.unitframe.smoothbars = false
-	E.db.unitframe.fontsize = 9
-	E.db.unitframe.debuffHighlighting = false
-	E.db.unitframe.smartRaidFilter = false
-	E.db.unitframe.colors.healthclass = true
-	E.db.unitframe.colors.colorhealthbyvalue = false
-	E.db.unitframe.colors.classNames = false
-	E.db.unitframe.fontoutline = 'OUTLINE'
-
-	--The big block for moving all unitframes stuff up
-	if layout == 'healer' then
-		if not noDataReset then
-			E.db.unitframe.units.party.health.frequentUpdates = true;
-			E.db.unitframe.units.raid25.health.frequentUpdates = true;
-			E.db.unitframe.units.raid40.health.frequentUpdates = true;
-
-			E.db.unitframe.units.raid40.height = 36;
-			E.db.unitframe.units.raid40.health.text = true;
-			E.db.unitframe.units.raid40.name.position = 'TOP';
-			E.db.unitframe.units.raid40.roleIcon.enable = true;
-			E.db.unitframe.units.boss.width = 200;
-			E.db.unitframe.units.boss.castbar.width = 200;
-			E.db.unitframe.units.arena.width = 200;
-			E.db.unitframe.units.arena.castbar.width = 200;
-
-			E.db.unitframe.units.party.point = 'LEFT';
-			E.db.unitframe.units.party.xOffset = 5;
-			E.db.unitframe.units.party.healPrediction = true;
-			E.db.unitframe.units.party.columnAnchorPoint = 'LEFT';
-			E.db.unitframe.units.party.width = 80;
-			E.db.unitframe.units.party.height = 52;
-			E.db.unitframe.units.party.health.text_format = 'deficit';
-			E.db.unitframe.units.party.health.position = 'BOTTOM';
-			E.db.unitframe.units.party.health.orientation = 'VERTICAL';
-			E.db.unitframe.units.party.name.position = 'TOP';
-			E.db.unitframe.units.party.name.length = "SHORT";
-			E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT';
-			E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT';
-			E.db.unitframe.units.party.debuffs.useFilter = 'DebuffBlacklist';
-			E.db.unitframe.units.party.debuffs.sizeOverride = 0;
-			E.db.unitframe.units.party.petsGroup.enable = true;
-			E.db.unitframe.units.party.petsGroup.width = 80;
-			E.db.unitframe.units.party.petsGroup.initialAnchor = 'BOTTOM';
-			E.db.unitframe.units.party.petsGroup.anchorPoint = 'TOP';
-			E.db.unitframe.units.party.petsGroup.xOffset = 0;
-			E.db.unitframe.units.party.petsGroup.yOffset = 1;
-			E.db.unitframe.units.party.targetsGroup.enable = false;
-			E.db.unitframe.units.party.targetsGroup.width = 80;
-			E.db.unitframe.units.party.targetsGroup.initialAnchor = 'BOTTOM';
-			E.db.unitframe.units.party.targetsGroup.anchorPoint = 'TOP';
-			E.db.unitframe.units.party.targetsGroup.xOffset = 0;
-			E.db.unitframe.units.party.targetsGroup.yOffset = 1;
-
-			E.db.unitframe.units.raid25.healPrediction = true;
-			E.db.unitframe.units.raid25.health.orientation = 'VERTICAL';
-
-			E.db.unitframe.units.raid40.healPrediction = true;
-			E.db.unitframe.units.raid40.health.orientation = 'VERTICAL';
-		end
-
-		if not E.db.movers then E.db.movers = {}; end
-		if E.db.lowresolutionset then
-			E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-305256"
-			E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM305256"
-			E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM0125"
-			E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM0125"
-			E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM0125"
-			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM305203"
-			E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0159"
-			E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-305203"
-			E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310432"
-			E.db.actionbar.bar1.heightMult = 1
-			E.db.actionbar.bar2.backdrop = true
-
-		else
-			E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTUIParentBOTTOMLEFT464258"
-			E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464258"
-			E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM095"
-			E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM095"
-			E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM095"
-			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464167"
-			E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0120"
-			E.db.movers.ElvUF_PetMover = "BOTTOMLEFTUIParentBOTTOMLEFT464167"
-			E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM280332"
-		end
-	elseif E.db.lowresolutionset then
-		if not E.db.movers then E.db.movers = {}; end
-		E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106180"
-		E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106180"
-		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM106125"
-		E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-106125"
-		E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332"
-		E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249"
-		E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249"
-		E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249"
-		E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT0249"
-		E.db.actionbar.bar1.heightMult = 1
-		E.db.actionbar.bar2.backdrop = true
-	else
-		--[[if not noDataReset then
-			E:ResetMovers('')
-		end]]
-		if not E.db.movers then E.db.movers = {}; end
-		E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-28888"
-		E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM28888"
-		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM0120"
-		E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM0164"
-		E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM280332"
-		E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249"
-		E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249"
-		E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249"
-		E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT0249"
-		E.db.movers.ElvAB_1 = "BOTTOMUIParentBOTTOM021"
-	end
-
-	if E.db.lowresolutionset and not noDataReset then
-		E.db.unitframe.units.player.width = 200;
-		E.db.unitframe.units.player.castbar.width = 200;
-		E.db.unitframe.units.player.classbar.fill = 'fill';
-
-		E.db.unitframe.units.target.width = 200;
-		E.db.unitframe.units.target.castbar.width = 200;
-
-		E.db.unitframe.units.pet.power.enable = false;
-		E.db.unitframe.units.pet.width = 200;
-		E.db.unitframe.units.pet.height = 26;
-
-		E.db.unitframe.units.targettarget.debuffs.enable = false;
-		E.db.unitframe.units.targettarget.power.enable = false;
-		E.db.unitframe.units.targettarget.width = 200;
-		E.db.unitframe.units.targettarget.height = 26;
-
-		E.db.unitframe.units.boss.width = 200;
-		E.db.unitframe.units.boss.castbar.width = 200;
-		E.db.unitframe.units.arena.width = 200;
-		E.db.unitframe.units.arena.castbar.width = 200;
-	end
-
-	--Setting player frame
-	E.db.unitframe.units.player.lowmana = 0;
-	E.db.unitframe.units.player.health.position = 'BOTTOMRIGHT';
-	E.db.unitframe.units.player.power.position = 'RIGHT';
-	E.db.unitframe.units.player.name.enable = true;
-	E.db.unitframe.units.player.name.position = 'TOPLEFT';
-	E.db.unitframe.units.player.portrait.enable = true
-	E.db.unitframe.units.player.portrait.camDistanceScale = 1.5;
-	E.db.unitframe.units.player.debuffs.enable = false;
-	E.db.unitframe.units.player.castbar.format = 'CURRENTMAX';
-	E.db.unitframe.units.player.classbar.fill = 'fill'
-	E.db.unitframe.units.player.classbar.height = 8
-	--Setting target frame
-	E.db.unitframe.units.target.hideonnpc = false;
-	E.db.unitframe.units.target.health.position = 'BOTTOMRIGHT';
-	E.db.unitframe.units.target.power.position = 'RIGHT';
-	E.db.unitframe.units.target.power.hideonnpc = false;
-	E.db.unitframe.units.target.name.enable = true;
-	E.db.unitframe.units.target.name.position = 'TOPLEFT';
-	E.db.unitframe.units.target.portrait.enable = true
-	E.db.unitframe.units.target.portrait.camDistanceScale = 1.5;
-	E.db.unitframe.units.target.buffs.perrow = 8;
-	E.db.unitframe.units.target.buffs.numrows = 2;
-	E.db.unitframe.units.target.buffs['growth-x'] = 'RIGHT';
-	E.db.unitframe.units.target.buffs.initialAnchor = 'BOTTOMLEFT';
-	E.db.unitframe.units.target.buffs.anchorPoint = 'TOPLEFT';
-	E.db.unitframe.units.target.debuffs.perrow = 8;
-	E.db.unitframe.units.target.debuffs.useFilter = 'DebuffBlacklist';
-	E.db.unitframe.units.target.debuffs.showPlayerOnly = false;
-	E.db.unitframe.units.target.castbar.format = 'CURRENTMAX';
-	--Target of Target
-	E.db.unitframe.units.targettarget.debuffs.enable = false
-	--Focus
-	E.db.unitframe.units.focus.health.position = 'BOTTOMRIGHT'
-	E.db.unitframe.units.focus.power.text = true
-	E.db.unitframe.units.focus.power.height = 10
-	E.db.unitframe.units.focus.name.position = 'TOPLEFT'
-	E.db.unitframe.units.focus.debuffs.perrow = 7
-	E.db.unitframe.units.focus.debuffs['growth-y'] = 'UP'
-	E.db.unitframe.units.focus.castbar.format = 'CURRENTMAX'
-	--Arena
-	E.db.unitframe.units.arena.growthDirection = 'DOWN'
-	E.db.unitframe.units.arena.health.position = 'BOTTOMRIGHT'
-	E.db.unitframe.units.arena.name.position = 'TOPLEFT'
-	E.db.unitframe.units.arena.buffs.enable = false
-	E.db.unitframe.units.arena.debuffs.enable = false
-	E.db.unitframe.units.arena.castbar.format = 'CURRENTMAX'
-	if E.db.lowresolutionset then
-		E.db.movers.ArenaHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240"
-	else
-		E.db.movers.ArenaHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240"
-	end
-	--Boss
-	E.db.unitframe.units.boss.growthDirection = 'DOWN'
-	E.db.unitframe.units.boss.health.position = 'BOTTOMRIGHT'
-	E.db.unitframe.units.boss.power.height = 10
-	E.db.unitframe.units.boss.name.position = 'TOPLEFT'
-	E.db.unitframe.units.boss.buffs.enable = false
-	E.db.unitframe.units.boss.debuffs.enable = false
-	E.db.unitframe.units.boss.castbar.format = 'CURRENTMAX'
-	if E.db.lowresolutionset then
-		E.db.movers.BossHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240"
-	else
-		E.db.movers.BossHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240"
-	end
-
-	--Bags
-	E.db.bags.yOffset = 225
-	--ClassTimers
-	E.db.classtimer.target.enable = false
-	--Raid utility
-	E.db.sle.raidutil.ypos = E.screenheight - 30
-	--Exp/Rep Text
-	E.db.sle.xprepinfo.enabled = true
-	E.db.sle.xprepinfo.xprepdet = true
-	E.db.sle.xprepinfo.xprest = true
-	--PvP text and Combat icon
-	E.db.sle.pvp.pos = 'BOTTOMLEFT'
-	E.db.sle.pvp.mouse = false
-	E.db.sle.combatico.pos = 'TOPRIGHT'
-	--Chat
-	E.db.sle.chat.fade = true
-	E.db.sle.unitframes.reverse.mana = true
-	--UI buttons
-	E.db.sle.uibuttons.enable = true
-	if E.db.lowresolutionset then
-		E.db.movers.UIBFrameMover = "LEFTUIParentLEFT030"
-	end
-	--Minimap and auras
-	E.db.movers.MinimapMover = "TOPRIGHTUIParentTOPRIGHT-1-21"
-	E.db.movers.AurasMover = "TOPRIGHTMMHolderTOPLEFT-10"
-	E.db.movers.BNETMover = "TOPRIGHTArenaHeaderMoverBOTTOMRIGHT0-10"
-	if E.db.lowresolutionset then
-		E.db.movers.WatchFrameMover = "TOPRIGHTUIParentTOPRIGHT-300-210"
-	else
-		E.db.movers.WatchFrameMover = "BOTTOMLEFTUIParentBOTTOMLEFT1500846"
-	end
-	--Ticket frame
-	E.db.movers.GMMover = "TOPRIGHTBNETMoverBOTTOMRIGHT0-10"
-
-	E:UpdateAll(true)
-end
-
-function E:RepoocSetup() --The function to switch from classic ElvUI settings to Repooc's
-	InstallStepComplete.message = L["Repooc's Defaults Set"]
-	InstallStepComplete:Show()
-	if not E.db.movers then E.db.movers = {}; end
-
-	--Actionbars
-	E.db.actionbar.fontsize = 12
-	E.db.actionbar.hotkeytext = true
-	E.db.actionbar.macrotext = true
-	E.db.actionbar.bar1.enabled = true
-	E.db.actionbar.bar2.enabled = true
-	E.db.actionbar.bar2.point = 'TOPLEFT'
-
-	--Chat
-	E.db.sle.chat.fade = true
-	E.db.sle.unitframes.reverse.mana = false
-	E.db.chat.hyperlinkHover = false
-	E.db.chat.font = "Friz Quadrata TT"
-	E.db.chat.fontoutline = "OUTLINE"
-	E.db.scrollDownInterval = 30
-
-	--Datatexts
-	E.db.sle.datatext.top.enabled = true
-
-	--Datatext Panels
-	E.db.sle.datatext.dp1.enabled = true
-	E.db.sle.datatext.dp2.enabled = true
-	E.db.sle.datatext.dp3.enabled = true
-	E.db.sle.datatext.dp4.enabled = true
-
-	--Datatext Panels Presets
-	E.db.datatexts.panels['DP_1']['right'] = ""
-	E.db.datatexts.panels['DP_1']['left'] = ""
-	E.db.datatexts.panels['DP_1']['middle'] = ""
-	E.db.datatexts.panels['DP_2']['right'] = "Altoholic"
-	E.db.datatexts.panels['DP_2']['left'] = "Notes"
-	E.db.datatexts.panels['DP_4']['right'] = "Time"
-	E.db.datatexts.panels['DP_5']['right'] = "Haste"
-	E.db.datatexts.panels['DP_5']['left'] = "Durability"
-	E.db.datatexts.panels['DP_5']['middle'] = "Crit Chance"
-	E.db.datatexts.panels['DP_6']['right'] = "Skada"
-	E.db.datatexts.panels['DP_6']['left'] = "Spell/Heal Power"
-	E.db.datatexts.panels['DP_6']['middle'] = "Hit Rating"
-	E.db.datatexts.panels['LeftChatDataPanel']['right'] = ""
-	E.db.datatexts.panels['LeftChatDataPanel']['left'] = ""
-	E.db.datatexts.panels['LeftChatDataPanel']['middle'] = ""
-	E.db.datatexts.panels['RightChatDataPanel']['right'] = "Bags"
-	E.db.datatexts.panels['Top_Center'] = "Version"
-	E.db.datatexts.panels['Bottom_Panel'] = "System"
-	E.db.datatexts.panels['LeftMiniPanel'] = ""
-	E.db.datatexts.panels['RightMiniPanel'] = ""
-
-	--Exp/Rep Bar
-	E.db.general.expRepPos = "MINIMAP_BOTTOM"
-	E.db.sle.xprepinfo.enabled = true
-	E.db.sle.xprepinfo.xprepdet = true
-	E.db.sle.xprepinfo.xprest = true
-
-	--General Options
-	E.db.general.vendorGrays = true
-	E.db.general.font = "Accidental Presidency"
-	E.db.general.interruptAnnounce = "RAID"
-	E.db.general.autoRepair = "PLAYER"
-	E.db.general.stickyFrames = false
-	E.db.general.panelBackdropNameLeft = "Interface\\Addons\\ElvUI_SLE\textures\\chat_1.tga"
-	E.db.general.panelBackdropNameRight = "Interface\\Addons\\ElvUI_SLE\textures\\chat_1.tga"
-	E.db.general.vendorGrays = true
-	E.db.general.elvnotice = true
-
-	--LFR Lockout
-	E.db.datatexts.lfrshow = true
-
-	--Microbar
-	E.db.microbar.enable = false
-
-	--Movers
-	E.db.movers.ShiftAB = "TOPLEFTUIParentTOPLEFT0-21"
-	E.db.movers.MinimapMover = "TOPRIGHTUIParentTOPRIGHT-1-21"
-	E.db.movers.AurasMover = "TOPRIGHTMMHolderTOPLEFT-10"
-
-	--Nameplates
-	E.db.nameplate.showhealth = true
-	E.db.nameplate.width = 110
-
-	--PvP & Combat Icon
-	E.db.sle.pvp.pos = 'BOTTOMLEFT'
-	E.db.sle.pvp.mouse = false
-	E.db.sle.combatico.pos = 'TOPRIGHT'
-
-	--Raid utility
-	E.db.sle.raidutil.ypos = E.screenheight - 30
-
-	--Skins
-	E.db.skins.embedRight = "Skada"
-
-	--Tooltip
-	E.db.tooltip.anchor = "ANCHOR"
-
-	--UIButtons
-	E.db.sle.uibuttons.enable = true
-
-	--Unitframes
-	E.db.unitframe.debuffHighlighting = true
-	E.db.unitframe.smartRaidFilter = true
-	E.db.unitframe.smoothbars = true
-	E.db.unitframe.statusbar = "TukTex"
-	E.db.unitframe.font = "Accidental Presidency"
-	E.db.unitframe.fontsize = 13
-	E.db.unitframe.fontoutline = 'NONE'
-	E.db.unitframe.colors.healthclass = false
-	E.db.unitframe.colors.colorhealthbyvalue = false
-	E.db.unitframe.colors.classNames = true
-
-	--Unitframes (Assist)
-	E.db.unitframe.units.assist.enable = false
-
-	--Unitframes (Player)
-	E.db.unitframe.units.player.altpower.enable = true
-	E.db.unitframe.units.player.castbar.format = "CURRENTMAX"
-	E.db.unitframe.units.player.classbar.fill = "spaced"
-	E.db.unitframe.units.player.classbar.height = 7
-	E.db.unitframe.units.player.health.position = "TOPLEFT"
-	E.db.unitframe.units.player.health.text = true
-	E.db.unitframe.units.player.health.text_format = "current-percent"
-	E.db.unitframe.units.player.lowmana = 30
-	E.db.unitframe.units.player.name.enable = true
-	E.db.unitframe.units.player.name.position = "BOTTOMRIGHT"
-	E.db.unitframe.units.player.portrait.camDistanceScale = 2.25
-	E.db.unitframe.units.player.portrait.enable = true
-	E.db.unitframe.units.player.portrait.overlay = true
-	E.db.unitframe.units.player.power.offset = 7
-	E.db.unitframe.units.player.power.position = "LEFT"
-	E.db.unitframe.units.player.power.text = true
-	E.db.unitframe.units.player.power.text_format = "current"
-	E.db.unitframe.units.player.restIcon = false
-
-	--Unitframes (Target)
-	E.db.unitframe.units.target.buffs.anchorPoint = "TOPRIGHT"
-	E.db.unitframe.units.target.buffs['growth-x'] = "LEFT"
-	E.db.unitframe.units.target.buffs.initialAnchor = "BOTTOMRIGHT"
-	E.db.unitframe.units.target.buffs.numrows = 1
-	E.db.unitframe.units.target.buffs.perrow = 7
-	E.db.unitframe.units.target.castbar.format = "CURRENTMAX"
-	E.db.unitframe.units.target.debuffs.perrow = 7
-	E.db.unitframe.units.target.debuffs.showPlayerOnly = true
-	E.db.unitframe.units.target.debuffs.useFilter = "CCDebuffs"
-	E.db.unitframe.units.target.healPrediction = true
-	E.db.unitframe.units.target.health.position = "TOPRIGHT"
-	E.db.unitframe.units.target.health.text = true
-	E.db.unitframe.units.target.health.text_format = "current-percent"
-	E.db.unitframe.units.target.hideonnpc = true
-	E.db.unitframe.units.target.name.enable = true
-	E.db.unitframe.units.target.name.position = "BOTTOMLEFT"
-	E.db.unitframe.units.target.portrait.camDistanceScale = 2.5
-	E.db.unitframe.units.target.portrait.enable = true
-	E.db.unitframe.units.target.portrait.overlay = true
-	E.db.unitframe.units.target.power.offset = 7
-	E.db.unitframe.units.target.power.position = "RIGHT"
-	E.db.unitframe.units.target.power.text = true
-	E.db.unitframe.units.target.power.text_format = "current"
-
-	--Unitframes (Raid10)
-	E.db.unitframe.units.raid10.showSolo = true
-	E.db.unitframe.units.raid10.visibility = "[@raid11,exists] hide;show"
-	E.db.unitframe.units.raid10.power.position = "BOTTOMLEFT"
-	E.db.unitframe.units.raid10.power.width = "spaced"
-	E.db.unitframe.units.raid10.healPrediction = true
-	E.db.unitframe.units.raid10.health.frequentUpdates = true
-
-	--Unitframes (Raid25)
-	E.db.unitframe.units.raid25.healPrediction = true
-	E.db.unitframe.units.raid25.power.width = "spaced"
-
-	if E.db.lowresolutionset then
-		--Actionbars
-		E.db.actionbar.bar1.heightMult = 2
-		E.db.actionbar.bar1.point = 'BOTTOMLEFT'
-		E.db.actionbar.bar3.enabled = false
-		E.db.actionbar.bar4.buttonsize = 25
-		E.db.actionbar.bar4.enabled = true
-		E.db.actionbar.bar4.point = 'TOPLEFT'
-		E.db.actionbar.bar4.buttonsize = 20
-		E.db.actionbar.bar5.enabled = false
-		E.db.actionbar.barShapeShift.buttonsize = 20
-		E.db.actionbar.barPet.buttonsize = 20
-
-		--Datatext Panels
-		E.db.sle.datatext.dp5.enabled = false
-		E.db.sle.datatext.dp6.enabled = false
-		E.db.sle.datatext.bottom.enabled = false
-		E.db.sle.datatext.chatleft.width = 334
-		E.db.sle.datatext.chatright.width = 334
-		E.db.datatexts.panels['DP_2']['middle'] = "Spec Switch"
-		E.db.datatexts.panels['DP_3']['right'] = "Mastery"
-		E.db.datatexts.panels['DP_3']['left'] = "Haste"
-		E.db.datatexts.panels['DP_3']['middle'] = "Crit Chance"
-		E.db.datatexts.panels['DP_4']['left'] = "SocialState"
-		E.db.datatexts.panels['DP_4']['middle'] = "Gold"
-		E.db.datatexts.panels['LeftMiniPanel'] = "WIM"
-		E.db.datatexts.panels['RightMiniPanel'] = "System"
-		E.db.datatexts.panels['RightChatDataPanel']['left'] = "Skada"
-		E.db.datatexts.panels['RightChatDataPanel']['middle'] = "Durability"
-
-		--General Options
-		E.db.general.panelHeight = 180
-		E.db.general.panelWidth = 350
-		E.db.general.fontsize = 11
-		E.db.general.minimapPanels = true
-
-		--Marks Bar
-		E.db.sle.marks.growth = "DOWN"
-		E.db.sle.marks.size = 15
-
-		--Unitframes (Player)
-		E.db.unitframe.units.player.width = 200
-		E.db.unitframe.units.player.height = 50
-		E.db.unitframe.units.player.castbar.width = 200
-		E.db.unitframe.units.player.castbar.height = 18
-		E.db.unitframe.units.player.castbar.format = "CURRENTMAX"
-
-		--Unitframes (Raid10)
-		E.db.unitframe.units.raid10.width = 65
-		E.db.unitframe.units.raid10.health.position = "BOTTOM"
-		E.db.unitframe.units.raid10.health.orientation = "HORIZONTAL"
-
-		--Unitframes (Raid25)
-		E.db.unitframe.units.raid25.width = 65
-		E.db.unitframe.units.raid25.health.orientation = "HORIZONTAL"
-
-		--Unitframes (Raid40)
-		E.db.unitframe.units.raid40.width = 65
-
-		--Unitframes (Target)
-		E.db.unitframe.units.target.width = 200
-		E.db.unitframe.units.target.height = 50
-		E.db.unitframe.units.target.castbar.width = 200
-		E.db.unitframe.units.target.castbar.height = 18
-		E.db.unitframe.units.target.castbar.format = "CURRENTMAX"
-
-	else
-		--Actionbars
-		E.db.actionbar.bar1.buttonsPerRow = 6
-		E.db.actionbar.bar1.buttonspacing = 3
-		E.db.actionbar.bar1.point = 'TOPLEFT'
-		E.db.actionbar.bar1['paging'][E.myclass] = "[mod:alt] 5;"
-		E.db.actionbar.bar2.backdrop = true
-		E.db.actionbar.bar2.buttonsPerRow = 6
-		E.db.actionbar.bar2.buttonspacing = 3
-		E.db.actionbar.bar2.enable = true
-		E.db.actionbar.bar2.mouseover = true
-		E.db.actionbar.bar2.buttons = 12
-		E.db.actionbar.bar3.buttons = 12
-		E.db.actionbar.bar3.buttonspacing = 3
-		E.db.actionbar.bar3.enabled = true
-		E.db.actionbar.bar3.point = 'TOPLEFT'
-		E.db.actionbar.bar4.enabled = false
-		E.db.actionbar.bar4.point = 'TOPLEFT'
-		E.db.actionbar.bar4.buttonspacing = 3
-		E.db.actionbar.bar4.buttonsPerRow = 12
-		E.db.actionbar.bar5.enabled = true
-		E.db.actionbar.bar5.point = 'TOPLEFT'
-		E.db.actionbar.bar5.buttons = 12
-		E.db.actionbar.bar5.buttonspacing = 3
-		E.db.actionbar.barShapeShift.buttonsize = 31
-		E.db.actionbar.barShapeShift.buttonsPerRow = 1
-		E.db.actionbar.barShapeShift.buttonspacing = 5
-		E.db.actionbar.barShapeShift.backdrop = true
-		E.db.actionbar.barPet.buttonsize = 21
-
-		--Bags
-		E.db.bags.bagCols = 11
-		E.db.bags.yOffset = 245
-
-		--Datatext Panels
-		E.db.sle.datatext.dp5.enabled = true
-		E.db.sle.datatext.dp5.width = 424
-		E.db.sle.datatext.dp6.enabled = true
-		E.db.sle.datatext.dp6.width = 424
-		E.db.sle.datatext.bottom.enabled = true
-		E.db.sle.datatext.chatleft.width = 424
-		E.db.sle.datatext.chatright.width = 424
-		E.db.datatexts.panels['DP_2']['middle'] = ""
-		E.db.datatexts.panels['DP_3']['right'] = "WIM"
-		E.db.datatexts.panels['DP_3']['left'] = "SocialState"
-		E.db.datatexts.panels['DP_3']['middle'] = ""
-		E.db.datatexts.panels['DP_4']['left'] = ""
-		E.db.datatexts.panels['DP_4']['middle'] = ""
-		E.db.datatexts.panels['RightChatDataPanel']['left'] = ""
-		E.db.datatexts.panels['RightChatDataPanel']['middle'] = "Gold"
-
-		--General Options
-		E.db.general.panelHeight = 243
-		E.db.general.panelWidth = 400
-		E.db.general.fontsize = 12
-		E.db.general.minimapSize = 181
-		E.db.general.minimapPanels = false
-
-		--Marks
-		E.db.sle.marks.size = 15
-
-		--Movers
-		E.db.movers.ElvAB_1 = "BOTTOMUIParentBOTTOM021"
-		E.db.movers.ElvAB_2 = "RIGHTUIParentRIGHT0200"
-		E.db.movers.ElvAB_3 = "RIGHTElvAB_1LEFT00"
-		E.db.movers.ElvAB_5 = "LEFTElvAB_1RIGHT00"
-		E.db.movers.BossButton = "CENTERUIParentBOTTOMLEFT660968"
-		E.db.movers.BNETMover = "TOPRIGHTUIParentTOPRIGHT-2-214"
-
-		--Unitframes (Arena)
-		E.db.unitframe.units.arena.debuffs.sizeOverride = 45
-		E.db.unitframe.units.arena.width = 200
-		E.db.unitframe.units.arena.buffs.sizeOverride = 45
-		E.db.unitframe.units.arena.buffs.perrow = 4
-		E.db.unitframe.units.arena.castbar.width = 200
-
-		--Unitframes (Boss)
-		E.db.unitframe.units.boss.debuffs.sizeOverride = 45
-		E.db.unitframe.units.boss.width = 200
-		E.db.unitframe.units.boss.height = 45
-		E.db.unitframe.units.boss.buffs.sizeOverride = 45
-		E.db.unitframe.units.boss.buffs.perrow = 4
-		E.db.unitframe.units.boss.castbar.width = 200
-		E.db.unitframe.units.boss.health.position = "TOPLEFT"
-
-		--Unitframes (Focus)
-		E.db.unitframe.units.focus.width = 150
-		E.db.unitframe.units.focus.castbar.width = 150
-		E.db.unitframe.units.focus.castbar.height = 15
-
-		--Unitframes (Player)
-		E.db.unitframe.units.player.width = 230
-		E.db.unitframe.units.player.height = 50
-		E.db.unitframe.units.player.castbar.width = 230
-		E.db.unitframe.units.player.castbar.height = 15
-		E.db.unitframe.units.player.castbar.format = "CURRENTMAX"
-
-		--Unitframes (Party)
-		E.db.unitframe.units.party.enable = false
-
-		--Unitframes (Raid10)
-		E.db.unitframe.units.raid10.showSolo = true
-		E.db.unitframe.units.raid10.width = 70
-		E.db.unitframe.units.raid10.health.position = "CENTER"
-		E.db.unitframe.units.raid10.health.orientation = "VERTICAL"
-
-		--Unitframes (Raid25)
-		E.db.unitframe.units.raid25.width = 70
-		E.db.unitframe.units.raid25.health.orientation = "VERTICAL"
-
-		--Unitframes (Raid40)
-		E.db.unitframe.units.raid40.width = 70
-
-		--Unitframes (Tank)
-		E.db.unitframe.units.tank.enable = false
-
-		--Unitframes (Target)
-		E.db.unitframe.units.target.width = 230
-		E.db.unitframe.units.target.height = 50
-		E.db.unitframe.units.target.castbar.width = 230
-		E.db.unitframe.units.target.castbar.height = 15
-		E.db.unitframe.units.target.castbar.format = "CURRENTMAX"
-
-	end
-
-	layout = E.db.layoutSet --To know if some sort of layout was choosed before
-
-	--The big block for moving all unitframes stuff up
-	if layout == 'healer' then
-		if not noDataReset then
-			E.db.unitframe.units.arena.castbar.width = 200
-			E.db.unitframe.units.arena.width = 200
-			E.db.unitframe.units.boss.castbar.width = 200
-			E.db.unitframe.units.boss.width = 200
-			E.db.unitframe.units.party.columnAnchorPoint = 'LEFT';
-			E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT';
-			E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT';
-			E.db.unitframe.units.party.debuffs.useFilter = 'DebuffBlacklist';
-			E.db.unitframe.units.party.debuffs.sizeOverride = 0;
-			E.db.unitframe.units.party.health.frequentUpdates = true;
-			E.db.unitframe.units.party.health.text_format = 'deficit';
-			E.db.unitframe.units.party.health.position = 'BOTTOM';
-			E.db.unitframe.units.party.health.orientation = 'VERTICAL';
-			E.db.unitframe.units.party.healPrediction = true;
-			E.db.unitframe.units.party.height = 52;
-			E.db.unitframe.units.party.name.position = 'TOP';
-			E.db.unitframe.units.party.name.length = "SHORT";
-			E.db.unitframe.units.party.petsGroup.enable = true;
-			E.db.unitframe.units.party.petsGroup.width = 80;
-			E.db.unitframe.units.party.petsGroup.initialAnchor = 'BOTTOM';
-			E.db.unitframe.units.party.petsGroup.anchorPoint = 'TOP';
-			E.db.unitframe.units.party.petsGroup.xOffset = 0;
-			E.db.unitframe.units.party.petsGroup.yOffset = 1;
-			E.db.unitframe.units.party.point = 'LEFT';
-			E.db.unitframe.units.party.targetsGroup.enable = false;
-			E.db.unitframe.units.party.targetsGroup.width = 80;
-			E.db.unitframe.units.party.targetsGroup.initialAnchor = 'BOTTOM';
-			E.db.unitframe.units.party.targetsGroup.anchorPoint = 'TOP';
-			E.db.unitframe.units.party.targetsGroup.xOffset = 0;
-			E.db.unitframe.units.party.targetsGroup.yOffset = 1;
-			E.db.unitframe.units.party.width = 80;
-			E.db.unitframe.units.party.xOffset = 5;
-			E.db.unitframe.units.raid25.health.frequentUpdates = true;
-			E.db.unitframe.units.raid25.healPrediction = true;
-			E.db.unitframe.units.raid25.health.orientation = 'VERTICAL';
-			E.db.unitframe.units.raid40.health.frequentUpdates = true;
-			E.db.unitframe.units.raid40.height = 36;
-			E.db.unitframe.units.raid40.health.text = true;
-			E.db.unitframe.units.raid40.name.position = 'TOP';
-			E.db.unitframe.units.raid40.roleIcon.enable = true;
-			E.db.unitframe.units.raid40.healPrediction = true;
-			E.db.unitframe.units.raid40.health.orientation = 'VERTICAL';
-		end
-
-		if not E.db.movers then E.db.movers = {}; end
-		if E.db.lowresolutionset then
-			--print("Healer low res selected");
-			E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106135"
-			E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106135"
-			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM10680"
-			E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-10680"
-			E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332"
-			E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT13203"
-			E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203"
-			E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203"
-			E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203"
-			E.db.movers.ElvAB_2 = "CENTERUIParentBOTTOM056.18"
-			E.db.movers.MarkMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-35270"
-			E.db.movers.BossButton = "BOTTOMLEFTUIParentBOTTOMLEFT36285"
-			E.db.movers.BNETMover = "TOPLEFTUIParentTOPLEFT294-22"
-			E.db.movers.BossHeaderMover = "TOPRIGHTUIParentTOPRIGHT-119-262"
-			E.db.movers.ArenaHeaderMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-118218"
-		else
-			--print("Healer high res selected");
-			E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-300265"
-			E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM300265"
-			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464167"
-			E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-420135"
-			E.db.movers.ElvUF_FocusMover = "BOTTOMLEFTUIParentBOTTOM560265"
-			E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0105"
-			E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM0105"
-			E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM0105"
-			E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM0105"
-			E.db.movers.MarkMover = "BOTTOMUIParentBOTTOM-285200"
-
-		end
-	elseif E.db.lowresolutionset then
-		if not E.db.movers then E.db.movers = {}; end
-		--print("None healer low res selected");
-		E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106135"
-		E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106135"
-		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM10680"
-		E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-10680"
-		E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332"
-		E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT13203"
-		E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203"
-		E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203"
-		E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203"
-		E.db.movers.ElvAB_2 = "CENTERUIParentBOTTOM056.18"
-		E.db.movers.MarkMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-35270"
-		E.db.movers.BossButton = "BOTTOMLEFTUIParentBOTTOMLEFT36285"
-		E.db.movers.BNETMover = "TOPLEFTUIParentTOPLEFT294-22"
-		E.db.movers.BossHeaderMover = "TOPRIGHTUIParentTOPRIGHT-119-262"
-		E.db.movers.ArenaHeaderMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-118218"
-
-		else
-		--[[if not noDataReset then
-			E:ResetMovers('')
-		end]]
-		if not E.db.movers then E.db.movers = {}; end
-		--print("None healer high res selected");
-		E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-185135"
-		E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM185135"
-		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM0120"
-		E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-420135"
-		E.db.movers.ElvUF_FocusMover = "BOTTOMLEFTUIParentBOTTOM560265"
-		E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT0263"
-		E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263"
-		E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263"
-		E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263"
-		E.db.movers.MarkMover = "BOTTOMUIParentBOTTOM0165"
-	end
-
-	if E.db.lowresolutionset and not noDataReset then
-		E.db.unitframe.units.player.width = 200;
-		E.db.unitframe.units.player.castbar.width = 200;
-		E.db.unitframe.units.player.classbar.fill = 'fill';
-
-		E.db.unitframe.units.target.width = 200;
-		E.db.unitframe.units.target.castbar.width = 200;
-
-		E.db.unitframe.units.pet.power.enable = false;
-		E.db.unitframe.units.pet.width = 200;
-		E.db.unitframe.units.pet.height = 26;
-
-		E.db.unitframe.units.targettarget.debuffs.enable = false;
-		E.db.unitframe.units.targettarget.power.enable = false;
-		E.db.unitframe.units.targettarget.width = 200;
-		E.db.unitframe.units.targettarget.height = 26;
-
-		E.db.unitframe.units.boss.width = 200;
-		E.db.unitframe.units.boss.castbar.width = 200;
-		E.db.unitframe.units.arena.width = 200;
-		E.db.unitframe.units.arena.castbar.width = 200;
-	end
-
-	E:UpdateAll(true)
-end
-
-function E:ElvSetup() --The function to restore defaults. not finished yet lol
-	InstallStepComplete.message = L["Elv's Defaults Set"]
-	InstallStepComplete:Show()
-	if not E.db.movers then E.db.movers = {}; end
-	--Set to defaults. Every module is listed just in case.
-	E:CopyTable(E.db.general, P.general) --General options
-	E:CopyTable(E.db.nameplate, P.nameplate) --Nameplates
-	E:CopyTable(E.db.datatexts, P.datatexts) --Datatexts
-	E:CopyTable(E.db.actionbar, P.actionbar) --Actionbars
-	E:CopyTable(E.db.tooltip, P.tooltip) --Tooltip
-	E:CopyTable(E.db.unitframe, P.unitframe) --Unitframes
-	E:CopyTable(E.db.skins, P.skins) --Skins
-	E:CopyTable(E.db.bags, P.bags) --Bags
-	E:CopyTable(E.db.classtimer, P.classtimer) --ClassTimers
-	E:CopyTable(E.db.chat, P.chat) --Chat
-	E:CopyTable(E.db.sle, P.sle) --Edit's main defaults
-	E:CopyTable(E.db.microbar, P.microbar) --Microbar
-	--Move every bar and panel to the defaults.
-	E:ResetUI() --Reseting positions
-	StaticPopup3Button1:Click() --this is automatic click on confirm for reseting movers
-
-	E:UpdateAll(true)
-end
-
-local function InstallComplete()
-	E.db.install_complete = E.version
-
-	if GetCVarBool("Sound_EnableMusic") then
-		StopMusic()
-	end
-
-	ReloadUI()
-end
-
-local function ResetAll()
-	InstallNextButton:Disable()
-	InstallPrevButton:Disable()
-	InstallOption1Button:Hide()
-	InstallOption1Button:SetScript("OnClick", nil)
-	InstallOption1Button:SetText("")
-	InstallOption2Button:Hide()
-	InstallOption2Button:SetScript('OnClick', nil)
-	InstallOption2Button:SetText('')
-	InstallOption3Button:Hide()
-	InstallOption3Button:SetScript('OnClick', nil)
-	InstallOption3Button:SetText('')
-	InstallOption4Button:Hide()
-	InstallOption4Button:SetScript('OnClick', nil)
-	InstallOption4Button:SetText('')
-	ElvUIInstallFrame.SubTitle:SetText("")
-	ElvUIInstallFrame.Desc1:SetText("")
-	ElvUIInstallFrame.Desc2:SetText("")
-	ElvUIInstallFrame.Desc3:SetText("")
-	InstallTutorialImage:Size(250)
-	InstallTutorialImage:SetTexture(nil)
-	InstallTutorialImage:Hide()
-	ElvUIInstallFrame:Size(550, 400)
-end
-
-local function SetPage(PageNum)
-	ResetAll()
-	InstallStatus:SetValue(PageNum)
-
-	local f = ElvUIInstallFrame
-
-	if PageNum == MAX_PAGE then
-		InstallNextButton:Disable()
-	else
-		InstallNextButton:Enable()
-	end
-
-	if PageNum == 1 then
-		InstallPrevButton:Disable()
-	else
-		InstallPrevButton:Enable()
-	end
-
-	InstallTutorialImage:Size(256, 128)
-	InstallTutorialImage:SetTexture('Interface\\AddOns\\ElvUI_SLE\\textures\\logo_elvui_sle.tga')
-	InstallTutorialImage:Show()
-
-	if PageNum == 1 then
-		f.SubTitle:SetText(format(L["Welcome to ElvUI version %s!"], E.version))
-		f.Desc1:SetText(L["This install process will help you learn some of the features in ElvUI has to offer and also prepare your user interface for usage."])
-		f.Desc2:SetText(L["The in-game configuration menu can be accesses by typing the /ec command or by clicking the 'C' button on the minimap. Press the button below if you wish to skip the installation process."])
-		f.Desc3:SetText(L["Please press the continue button to go onto the next step."])
-
-		InstallOption1Button:Show()
-		InstallOption1Button:SetScript("OnClick", InstallComplete)
-		InstallOption1Button:SetText(L["Skip Process"])
-	elseif PageNum == 2 then
-		f.SubTitle:SetText(L["CVars"])
-		f.Desc1:SetText(L["This part of the installation process sets up your World of Warcraft default options it is recommended you should do this step for everything to behave properly."])
-		f.Desc2:SetText(L["Please click the button below to setup your CVars."])
-		f.Desc3:SetText(L["Importance: |cff07D400High|r"])
-		InstallOption1Button:Show()
-		InstallOption1Button:SetScript("OnClick", SetupCVars)
-		InstallOption1Button:SetText(L["Setup CVars"])
-	elseif PageNum == 3 then
-		f.SubTitle:SetText(L["Chat"])
-		f.Desc1:SetText(L["This part of the installation process sets up your chat windows names, positions and colors."])
-		f.Desc2:SetText(L["The chat windows function the same as Blizzard standard chat windows, you can right click the tabs and drag them around, rename, etc. Please click the button below to setup your chat windows."])
-		f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"])
-		InstallOption1Button:Show()
-		InstallOption1Button:SetScript("OnClick", SetupChat)
-		InstallOption1Button:SetText(L["Setup Chat"])
-	elseif PageNum == 4 then
-		f.SubTitle:SetText(L['Theme Setup'])
-		f.Desc1:SetText(L['Choose a theme layout you wish to use for your initial setup.'])
-		f.Desc2:SetText(L['You can always change fonts and colors of any element of elvui from the in-game configuration.'])
-		f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])
-
-		InstallOption1Button:Show()
-		InstallOption1Button:SetScript('OnClick', function() E:SetupTheme('classic') end)
-		InstallOption1Button:SetText(L["Classic"])
-		InstallOption2Button:Show()
-		InstallOption2Button:SetScript('OnClick', function() E:SetupTheme('classic_pixel') end)
-		InstallOption2Button:SetText(L['Classic Pixel'])
-		InstallOption3Button:Show()
-		InstallOption3Button:SetScript('OnClick', function() E:SetupTheme('default') end)
-		InstallOption3Button:SetText(DEFAULT)
-		InstallOption4Button:Show()
-		InstallOption4Button:SetScript('OnClick', function() E:SetupTheme('class') end)
-		InstallOption4Button:SetText(CLASS)
-	elseif PageNum == 5 then
-		f.SubTitle:SetText(L["Resolution"])
-		f.Desc1:SetText(format(L["Your current resolution is %s, this is considered a %s resolution."], E.resolution, E.lowversion == true and L["low"] or L["high"]))
-		if E.lowversion then
-			f.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 you resolution is."])
-			f.Desc3:SetText(L["Importance: |cff07D400High|r"])
-		else
-			f.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."])
-			f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])
-		end
-
-		InstallOption1Button:Show()
-		InstallOption1Button:SetScript('OnClick', function() E.SetupResolution('high') end)
-		InstallOption1Button:SetText(L["High Resolution"])
-		InstallOption2Button:Show()
-		InstallOption2Button:SetScript('OnClick', function() E.SetupResolution('low') end)
-		InstallOption2Button:SetText(L['Low Resolution'])
-	elseif PageNum == 6 then
-		f.SubTitle:SetText(L["Layout"])
-		f.Desc1:SetText(L["You can now choose what layout you wish to use based on your combat role."])
-		f.Desc2:SetText(L["This will change the layout of your unitframes, raidframes, and datatexts."])
-		f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"])
-		InstallOption1Button:Show()
-		InstallOption1Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('tank') end)
-		InstallOption1Button:SetText(L['Tank'])
-		InstallOption2Button:Show()
-		InstallOption2Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('healer') end)
-		InstallOption2Button:SetText(L['Healer'])
-		InstallOption3Button:Show()
-		InstallOption3Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('dpsMelee') end)
-		InstallOption3Button:SetText(L['Physical DPS'])
-		InstallOption4Button:Show()
-		InstallOption4Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('dpsCaster') end)
-		InstallOption4Button:SetText(L['Caster DPS'])
-	elseif PageNum == 7 then --The new page
-		f.SubTitle:SetText(L["Shadow & Light Settings"])
-		f.Desc1:SetText(L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."])
-		f.Desc2:SetText(L["SLE_Install_Text2"])
-		f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])
-		InstallOption1Button:Show()
-		InstallOption1Button:SetScript('OnClick', function() E:DarthSetup() end)
-		InstallOption1Button:SetText(L["Darth's Config"])
-		InstallOption2Button:Show()
-		InstallOption2Button:SetScript('OnClick', function() E:SetupTheme('class'); E:RepoocSetup() end)
-		InstallOption2Button:SetText(L["Repooc's Config"])
-		InstallOption3Button:Show()
-		InstallOption3Button:SetScript('OnClick', function() E:ElvSetup() end)
-		InstallOption3Button:SetText(L["Elv's Defaults"])
-	elseif PageNum == 8 then
-		f.SubTitle:SetText(L["Installation Complete"])
-		f.Desc1:SetText(L["You are now finished with the installation process. Bonus Hint: If you wish to access blizzard micro menu, middle click on the minimap. If you don't have a middle click button then hold down shift and right click the minimap. If you are in need of technical support please visit us at www.tukui.org."])
-		f.Desc2:SetText(L["Please click the button below so you can setup variables and ReloadUI."])
-		InstallOption1Button:Show()
-		InstallOption1Button:SetScript("OnClick", InstallComplete)
-		InstallOption1Button:SetText(L["Finished"])
-		InstallTutorialImage:Show()
-		InstallTutorialImage:SetTexture([[Interface\AddOns\ElvUI\media\textures\micromenu_tutorial.tga]])
-		ElvUIInstallFrame:Size(550, 500)
-		InstallTutorialImage:Size(250)
-	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
-
---Install UI
-function E:Install()
-	E.db.datatexts.panels.Top_Center = 'Version'
-	E:GetModule('DataTexts'):LoadDataTexts()
-
-	if not InstallStepComplete then
-		local imsg = CreateFrame("Frame", "InstallStepComplete", E.UIParent)
-		imsg:Size(418, 72)
-		imsg:Point("TOP", 0, -190)
-		imsg:Hide()
-		imsg:SetScript('OnShow', function(self)
-			if self.message then
-				PlaySoundFile([[Sound\Interface\LevelUp.wav]])
-				self.text:SetText(self.message)
-				UIFrameFadeOut(self, 3.5, 1, 0)
-				E:Delay(4, function() self:Hide() end)
-				self.message = nil
-
-				if imsg.firstShow == false then
-					if GetCVarBool("Sound_EnableMusic") then
-						PlayMusic([[Sound\Music\ZoneMusic\DMF_L70ETC01.mp3]])
-					end
-					imsg.firstShow = true
-				end
-			else
-				self:Hide()
-			end
-		end)
-
-		imsg.firstShow = false
-
-		imsg.bg = imsg:CreateTexture(nil, 'BACKGROUND')
-		imsg.bg:SetTexture([[Interface\LevelUp\LevelUpTex]])
-		imsg.bg:SetPoint('BOTTOM')
-		imsg.bg:Size(326, 103)
-		imsg.bg:SetTexCoord(0.00195313, 0.63867188, 0.03710938, 0.23828125)
-		imsg.bg:SetVertexColor(1, 1, 1, 0.6)
-
-		imsg.lineTop = imsg:CreateTexture(nil, 'BACKGROUND')
-		imsg.lineTop:SetDrawLayer('BACKGROUND', 2)
-		imsg.lineTop:SetTexture([[Interface\LevelUp\LevelUpTex]])
-		imsg.lineTop:SetPoint("TOP")
-		imsg.lineTop:Size(418, 7)
-		imsg.lineTop:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313)
-
-		imsg.lineBottom = imsg:CreateTexture(nil, 'BACKGROUND')
-		imsg.lineBottom:SetDrawLayer('BACKGROUND', 2)
-		imsg.lineBottom:SetTexture([[Interface\LevelUp\LevelUpTex]])
-		imsg.lineBottom:SetPoint("BOTTOM")
-		imsg.lineBottom:Size(418, 7)
-		imsg.lineBottom:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313)
-
-		imsg.text = imsg:CreateFontString(nil, 'ARTWORK', 'GameFont_Gigantic')
-		imsg.text:Point("BOTTOM", 0, 12)
-		imsg.text:SetTextColor(1, 0.82, 0)
-		imsg.text:SetJustifyH("CENTER")
-	end
-
-	--Create Frame
-	if not ElvUIInstallFrame then
-		local f = CreateFrame("Button", "ElvUIInstallFrame", E.UIParent)
-		f:Size(550, 400)
-		f:SetTemplate("Transparent")
-		f:CreateShadow("Default")
-		f:SetPoint("CENTER")
-		f:SetFrameStrata('TOOLTIP')
-
-		f.Title = f:CreateFontString(nil, 'OVERLAY')
-		f.Title:FontTemplate(nil, 17, nil)
-		f.Title:Point("TOP", 0, -5)
-		f.Title:SetText(L["ElvUI Installation"])
-
-		f.Next = CreateFrame("Button", "InstallNextButton", f, "UIPanelButtonTemplate2")
-		f.Next:StripTextures()
-		f.Next:SetTemplate("Default", true)
-		f.Next:Size(110, 25)
-		f.Next:Point("BOTTOMRIGHT", -5, 5)
-		f.Next:SetText(CONTINUE)
-		f.Next:Disable()
-		f.Next:SetScript("OnClick", NextPage)
-		E.Skins:HandleButton(f.Next, true)
-
-		f.Prev = CreateFrame("Button", "InstallPrevButton", f, "UIPanelButtonTemplate2")
-		f.Prev:StripTextures()
-		f.Prev:SetTemplate("Default", true)
-		f.Prev:Size(110, 25)
-		f.Prev:Point("BOTTOMLEFT", 5, 5)
-		f.Prev:SetText(PREVIOUS)
-		f.Prev:Disable()
-		f.Prev:SetScript("OnClick", PreviousPage)
-		E.Skins:HandleButton(f.Prev, true)
-
-		f.Status = CreateFrame("StatusBar", "InstallStatus", f)
-		f.Status:SetFrameLevel(f.Status:GetFrameLevel() + 2)
-		f.Status:CreateBackdrop("Default")
-		f.Status:SetStatusBarTexture(E["media"].normTex)
-		f.Status:SetStatusBarColor(unpack(E["media"].rgbvaluecolor))
-		f.Status:SetMinMaxValues(0, MAX_PAGE)
-		f.Status:Point("TOPLEFT", f.Prev, "TOPRIGHT", 6, -2)
-		f.Status:Point("BOTTOMRIGHT", f.Next, "BOTTOMLEFT", -6, 2)
-		f.Status.text = f.Status:CreateFontString(nil, 'OVERLAY')
-		f.Status.text:FontTemplate()
-		f.Status.text:SetPoint("CENTER")
-		f.Status.text:SetText(CURRENT_PAGE.." / "..MAX_PAGE)
-		f.Status:SetScript("OnValueChanged", function(self)
-			self.text:SetText(self:GetValue().." / "..MAX_PAGE)
-		end)
-
-		f.Option1 = CreateFrame("Button", "InstallOption1Button", f, "UIPanelButtonTemplate2")
-		f.Option1:StripTextures()
-		f.Option1:Size(160, 30)
-		f.Option1:Point("BOTTOM", 0, 45)
-		f.Option1:SetText("")
-		f.Option1:Hide()
-		E.Skins:HandleButton(f.Option1, true)
-
-		f.Option2 = CreateFrame("Button", "InstallOption2Button", f, "UIPanelButtonTemplate2")
-		f.Option2:StripTextures()
-		f.Option2:Size(110, 30)
-		f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45)
-		f.Option2:SetText("")
-		f.Option2:Hide()
-		f.Option2:SetScript('OnShow', function() f.Option1:SetWidth(110); f.Option1:ClearAllPoints(); f.Option1:Point('BOTTOMRIGHT', f, 'BOTTOM', -4, 45) end)
-		f.Option2:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45) end)
-		E.Skins:HandleButton(f.Option2, true)
-
-		f.Option3 = CreateFrame("Button", "InstallOption3Button", f, "UIPanelButtonTemplate2")
-		f.Option3:StripTextures()
-		f.Option3:Size(100, 30)
-		f.Option3:Point('LEFT', f.Option2, 'RIGHT', 4, 0)
-		f.Option3:SetText("")
-		f.Option3:Hide()
-		f.Option3:SetScript('OnShow', function() f.Option1:SetWidth(100); f.Option1:ClearAllPoints(); f.Option1:Point('RIGHT', f.Option2, 'LEFT', -4, 0); f.Option2:SetWidth(100); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOM', f, 'BOTTOM', 0, 45)  end)
-		f.Option3:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45); f.Option2:SetWidth(110); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) end)
-		E.Skins:HandleButton(f.Option3, true)
-
-		f.Option4 = CreateFrame("Button", "InstallOption4Button", f, "UIPanelButtonTemplate2")
-		f.Option4:StripTextures()
-		f.Option4:Size(100, 30)
-		f.Option4:Point('LEFT', f.Option3, 'RIGHT', 4, 0)
-		f.Option4:SetText("")
-		f.Option4:Hide()
-		f.Option4:SetScript('OnShow', function()
-			f.Option1:Width(100)
-			f.Option2:Width(100)
-
-			f.Option1:ClearAllPoints();
-			f.Option1:Point('RIGHT', f.Option2, 'LEFT', -4, 0);
-			f.Option2:ClearAllPoints();
-			f.Option2:Point('BOTTOMRIGHT', f, 'BOTTOM', -4, 45)
-		end)
-		f.Option4:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45); f.Option2:SetWidth(110); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) end)
-		E.Skins:HandleButton(f.Option4, true)
-
-		f.SubTitle = f:CreateFontString(nil, 'OVERLAY')
-		f.SubTitle:FontTemplate(nil, 15, nil)
-		f.SubTitle:Point("TOP", 0, -40)
-
-		f.Desc1 = f:CreateFontString(nil, 'OVERLAY')
-		f.Desc1:FontTemplate()
-		f.Desc1:Point("TOPLEFT", 20, -75)
-		f.Desc1:Width(f:GetWidth() - 40)
-
-		f.Desc2 = f:CreateFontString(nil, 'OVERLAY')
-		f.Desc2:FontTemplate()
-		f.Desc2:Point("TOPLEFT", 20, -125)
-		f.Desc2:Width(f:GetWidth() - 40)
-
-		f.Desc3 = f:CreateFontString(nil, 'OVERLAY')
-		f.Desc3:FontTemplate()
-		f.Desc3:Point("TOPLEFT", 20, -175)
-		f.Desc3:Width(f:GetWidth() - 40)
-
-		local close = CreateFrame("Button", "InstallCloseButton", f, "UIPanelCloseButton")
-		close:SetPoint("TOPRIGHT", f, "TOPRIGHT")
-		close:SetScript("OnClick", function()
-			f:Hide()
-		end)
-		E.Skins:HandleCloseButton(close)
-
-		f.tutorialImage = f:CreateTexture('InstallTutorialImage', 'OVERLAY')
-		f.tutorialImage:Size(250)
-		f.tutorialImage:Point('BOTTOM', 0, 70)
-
-	end
-
-	ElvUIInstallFrame:Show()
-	NextPage()
+local E, L, V, P, G = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
+local UF = E:GetModule('UnitFrames');
+
+local CURRENT_PAGE = 0
+local MAX_PAGE
+
+local function MaxPages()
+	if IsAddOnLoaded("ElvUI_Hud") then
+		MAX_PAGE = 9
+	else
+		MAX_PAGE = 8
+	end
+end
+
+local function SetupChat()
+	InstallStepComplete.message = L["Chat Set"]
+	InstallStepComplete:Show()
+	FCF_ResetChatWindows()
+	FCF_SetLocked(ChatFrame1, 1)
+	FCF_DockFrame(ChatFrame2)
+	FCF_SetLocked(ChatFrame2, 1)
+
+	FCF_OpenNewWindow(LOOT)
+	FCF_UnDockFrame(ChatFrame3)
+	FCF_SetLocked(ChatFrame3, 1)
+	ChatFrame3:Show()
+
+	for i = 1, NUM_CHAT_WINDOWS do
+		local frame = _G[format("ChatFrame%s", i)]
+		local chatFrameId = frame:GetID()
+		local chatName = FCF_GetChatWindowInfo(chatFrameId)
+
+		-- move general bottom left
+		if i == 1 then
+			frame:ClearAllPoints()
+			frame:Point("BOTTOMLEFT", LeftChatToggleButton, "TOPLEFT", 1, 3)
+		elseif i == 3 then
+			frame:ClearAllPoints()
+			frame:Point("BOTTOMLEFT", RightChatDataPanel, "TOPLEFT", 1, 3)
+		end
+
+		FCF_SavePositionAndDimensions(frame)
+		FCF_StopDragging(frame)
+
+		-- set default Elvui font size
+		FCF_SetChatWindowFontSize(nil, frame, 12)
+
+		-- rename windows general because moved to chat #3
+		if i == 1 then
+			FCF_SetWindowName(frame, GENERAL)
+		elseif i == 2 then
+			FCF_SetWindowName(frame, GUILD_EVENT_LOG)
+		elseif i == 3 then
+			FCF_SetWindowName(frame, LOOT.." / "..TRADE)
+		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, "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_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)
+	ChatFrame_RemoveChannel(ChatFrame1, L['Trade'])
+	ChatFrame_AddChannel(ChatFrame3, L['Trade'])
+
+
+	if E.myname == "Elvz" then
+		SetCVar("scriptErrors", 1)
+	end
+
+	-- enable classcolor automatically on login and on each character without doing /configure each time.
+	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, "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")
+
+	--Adjust Chat Colors
+	--General
+	ChangeChatColor("CHANNEL1", 195/255, 230/255, 232/255)
+	--Trade
+	ChangeChatColor("CHANNEL2", 232/255, 158/255, 121/255)
+	--Local Defense
+	ChangeChatColor("CHANNEL3", 232/255, 228/255, 121/255)
+
+	if E.Chat then
+		E.Chat:PositionChat(true)
+		if E.db['RightChatPanelFaded'] then
+			RightChatToggleButton:Click()
+		end
+
+		if E.db['LeftChatPanelFaded'] then
+			LeftChatToggleButton:Click()
+		end
+	end
+end
+
+local function SetupCVars()
+	SetCVar("mapQuestDifficulty", 1)
+	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) --Blocks mmo-champion.com, dumb... ElvUI one is more effeciant anyways.
+	InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:SetValue('SHIFT')
+	InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:RefreshValue()
+
+	InstallStepComplete.message = L["CVars Set"]
+	InstallStepComplete:Show()
+end
+
+function E:GetColor(r, b, g, a)
+	return { r = r, b = b, g = g, a = a }
+end
+
+function E:SetupTheme(theme, noDisplayMsg)
+	local classColor = RAID_CLASS_COLORS[E.myclass]
+	E.db.theme = theme
+
+
+	--Set colors
+	if theme == "classic" then
+		E.db.general.bordercolor = E:GetColor(.31, .31, .31)
+		E.db.general.backdropcolor = E:GetColor(.1, .1, .1)
+		E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8)
+
+		E.db.unitframe.colors.healthclass = false
+		E.db.unitframe.colors.health = E:GetColor(.31, .31, .31)
+		E.db.unitframe.units.player.castbar.color = E:GetColor(.31, .31, .31)
+		E.db.unitframe.units.target.castbar.color = E:GetColor(.31, .31, .31)
+		E.db.unitframe.units.focus.castbar.color = E:GetColor(.31, .31, .31)
+		E.db.unitframe.units.boss.castbar.color = E:GetColor(.31, .31, .31)
+		E.db.unitframe.units.arena.castbar.color = E:GetColor(.31, .31, .31)
+
+	elseif theme == "class" then
+		E.db.general.bordercolor = E:GetColor(classColor.r, classColor.b, classColor.g)
+		E.db.general.backdropcolor = E:GetColor(.1, .1, .1)
+		E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8)
+
+		E.db.unitframe.colors.healthclass = true
+		E.db.unitframe.units.player.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g)
+		E.db.unitframe.units.target.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g)
+		E.db.unitframe.units.focus.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g)
+		E.db.unitframe.units.boss.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g)
+		E.db.unitframe.units.arena.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g)
+	else
+		E.db.general.bordercolor = E:GetColor(.1, .1, .1)
+		E.db.general.backdropcolor = E:GetColor(.1, .1, .1)
+		E.db.general.backdropfadecolor = E:GetColor(.054, .054, .054, .8)
+
+		E.db.unitframe.colors.healthclass = false
+		E.db.unitframe.colors.health = E:GetColor(.1, .1, .1)
+		E.db.unitframe.units.player.castbar.color = E:GetColor(.1, .1, .1)
+		E.db.unitframe.units.target.castbar.color = E:GetColor(.1, .1, .1)
+		E.db.unitframe.units.focus.castbar.color = E:GetColor(.1, .1, .1)
+		E.db.unitframe.units.boss.castbar.color = E:GetColor(.1, .1, .1)
+		E.db.unitframe.units.arena.castbar.color = E:GetColor(.1, .1, .1)
+	end
+
+	--Value Color
+	if theme == "class" then
+		E.db.general.valuecolor = E:GetColor(classColor.r, classColor.b, classColor.g)
+	else
+		E.db.general.valuecolor = E:GetColor(.09, .819, .513)
+	end
+
+	E:UpdateAll(true)
+
+	InstallStatus:SetStatusBarColor(unpack(E['media'].rgbvaluecolor))
+
+	if InstallStepComplete and not noDisplayMsg then
+		InstallStepComplete.message = L["Theme Set"]
+		InstallStepComplete:Show()
+	end
+end
+
+function E:SetupResolution(noDataReset)
+	if not noDataReset then
+		E:ResetMovers('')
+	end
+
+	if self == 'low' then
+		if not E.db.movers then E.db.movers = {}; end
+		if not noDataReset then
+			E.db.chat.panelWidth = 400
+			E.db.chat.panelHeight = 180
+
+			E:CopyTable(E.db.actionbar, P.actionbar)
+
+			E.db.actionbar.bar1.heightMult = 2;
+			E.db.actionbar.bar2.enabled = true;
+			E.db.actionbar.bar3.enabled = false;
+			E.db.actionbar.bar5.enabled = false;
+		end
+
+		if not noDataReset then
+			E.db.auras.wrapAfter = 10;
+		end
+		E.db.general.reputation.width = 400
+		E.db.general.experience.width = 400
+		E.db.movers.ElvAB_2 = "CENTERElvUIParentBOTTOM056.18"
+
+		if not noDataReset then
+			E:CopyTable(E.db.unitframe.units, P.unitframe.units)
+
+			E.db.unitframe.fontSize = 10
+
+			E.db.unitframe.units.player.width = 200;
+			E.db.unitframe.units.player.castbar.width = 200;
+			E.db.unitframe.units.player.classbar.fill = 'fill';
+			E.db.unitframe.units.player.health.text_format = "[healthcolor][health:current]"
+
+			E.db.unitframe.units.target.width = 200;
+			E.db.unitframe.units.target.castbar.width = 200;
+			E.db.unitframe.units.target.health.text_format = '[healthcolor][health:current]'
+
+			E.db.unitframe.units.pet.power.enable = false;
+			E.db.unitframe.units.pet.width = 200;
+			E.db.unitframe.units.pet.height = 26;
+
+			E.db.unitframe.units.targettarget.debuffs.enable = false;
+			E.db.unitframe.units.targettarget.power.enable = false;
+			E.db.unitframe.units.targettarget.width = 200;
+			E.db.unitframe.units.targettarget.height = 26;
+
+			E.db.unitframe.units.boss.width = 200;
+			E.db.unitframe.units.boss.castbar.width = 200;
+			E.db.unitframe.units.arena.width = 200;
+			E.db.unitframe.units.arena.castbar.width = 200;
+		end
+
+		E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-106135"
+		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM10680"
+		E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM106135"
+		E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-10680"
+		E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310332"
+
+		E.db.lowresolutionset = true;
+	elseif not noDataReset then
+		E.db.chat.panelWidth = P.chat.panelWidth
+		E.db.chat.panelHeight = P.chat.panelHeight
+
+		E:CopyTable(E.db.actionbar, P.actionbar)
+		E:CopyTable(E.db.unitframe.units, P.unitframe.units)
+
+		E.db.auras.wrapAfter = P.auras.wrapAfter;
+		E.db.general.reputation.width = P.general.reputation.width
+		E.db.general.experience.width = P.general.experience.width
+
+		E.db.lowresolutionset = nil;
+	end
+
+	if not noDataReset and E.db.theme then
+		E:SetupTheme(E.db.theme, true)
+	end
+
+	E:UpdateAll(true)
+
+	if InstallStepComplete and not noDataReset then
+		InstallStepComplete.message = L["Resolution Style Set"]
+		InstallStepComplete:Show()
+	end
+end
+
+function E:SetupLayout(layout, noDataReset)
+	--Unitframes
+	if not noDataReset then
+		E:CopyTable(E.db.unitframe.units, P.unitframe.units)
+	end
+	if layout == 'healer' then
+		if not IsAddOnLoaded('Clique') then
+			E:Print(L['Using the healer layout it is highly recommended you download the addon Clique to work side by side with ElvUI.'])
+		end
+
+		if not noDataReset then
+			E.db.unitframe.units.party.health.frequentUpdates = true;
+			E.db.unitframe.units.raid25.health.frequentUpdates = true;
+			E.db.unitframe.units.raid40.health.frequentUpdates = true;
+
+			E.db.unitframe.units.raid40.height = 36;
+			E.db.unitframe.units.raid40.health.text = true;
+			E.db.unitframe.units.raid40.name.position = 'TOP';
+			E.db.unitframe.units.raid40.roleIcon.enable = true;
+			E.db.unitframe.units.boss.width = 200;
+			E.db.unitframe.units.boss.castbar.width = 200;
+			E.db.unitframe.units.arena.width = 200;
+			E.db.unitframe.units.arena.castbar.width = 200;
+
+			E.db.unitframe.units.party.point = 'LEFT';
+			E.db.unitframe.units.party.xOffset = 5;
+			E.db.unitframe.units.party.healPrediction = true;
+			E.db.unitframe.units.party.columnAnchorPoint = 'LEFT';
+			E.db.unitframe.units.party.width = 80;
+			E.db.unitframe.units.party.height = 52;
+			E.db.unitframe.units.party.health.text_format = "[healthcolor][health:deficit]"
+			E.db.unitframe.units.party.health.position = 'BOTTOM';
+			E.db.unitframe.units.party.health.orientation = 'VERTICAL';
+			E.db.unitframe.units.party.name.position = 'TOP';
+			E.db.unitframe.units.party.name.length = "SHORT";
+			E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT';
+			E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT';
+			E.db.unitframe.units.party.debuffs.useFilter = 'Blacklist';
+			E.db.unitframe.units.party.debuffs.sizeOverride = 0;
+			E.db.unitframe.units.party.petsGroup.enable = true;
+			E.db.unitframe.units.party.petsGroup.width = 80;
+			E.db.unitframe.units.party.petsGroup.initialAnchor = 'BOTTOM';
+			E.db.unitframe.units.party.petsGroup.anchorPoint = 'TOP';
+			E.db.unitframe.units.party.petsGroup.xOffset = 0;
+			E.db.unitframe.units.party.petsGroup.yOffset = 1;
+			E.db.unitframe.units.party.targetsGroup.enable = false;
+			E.db.unitframe.units.party.targetsGroup.width = 80;
+			E.db.unitframe.units.party.targetsGroup.initialAnchor = 'BOTTOM';
+			E.db.unitframe.units.party.targetsGroup.anchorPoint = 'TOP';
+			E.db.unitframe.units.party.targetsGroup.xOffset = 0;
+			E.db.unitframe.units.party.targetsGroup.yOffset = 1;
+
+			E.db.unitframe.units.raid25.healPrediction = true;
+			E.db.unitframe.units.raid25.health.orientation = 'VERTICAL';
+
+			E.db.unitframe.units.raid40.healPrediction = true;
+			E.db.unitframe.units.raid40.health.orientation = 'VERTICAL';
+		end
+
+		if not E.db.movers then E.db.movers = {}; end
+		if E.db.lowresolutionset then
+			E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-305242"
+			E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM305242"
+			E.db.movers.ElvUF_Raid40Mover = "BOTTOMElvUIParentBOTTOM080"
+			E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM080"
+			E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM080"
+			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM305187"
+			E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM0104"
+			E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-305187"
+			E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310432"
+
+		else
+			E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT464242"
+			E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-464242"
+			E.db.movers.ElvUF_Raid40Mover = "BOTTOMElvUIParentBOTTOM050"
+			E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM050"
+			E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM050"
+			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-464151"
+			E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM074"
+			E.db.movers.ElvUF_PetMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT464151"
+			E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM280332"
+		end
+	elseif E.db.lowresolutionset then
+		if not E.db.movers then E.db.movers = {}; end
+		E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-106135"
+		E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM106135"
+		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM10680"
+		E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-10680"
+		E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310332"
+	else
+		if not noDataReset then
+			E:ResetMovers('')
+		end
+	end
+
+	if E.db.lowresolutionset and not noDataReset then
+		E.db.unitframe.units.player.width = 200;
+		E.db.unitframe.units.player.castbar.width = 200;
+		E.db.unitframe.units.player.classbar.fill = 'fill';
+
+		E.db.unitframe.units.target.width = 200;
+		E.db.unitframe.units.target.castbar.width = 200;
+
+		E.db.unitframe.units.pet.power.enable = false;
+		E.db.unitframe.units.pet.width = 200;
+		E.db.unitframe.units.pet.height = 26;
+
+		E.db.unitframe.units.targettarget.debuffs.enable = false;
+		E.db.unitframe.units.targettarget.power.enable = false;
+		E.db.unitframe.units.targettarget.width = 200;
+		E.db.unitframe.units.targettarget.height = 26;
+
+		E.db.unitframe.units.boss.width = 200;
+		E.db.unitframe.units.boss.castbar.width = 200;
+		E.db.unitframe.units.arena.width = 200;
+		E.db.unitframe.units.arena.castbar.width = 200;
+	end
+
+	if not E.db.lowresolutionset and (layout == 'dpsCaster' or (layout == 'dpsMelee' and E.myclass == 'HUNTER')) then
+		if not E.db.movers then E.db.movers = {}; end
+		E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMElvUIParentBOTTOM0180"
+	--[[elseif not E.db.lowresolutionset and layout == 'tank' then --Not sure if i want to keep this.
+		if not E.db.movers then E.db.movers = {}; end
+		E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMElvUIParentBOTTOM0180"]]
+	end
+
+	--Datatexts
+	if not noDataReset then
+		E:CopyTable(E.db.datatexts.panels, P.datatexts.panels)
+		if layout == 'tank' then
+			E.db.datatexts.panels.LeftChatDataPanel.left = 'Armor';
+			E.db.datatexts.panels.LeftChatDataPanel.right = 'Avoidance';
+		elseif layout == 'healer' or layout == 'dpsCaster' then
+			E.db.datatexts.panels.LeftChatDataPanel.left = 'Spell/Heal Power';
+			E.db.datatexts.panels.LeftChatDataPanel.right = 'Haste';
+		else
+			E.db.datatexts.panels.LeftChatDataPanel.left = 'Attack Power';
+			E.db.datatexts.panels.LeftChatDataPanel.right = 'Crit Chance';
+		end
+
+		if InstallStepComplete then
+			InstallStepComplete.message = L["Layout Set"]
+			InstallStepComplete:Show()
+		end
+	end
+
+	E.db.layoutSet = layout
+
+	if not noDataReset and E.db.theme then
+		E:SetupTheme(E.db.theme, true)
+	end
+
+	E:UpdateAll(true)
+	local DT = E:GetModule('DataTexts')
+	DT:LoadDataTexts()
+end
+
+function E:DarthSetup() --The function to switch from classic ElvUI settings to Darth's
+	InstallStepComplete.message = L["Darth's Defaults Set"]
+	InstallStepComplete:Show()
+	if not E.db.movers then E.db.movers = {}; end
+
+	layout = E.db.layoutSet --To know if some sort of layout was choosed before
+
+	--General options--
+	E.db.general.stickyFrames = false
+	E.db.general.autoRepair = "PLAYER"
+	E.db.general.vendorGrays = true
+	E.db.general.fontsize = 10
+	E.db.general.minimap.locationText = 'SHOW'
+	E.db.general.experience.textFormat = 'CURMAX'
+	E.db.general.experience.textSize = 10
+	E.db.general.reputation.textFormat = 'CURMAX'
+	E.db.general.reputation.textSize = 10
+	E.db.general.threat.enable = false
+	E.db.general.totems.spacing = 2
+	E.db.general.totems.growthDirection = "HORIZONTAL"
+	E.db.general.totems.size = 24
+
+	--Bags--
+	E.db.bags.bagCols = 18
+	E.db.bags.bankCols = 18
+	E.db.bags.sortOrientation = 'TOP-BOTTOM'
+	E.db.bags.yOffset = 225
+	E.db.bags.growthDirection = "HORIZONTAL"
+
+	--NamePlate--
+	E.db.nameplate.healthtext = 'CURRENT_PERCENT'
+	E.db.nameplate.lowHealthWarning = 'NONE'
+	E.db.nameplate.lowHealthWarningThreshold = .20
+
+	--Auras--
+	E.db.auras.font = "ElvUI Font"
+	E.db.auras.fontOutline = "OUTLINE"
+	E.db.auras.wrapAfter = 18
+
+	--Chat--
+	E.db.chat.editboxhistory = 10
+	E.db.chat.emotionIcons = false
+	E.db.chat.whisperSound = 'None'
+	E.db.chat.panelHeight = 227
+	if E.db.lowresolutionset then
+		E.db.chat.panelWidth = 400
+	else
+		E.db.chat.panelWidth = 444
+	end
+	E.db.sle.chat.fade = true
+
+	--Datatexts--
+	E.db.datatexts.font = "ElvUI Pixel"
+	E.db.datatexts.fontSize = 11
+	E.db.datatexts.time24 = true
+	E.db.sle.datatext.top.enabled = true
+	E.db.sle.datatext.bottom.enabled = true
+	if E.db.lowresolutionset then
+		E.db.sle.datatext.dp1.enabled = false
+		E.db.sle.datatext.dp2.enabled = false
+		E.db.sle.datatext.dp3.enabled = false
+		E.db.sle.datatext.dp4.enabled = false
+		E.db.sle.datatext.dp5.enabled = false
+		E.db.sle.datatext.dp6.enabled = false
+		E.db.sle.datatext.chatleft.width = 384
+		E.db.sle.datatext.chatright.width = 384
+		E.db.sle.datatext.bottom.width = E.screenwidth/3 + 52
+	else
+		E.db.sle.datatext.dp1.enabled = true
+		E.db.sle.datatext.dp2.enabled = true
+		E.db.sle.datatext.dp3.enabled = true
+		E.db.sle.datatext.dp4.enabled = true
+		E.db.sle.datatext.dp5.enabled = true
+		E.db.sle.datatext.dp6.enabled = true
+		E.db.sle.datatext.chatleft.width = 428
+		E.db.sle.datatext.chatright.width = 428
+		E.db.sle.datatext.bottom.width = E.screenwidth/10 - 4
+	end
+
+	if E.db.lowresolutionset then
+		E.db.datatexts.panels.LeftChatDataPanel.left = 'Bags';
+		E.db.datatexts.panels.LeftChatDataPanel.middle = 'Gold';
+		E.db.datatexts.panels.LeftChatDataPanel.right = 'Durability';
+	else
+		E.db.datatexts.panels.LeftChatDataPanel.right = 'Friends';
+		E.db.datatexts.panels.LeftChatDataPanel.left = 'Call to Arms';
+		E.db.datatexts.panels.LeftChatDataPanel.middle = 'Durability';
+	end
+	E.db.datatexts.panels.LeftMiniPanel = 'Time';
+	E.db.datatexts.panels.RightMiniPanel = 'Guild';
+
+	if layout == 'tank' then
+		E.db.datatexts.panels.DP_6.left = 'Avoidance';
+		E.db.datatexts.panels.DP_6.middle = 'Vengeance';
+		E.db.datatexts.panels.DP_6.right = 'Expertise';
+		if E.db.lowresolutionset then
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Avoidance';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Vengeance';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Expertise';
+		else
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
+		end
+		E.db.datatexts.panels.DP_5.right = 'Armor';
+	elseif layout == 'healer' then
+		E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power';
+		E.db.datatexts.panels.DP_6.middle = 'Haste';
+		E.db.datatexts.panels.DP_6.right = 'Crit Chance';
+		if E.db.lowresolutionset then
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Crit Chance';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Mana Regen';
+		else
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Mana Regen';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
+		end
+		E.db.datatexts.panels.DP_5.right = 'Armor';
+	elseif layout == 'dpsCaster' then
+		E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power';
+		E.db.datatexts.panels.DP_6.middle = 'Haste';
+		E.db.datatexts.panels.DP_6.right = 'Crit Chance';
+		if E.db.lowresolutionset then
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance';
+		else
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
+		end
+		E.db.datatexts.panels.DP_5.right = 'Armor';
+	else
+		E.db.datatexts.panels.DP_6.left = 'Attack Power';
+		E.db.datatexts.panels.DP_6.middle = 'Haste';
+		E.db.datatexts.panels.DP_6.right = 'Crit Chance';
+		if E.db.lowresolutionset then
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Attack Power';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance';
+		else
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
+		end
+		E.db.datatexts.panels.DP_5.right = 'Expertise';
+	end
+
+	--Unitframes--
+	E.db.unitframe.smoothbars = false
+	E.db.unitframe.font = "ElvUI Font"
+	E.db.unitframe.fontsize = 9
+	E.db.unitframe.fontOutline = 'OUTLINE'
+	UF:Update_AllFrames()
+	if layout == "healer" then
+		E.db.unitframe.debuffHighlighting = true
+	else
+		E.db.unitframe.debuffHighlighting = false
+	end
+	E.db.unitframe.smartRaidFilter = false
+	E.db.unitframe.colors.healthclass = true
+	E.db.unitframe.colors.colorhealthbyvalue = false
+		--Setting player frame
+		E.db.unitframe.units.player.width = 200
+		if layout == "healer" then
+			E.db.unitframe.units.player.lowmana = 30;
+		else
+			E.db.unitframe.units.player.lowmana = 0;
+		end
+		E.db.unitframe.units.player.health.position = 'BOTTOMRIGHT';
+		E.db.unitframe.units.player.health.text_format = "[healthcolor][health:current-percent:sl]"
+		E.db.unitframe.units.player.power.text_format = "[powercolor][power:current:sl]";
+		E.db.unitframe.units.player.name.text_format = "[name:medium]";
+		E.db.unitframe.units.player.name.position = 'TOPLEFT';
+		E.db.unitframe.units.player.pvp.text_format = "||cFFB04F4F[pvptimer]||r"
+		E.db.unitframe.units.player.pvp.position = "BOTTOMLEFT"
+		E.db.unitframe.units.player.portrait.enable = true
+		E.db.unitframe.units.player.portrait.camDistanceScale = 1.5;
+		E.db.unitframe.units.player.debuffs.enable = false;
+		E.db.unitframe.units.player.castbar.format = 'CURRENTMAX';
+		E.db.unitframe.units.player.castbar.width = 237
+		E.db.unitframe.units.player.castbar.color = {
+								["b"] = 0.3098039215686275,
+								["g"] = 0.792156862745098,
+								["r"] = 0.8274509803921568,
+							}
+		E.db.unitframe.units.player.classbar.fill = 'fill'
+		E.db.unitframe.units.player.classbar.height = 8
+		E.db.unitframe.units.player.aurabar.noConsolidated = "NONE"
+		E.db.unitframe.units.player.aurabar.noDuration = "NONE"
+		--Setting target frame
+		E.db.unitframe.units.target.width = 200
+		E.db.unitframe.units.target.smartAuraDisplay = "DISABLED"
+		E.db.unitframe.units.target.hideonnpc = false;
+		E.db.unitframe.units.target.health.position = 'BOTTOMRIGHT';
+		E.db.unitframe.units.target.power.position = 'RIGHT';
+		E.db.unitframe.units.target.power.hideonnpc = false;
+		E.db.unitframe.units.target.power.text_format = "[powercolor][power:current:sl]"
+		E.db.unitframe.units.target.name.text_format = "[name:medium] [smartlevel] [shortclassification]";
+		E.db.unitframe.units.target.name.position = 'TOPLEFT';
+		E.db.unitframe.units.target.portrait.enable = true
+		E.db.unitframe.units.target.portrait.camDistanceScale = 1.5;
+		E.db.unitframe.units.target.buffs.perrow = 9;
+		E.db.unitframe.units.target.buffs.numrows = 2;
+		E.db.unitframe.units.target.buffs.playerOnly = "NONE";
+		E.db.unitframe.units.target.buffs.noDuration = "NONE";
+		E.db.unitframe.units.target.buffs.anchorPoint = 'TOPLEFT';
+		E.db.unitframe.units.target.buffs.noConsolidated = "NONE"
+		E.db.unitframe.units.target.debuffs.perrow = 9;
+		E.db.unitframe.units.target.debuffs.useBlacklis = "NONE";
+		E.db.unitframe.units.target.debuffs.playerOnly = "NONE";
+		E.db.unitframe.units.target.debuffs.enable = true
+		E.db.unitframe.units.target.castbar.format = 'CURRENTMAX';
+		E.db.unitframe.units.target.castbar.color = {
+								["r"] = 0.8274509803921568,
+								["g"] = 0.792156862745098,
+								["b"] = 0.3098039215686275,
+							}
+		if layout == "healer" then
+			E.db.unitframe.units.target.castbar.width = 237
+		else
+			E.db.unitframe.units.target.castbar.width = 200
+		end
+		E.db.unitframe.units.player.aurabar.noConsolidated = "NONE"
+		E.db.unitframe.units.player.aurabar.noDuration = "NONE"
+		E.db.unitframe.units.player.aurabar.useBlacklist = "NONE"
+		E.db.unitframe.units.player.aurabar.playerOnly = "ENEMY"
+		E.db.unitframe.units.player.aurabar.attachTo = "DEBUFFS"
+		--Target of Target
+		E.db.unitframe.units.targettarget.height = 26
+		if layout == "healer" then
+			E.db.unitframe.units.targettarget.width = 115
+		else
+			E.db.unitframe.units.targettarget.width = 120
+		end
+		E.db.unitframe.units.targettarget.name.text_format = "[name:medium]"
+		E.db.unitframe.units.targettarget.debuffs.enable = false
+		--Focus
+		E.db.unitframe.units.focus.height = 42
+		E.db.unitframe.units.focus.width = 179
+		E.db.unitframe.units.focus.health.position = 'BOTTOMRIGHT'
+		E.db.unitframe.units.focus.health.text_format = "[healthcolor][health:current-percent:sl]"
+		E.db.unitframe.units.focus.power.text_format = "[powercolor][power:current:sl]"
+		E.db.unitframe.units.focus.power.position = "RIGHT"
+		E.db.unitframe.units.focus.name.text_format = "[name:medium]"
+		E.db.unitframe.units.focus.name.position = 'TOPLEFT'
+		E.db.unitframe.units.focus.debuffs.perrow = 8
+		E.db.unitframe.units.focus.debuffs.anchorPoint = "TOPLEFT"
+		E.db.unitframe.units.focus.castbar.format = 'CURRENTMAX'
+		E.db.unitframe.units.focus.castbar.width = 179
+		E.db.unitframe.units.focus.castbar.color = {
+								["r"] = 0.8274509803921568,
+								["g"] = 0.792156862745098,
+								["b"] = 0.3098039215686275,
+							}
+		--Focus Target
+		E.db.unitframe.units.focustarget.name.text_format = "[name:medium]"
+		E.db.unitframe.units.focustarget.enable = true
+		E.db.unitframe.units.focustarget.height = 34
+		E.db.unitframe.units.focustarget.width = 179
+		--Pet
+		E.db.unitframe.units.pet.name.text_format = "[name:medium]"
+		if layout == "healer" then
+			E.db.unitframe.units.pet.width = 115
+		else
+			E.db.unitframe.units.pet.width = 128
+		end
+		--Pet Target
+		E.db.unitframe.units.pettarget.name.text_format = "[name:medium]"
+		E.db.unitframe.units.pettarget.enable = true
+		if layout == "healer" then
+			E.db.unitframe.units.pettarget.width = 115
+		else
+			E.db.unitframe.units.pettarget.width = 119
+		end
+		--Party
+		if layout == "healer" then
+			E.db.unitframe.units.party.point = "LEFT"
+			E.db.unitframe.units.party.xOffset = 5
+			E.db.unitframe.units.party.debuffs.perrow = 3
+			E.db.unitframe.units.party.debuffs.anchorPoint = "BOTTOMLEFT"
+			E.db.unitframe.units.party.debuffs.useFilter = "Blacklist"
+			E.db.unitframe.units.party.debuffs.initialAnchor = "TOPLEFT"
+			E.db.unitframe.units.party.roleIcon.position = "RIGHT"
+			E.db.unitframe.units.party.width = 80
+			E.db.unitframe.units.party.height = 52
+			E.db.unitframe.units.party.healPrediction = true
+			E.db.unitframe.units.party.health.text_format = "[healthcolor][health:deficit]"
+			E.db.unitframe.units.party.health.frequentUpdates = true
+			E.db.unitframe.units.party.health.orientation = "VERTICAL"
+		else
+			E.db.unitframe.units.party.debuffs.perrow = 4
+			E.db.unitframe.units.party.roleIcon.position = "TOPRIGHT"
+		end
+		E.db.unitframe.units.party.debuffs.sizeOverride = 26
+		E.db.unitframe.units.party.buffIndicator.colorIcons = false
+		E.db.unitframe.units.party.power.height = 8
+		E.db.unitframe.units.party.power.text_format = ""
+		E.db.unitframe.units.party.health.position = "BOTTOMLEFT"
+		E.db.unitframe.units.party.name.position = "TOPLEFT"
+		E.db.unitframe.units.party.name.text_format = "[name:medium] [difficultycolor][smartlevel]"
+		--Raid 10
+		if layout == "healer" then
+			E.db.unitframe.units.raid10.health.frequentUpdates = true
+			E.db.unitframe.units.raid10.health.text_format = "[healthcolor][health:dificit]"
+			E.db.unitframe.units.raid10.health.orientation = "VERTICAL"
+		else
+			E.db.unitframe.units.raid10.health.text_format = "[healthcolor][health:current]"
+			E.db.unitframe.units.raid10.columnAnchorPoint = "LEFT"
+			E.db.unitframe.units.raid10.point = "TOP"
+		end
+		E.db.unitframe.units.raid10.name.text_format = "[name:medium]"
+		E.db.unitframe.units.raid10.buffIndicator.colorIcons = false
+		E.db.unitframe.units.raid10.rdebuffs.size = 22
+		E.db.unitframe.units.raid10.power.height = 8
+		E.db.unitframe.units.raid10.power.text_format = ""
+		E.db.unitframe.units.raid10.health.position = "BOTTOMLEFT"
+		E.db.unitframe.units.raid10.health.text_format = "[healthcolor][health:current]"
+		--Raid 25
+		if layout == "healer" then
+			E.db.unitframe.units.raid25.health.text_format = "[healthcolor][health:deficit]"
+			E.db.unitframe.units.raid25.health.frequentUpdates = true
+			E.db.unitframe.units.raid25.health.orientation = "VERTICAL"
+		else
+			E.db.unitframe.units.raid25.point = "TOP"
+			E.db.unitframe.units.raid25.columnAnchorPoint = "LEFT"
+			E.db.unitframe.units.raid25.health.text_format = ""
+		end
+		E.db.unitframe.units.raid25.buffIndicator.colorIcons = false
+		E.db.unitframe.units.raid25.name.text_format = "[name:medium]"
+		E.db.unitframe.units.raid25.rdebuffs.size = 22
+		E.db.unitframe.units.raid25.power.height = 8
+		E.db.unitframe.units.raid25.power.text_format = ""
+
+		--Raid 40
+		if layout == "healer" then
+			E.db.unitframe.units.raid40.health.frequentUpdates = true
+			E.db.unitframe.units.raid40.health.text_format = "[healthcolor][health:current]"
+			E.db.unitframe.units.raid40.health.orientation = "VERTICAL"
+		else
+			E.db.unitframe.units.raid40.health.text_format = ""
+		end
+		E.db.unitframe.units.raid40.name.text_format = "[name:short]"
+		E.db.unitframe.units.raid40.buffIndicator.colorIcons = false
+
+		--Tank
+		if layout == "healer" then
+			E.db.unitframe.units.tank.enable = true
+			E.db.unitframe.units.tank.targetsGroup.enable = false
+		else
+			E.db.unitframe.units.tank.enable = false
+		end
+		--Assist
+		E.db.unitframe.units.assist.enable = false
+
+		--Arena
+		E.db.unitframe.units.arena.width = 200
+		E.db.unitframe.units.arena.height = 40
+		E.db.unitframe.units.arena.growthDirection = 'DOWN'
+		E.db.unitframe.units.arena.health.position = 'BOTTOMRIGHT'
+		E.db.unitframe.units.arena.health.text_format = "[healthcolor][health:current-percent:sl]"
+		E.db.unitframe.units.arena.power.text_format = "[powercolor][power:current:sl]"
+		E.db.unitframe.units.arena.name.text_format = "[name:long]"
+		E.db.unitframe.units.arena.name.position = 'TOPLEFT'
+		E.db.unitframe.units.arena.buffs.enable = false
+		E.db.unitframe.units.arena.debuffs.enable = false
+		E.db.unitframe.units.arena.castbar.format = 'CURRENTMAX'
+		E.db.unitframe.units.arena.castbar.height = 15
+		E.db.unitframe.units.arena.castbar.width = 200
+		E.db.unitframe.units.arena.castbar.color = {
+								["r"] = 0.8274509803921568,
+								["g"] = 0.792156862745098,
+								["b"] = 0.3098039215686275,
+							}
+		--Boss
+		E.db.unitframe.units.boss.width = 200
+		E.db.unitframe.units.boss.height = 40
+		E.db.unitframe.units.boss.growthDirection = 'DOWN'
+		E.db.unitframe.units.boss.health.position = 'BOTTOMLEFT'
+		E.db.unitframe.units.boss.health.text_format = "[healthcolor][health:current-percent]"
+		E.db.unitframe.units.boss.power.height = 10
+		E.db.unitframe.units.boss.power.text_format = "[powercolor][power:current:sl]"
+		E.db.unitframe.units.boss.name.text_format = "[name:long]"
+		E.db.unitframe.units.boss.name.position = 'TOPLEFT'
+		E.db.unitframe.units.boss.buffs.enable = false
+		E.db.unitframe.units.boss.debuffs.enable = false
+		E.db.unitframe.units.boss.castbar.format = 'CURRENTMAX'
+		E.db.unitframe.units.boss.castbar.height = 15
+		E.db.unitframe.units.boss.castbar.width = 200
+		E.db.unitframe.units.boss.castbar.color = {
+								["r"] = 0.8274509803921568,
+								["g"] = 0.792156862745098,
+								["b"] = 0.3098039215686275,
+							}
+		--Power text
+		E.db.sle.powtext = true
+
+	--Actionbars
+	E.db.actionbar.hotkeytext = false
+	E.db.actionbar.keyDown = false
+	E.db.actionbar.bar1.point = "TOPLEFT"
+	E.db.actionbar.bar1.buttonsPerRow = 3
+	E.db.actionbar.bar1.buttonsize = 26
+	E.db.actionbar.bar2.enabled = true
+	E.db.actionbar.bar2.point = "TOPLEFT"
+	E.db.actionbar.bar2.backdrop = true
+	E.db.actionbar.bar2.buttonsPerRow = 3
+	E.db.actionbar.bar2.buttonsize = 26
+	E.db.actionbar.bar2.visibility = "[petbattle] hide; show"
+	E.db.actionbar.bar3.point = "TOPLEFT"
+	E.db.actionbar.bar3.buttons = 12
+	E.db.actionbar.bar3.buttonsPerRow = 3
+	E.db.actionbar.bar3.visibility = "[petbattle] hide; show"
+	E.db.actionbar.bar3.buttonsize = 26
+	E.db.actionbar.bar4.enabled = false
+	E.db.actionbar.bar5.enabled = false
+	E.db.actionbar.microbar.enabled = true
+	E.db.actionbar.microbar.buttonsPerRow = 2
+	E.db.actionbar.microbar.alpha = 0.2
+	E.db.actionbar.stanceBar.buttonspacing = 2
+	E.db.actionbar.stanceBar.backdrop = true
+	E.db.actionbar.stanceBar.buttonsPerRow = 1
+	E.db.actionbar.stanceBar.buttonsize = 22
+	E.db.actionbar.barPet.point = "TOPLEFT"
+	E.db.actionbar.barPet.buttonspacing = 1
+	E.db.actionbar.barPet.backdrop = false
+	E.db.actionbar.barPet.buttonsPerRow = 5
+	E.db.actionbar.barPet.buttonsize = 20
+
+	--Raid marks--
+	E.db.sle.marks.growth = "LEFT"
+
+	--Background Frames--
+	E.db.sle.backgrounds.right.enabled = true
+	E.db.sle.backgrounds.right.xoffset = 70
+	E.db.sle.backgrounds.left.enabled = true
+	E.db.sle.backgrounds.left.xoffset = -70
+
+	--Raid utility--
+	E.db.sle.raidutil.ypos = 1050
+
+	--Exp/Rep Bars--
+	E.db.sle.exprep.explong = true
+	E.db.sle.exprep.replong = true
+
+	--Combat icon--
+	E.db.sle.combatico.pos = 'TOPRIGHT'
+
+	--UI buttons--
+	E.db.sle.uibuttons.enable = true
+	E.db.sle.uibuttons.size = 14
+	E.db.sle.uibuttons.position = "uib_hor"
+
+	--Moving stuff--
+	if layout == "healer" then
+		E.db.movers.PetAB = "BOTTOMLEFTUIParentBOTTOMLEFT633141"
+		E.db.movers.ElvUF_Raid10Mover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-754215"
+		E.db.movers.ElvUF_Raid25Mover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-754215"
+		E.db.movers.ExperienceBarMover = "TOPLEFTUIParentTOPLEFT722-21"
+		E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-549249"
+		E.db.movers.ElvUF_Raid40Mover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-754215"
+		E.db.movers.ElvUF_PetMover = "BOTTOMLEFTUIParentBOTTOMLEFT634212"
+		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-634222"
+		E.db.movers.ElvUF_PetTargetMover = "BOTTOMLEFTUIParentBOTTOMLEFT634185"
+		E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMLEFTUIParentBOTTOMLEFT841169"
+		E.db.movers.ElvUF_TankMover = "BOTTOMLEFTUIParentBOTTOMLEFT428249"
+		E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTUIParentBOTTOMLEFT549249"
+		E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT750251"
+		E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMLEFTUIParentBOTTOMLEFT841192"
+		E.db.movers.TotemBarMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT547302"
+	else
+		E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-841212"
+		E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT4249"
+		E.db.movers.ElvUF_PetTargetMover = "BOTTOMLEFTUIParentBOTTOMLEFT835169"
+		E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT4249"
+		E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-634194"
+		E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT4249"
+		E.db.movers.PetAB = "BOTTOMLEFTUIParentBOTTOMLEFT633114"
+		E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-634171"
+		E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTUIParentBOTTOMLEFT634194"
+		E.db.movers.ElvUF_PetMover = "BOTTOMLEFTUIParentBOTTOMLEFT634157"
+		E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT4249"
+		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-835169"
+		E.db.movers.TotemBarMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT632247"
+	end
+	E.db.movers.ElvAB_1 = "BOTTOMLEFTUIParentBOTTOMLEFT91321"
+	E.db.movers.ElvAB_2 = "BOTTOMRIGHTUIParentBOTTOMRIGHT-81821"
+	E.db.movers.ElvAB_4 = "TOPRIGHTUIParentTOPRIGHT-311-319"
+	E.db.movers.ElvAB_3 = "BOTTOMLEFTUIParentBOTTOMLEFT81821"
+	E.db.movers.ElvAB_5 = "BOTTOMLEFTUIParentBOTTOMLEFT549479"
+	E.db.movers.MinimapMover = "TOPRIGHTUIParentTOPRIGHT0-21"
+	E.db.movers.UIBFrameMover = "BOTTOMLEFTUIParentBOTTOMLEFT63421"
+	E.db.movers.WatchFrameMover = "TOPRIGHTUIParentTOPRIGHT-237-231"
+	E.db.movers.BossHeaderMover = "TOPRIGHTUIParentTOPRIGHT0-233"
+	E.db.movers.ArenaHeaderMover = "TOPRIGHTUIParentTOPRIGHT0-233"
+	E.db.movers.PetBattleABMover = "BOTTOMLEFTUIParentBOTTOMLEFT76921"
+	E.db.movers.ShiftAB = "BOTTOMLEFTUIParentBOTTOMLEFT79121"
+	E.db.movers.ExperienceBarMover = "TOPLEFTUIParentTOPLEFT722-21"
+	E.db.movers.MarkMover = "BOTTOMLEFTUIParentBOTTOMLEFT882146"
+	E.db.movers.MicrobarMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT0248"
+	E.db.movers.LootFrameMover = "TOPLEFTUIParentTOPLEFT60-360"
+	E.db.movers.AurasMover = "TOPRIGHTUIParentTOPRIGHT-214-21"
+	E.db.movers.BagsMover = "TOPLEFTUIParentTOPLEFT0-21"
+	E.db.movers.GMMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT0456"
+	E.db.movers.BossButton = "BOTTOMLEFTUIParentBOTTOMLEFT66846"
+	E.db.movers.BNETMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT0481"
+	E.db.movers.ElvUF_FocusMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-636103"
+	E.db.movers.ElvUF_FocusTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-63634"
+
+	E:UpdateAll(true)
+end
+
+function E:RepoocSetup() --The function to switch from classic ElvUI settings to Repooc's
+	InstallStepComplete.message = L["Repooc's Defaults Set"]
+	InstallStepComplete:Show()
+	if not E.db.movers then E.db.movers = {}; end
+	layout = E.db.layoutSet  --Pull which layout was selected if any.
+
+
+	--General Options
+	E.db.general.autoRepair = "PLAYER"
+	E.db.general.elvnotice = true
+	E.db.general.experience.textSize = 11
+	E.db.general.font = "Accidental Presidency"
+	E.db.general.fontsize = 12
+	E.db.general.hideTutorial = 1
+	E.db.general.interruptAnnounce = "RAID"
+	E.db.general.panelBackdropNameLeft = "Interface\\AddOns\\ElvUI_SLE\\textures\\chat_1.tga"
+	E.db.general.panelBackdropNameRight = "Interface\\AddOns\\ElvUI_SLE\\textures\\chat_1.tga"
+	E.db.general.panelHeight = 243
+	E.db.general.panelWidth = 400
+	E.db.general.reputation.textSize = 11
+	E.db.general.stickyFrames = true
+	E.db.general.threat.enable = true
+	E.db.general.vendorGrays = true
+
+	--Bags
+	E.db.bags.bagCols = 13
+	E.db.bags.yOffset = 245
+
+	--Nameplates
+	E.db.nameplate.showhealth = true
+
+	--Auras--
+	E.db.auras.font = "ElvUI Font"
+	E.db.auras.fontOutline = "OUTLINE"
+	E.db.auras.wrapAfter = 18
+
+	--Chat
+	E.db.sle.chat.fade = true
+	E.db.chat.hyperlinkHover = false
+	E.db.chat.font = "Friz Quadrata TT"
+	E.db.chat.fontoutline = "OUTLINE"
+	E.db.scrollDownInterval = 30
+
+	--Exp/Rep Bar
+	E.db.sle.exprep.explong = true
+	E.db.sle.exprep.replong = true
+	E.db.general.expRepPos = "MINIMAP_BOTTOM"
+
+	--LFR Lockout
+	E.db.datatexts.lfrshow = true
+
+	--Raid utility
+	E.db.sle.raidutil.ypos = E.screenheight - 30
+
+	--PvP & Combat Icon
+	E.db.sle.combatico.pos = 'TOPRIGHT'
+
+	--UIButtons
+	E.db.sle.uibuttons.enable = true
+	E.db.sle.uibuttons.size = 14
+	E.db.sle.uibuttons.position = "uib_hor"
+
+	--Actionbars
+	E.db.actionbar.fontsize = 12
+	E.db.actionbar.hotkeytext = true
+	E.db.actionbar.macrotext = true
+	--Bar 1
+	E.db.actionbar.bar1.enabled = true
+	E.db.actionbar.bar1.buttonsPerRow = 6
+	E.db.actionbar.bar1.buttonspacing = 3
+	E.db.actionbar.bar1.point = 'TOPLEFT'
+	E.db.actionbar.bar1['paging'][E.myclass] = "[mod:alt] 5;"
+	--Bar 2
+	E.db.actionbar.bar2.enabled = true
+	E.db.actionbar.bar2.point = 'TOPLEFT'
+	E.db.actionbar.bar2.backdrop = true
+	E.db.actionbar.bar2.buttonsPerRow = 6
+	E.db.actionbar.bar2.buttonspacing = 3
+	E.db.actionbar.bar2.enable = true
+	E.db.actionbar.bar2.mouseover = true
+	E.db.actionbar.bar2.buttons = 12
+	--Bar 3
+	E.db.actionbar.bar3.enabled = true
+	E.db.actionbar.bar3.buttons = 12
+	E.db.actionbar.bar3.buttonspacing = 3
+	E.db.actionbar.bar3.point = 'TOPLEFT'
+	--Bar 5
+	E.db.actionbar.bar5.enabled = true
+	E.db.actionbar.bar5.point = 'TOPLEFT'
+	E.db.actionbar.bar5.buttons = 12
+	E.db.actionbar.bar5.buttonspacing = 3
+	--Stance Bar
+	E.db.actionbar.stanceBar.buttonsize = 31
+	E.db.actionbar.stanceBar.buttonsPerRow = 1
+	E.db.actionbar.stanceBar.buttonspacing = 5
+	E.db.actionbar.stanceBar.backdrop = true
+	--Pet Bar
+	E.db.actionbar.barPet.buttonsize = 21
+
+	--Marks
+	E.db.sle.marks.size = 15
+
+	--[[
+	--Datatexts
+	E.db.sle.datatext.top.enabled = true
+
+	--Datatext Panels
+	E.db.sle.datatext.dp1.enabled = true
+	E.db.sle.datatext.dp2.enabled = true
+	E.db.sle.datatext.dp3.enabled = true
+	E.db.sle.datatext.dp4.enabled = true
+	E.db.sle.datatext.dp5.enabled = true
+	E.db.sle.datatext.dp5.width = 424
+	E.db.sle.datatext.dp6.enabled = true
+	E.db.sle.datatext.dp6.width = 424
+	--Datatext Panels Presets
+	E.db.datatexts.panels['DP_1']['right'] = ""
+	E.db.datatexts.panels['DP_1']['left'] = ""
+	E.db.datatexts.panels['DP_1']['middle'] = ""
+	E.db.datatexts.panels['DP_2']['right'] = "Altoholic"
+	E.db.datatexts.panels['DP_2']['left'] = "Notes"
+	E.db.datatexts.panels['DP_4']['right'] = "Time"
+	E.db.datatexts.panels['DP_5']['right'] = "Haste"
+	E.db.datatexts.panels['DP_5']['left'] = "Durability"
+	E.db.datatexts.panels['DP_5']['middle'] = "Crit Chance"
+	E.db.datatexts.panels['DP_6']['right'] = "Skada"
+	E.db.datatexts.panels['DP_6']['left'] = "Spell/Heal Power"
+	E.db.datatexts.panels['DP_6']['middle'] = "Hit Rating"
+	E.db.datatexts.panels['LeftChatDataPanel']['right'] = ""
+	E.db.datatexts.panels['LeftChatDataPanel']['left'] = ""
+	E.db.datatexts.panels['LeftChatDataPanel']['middle'] = ""
+	E.db.datatexts.panels['RightChatDataPanel']['right'] = "Bags"
+	E.db.datatexts.panels['Top_Center'] = "Version"
+	E.db.datatexts.panels['Bottom_Panel'] = "System"
+	E.db.datatexts.panels['LeftMiniPanel'] = ""
+	E.db.datatexts.panels['RightMiniPanel'] = ""
+
+
+
+		--Datatext Panels
+
+		E.db.sle.datatext.bottom.enabled = true
+		E.db.sle.datatext.chatleft.width = 424
+		E.db.sle.datatext.chatright.width = 424
+		E.db.datatexts.panels['DP_2']['middle'] = ""
+		E.db.datatexts.panels['DP_3']['right'] = "WIM"
+		E.db.datatexts.panels['DP_3']['left'] = "SocialState"
+		E.db.datatexts.panels['DP_3']['middle'] = ""
+		E.db.datatexts.panels['DP_4']['left'] = ""
+		E.db.datatexts.panels['DP_4']['middle'] = ""
+		E.db.datatexts.panels['RightChatDataPanel']['left'] = ""
+		E.db.datatexts.panels['RightChatDataPanel']['middle'] = "Gold"
+
+
+
+	if layout == 'tank' then
+		E.db.datatexts.panels.DP_6.left = 'Avoidance';
+		E.db.datatexts.panels.DP_6.middle = 'Vengeance';
+		E.db.datatexts.panels.DP_6.right = 'Expertise';
+		if E.db.lowresolutionset then
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Avoidance';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Vengeance';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Expertise';
+		else
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
+		end
+		E.db.datatexts.panels.DP_5.right = 'Armor';
+	elseif layout == 'healer' then
+		E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power';
+		E.db.datatexts.panels.DP_6.middle = 'Haste';
+		E.db.datatexts.panels.DP_6.right = 'Crit Chance';
+		if E.db.lowresolutionset then
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Crit Chance';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Mana Regen';
+		else
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Mana Regen';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
+		end
+		E.db.datatexts.panels.DP_5.right = 'Armor';
+	elseif layout == 'dpsCaster' then
+		E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power';
+		E.db.datatexts.panels.DP_6.middle = 'Haste';
+		E.db.datatexts.panels.DP_6.right = 'Crit Chance';
+		if E.db.lowresolutionset then
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance';
+		else
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
+		end
+		E.db.datatexts.panels.DP_5.right = 'Armor';
+	else
+		E.db.datatexts.panels.DP_6.left = 'Attack Power';
+		E.db.datatexts.panels.DP_6.middle = 'Haste';
+		E.db.datatexts.panels.DP_6.right = 'Crit Chance';
+		if E.db.lowresolutionset then
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Attack Power';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance';
+		else
+			E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
+			E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
+			E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
+		end
+		E.db.datatexts.panels.DP_5.right = 'Expertise';
+	end
+
+
+
+]]
+
+	--Unitframes
+	E.db.unitframe.debuffHighlighting = true
+	E.db.unitframe.smartRaidFilter = true
+	E.db.unitframe.smoothbars = true
+	E.db.unitframe.statusbar = "TukTex"
+	E.db.unitframe.font = "Accidental Presidency"
+	E.db.unitframe.fontSize = 13
+	E.db.unitframe.fontOutline = 'NONE'
+	E.db.unitframe.colors.healthclass = false
+	E.db.unitframe.colors.colorhealthbyvalue = false
+	E.db.unitframe.colors.classNames = true
+
+	--Unitframes (Arena)
+	E.db.unitframe.units.arena.debuffs.sizeOverride = 45
+	E.db.unitframe.units.arena.width = 200
+	E.db.unitframe.units.arena.buffs.sizeOverride = 45
+	E.db.unitframe.units.arena.buffs.perrow = 4
+	E.db.unitframe.units.arena.castbar.width = 200
+
+	--Unitframes (Assist)
+	E.db.unitframe.units.assist.enable = false
+
+	--Unitframes (Boss)
+	E.db.unitframe.units.boss.debuffs.sizeOverride = 45
+	E.db.unitframe.units.boss.width = 200
+	E.db.unitframe.units.boss.height = 45
+	E.db.unitframe.units.boss.buffs.sizeOverride = 45
+	E.db.unitframe.units.boss.buffs.perrow = 4
+	E.db.unitframe.units.boss.castbar.width = 200
+	E.db.unitframe.units.boss.health.position = "TOPLEFT"
+
+	--Unitframes (Focus)
+	E.db.unitframe.units.focus.width = 150
+	E.db.unitframe.units.focus.castbar.width = 150
+	E.db.unitframe.units.focus.castbar.height = 15
+
+	--Unitframes (Player)
+	E.db.unitframe.units.player.castbar.format = "CURRENTMAX"
+	E.db.unitframe.units.player.castbar.height = 15
+	E.db.unitframe.units.player.castbar.width = 230
+	E.db.unitframe.units.player.classbar.fill = "spaced"
+	E.db.unitframe.units.player.classbar.height = 7
+	E.db.unitframe.units.player.health.position = "TOPLEFT"
+	E.db.unitframe.units.player.health.text = true
+	E.db.unitframe.units.player.health.text_format = "[healthcolor][health:current-percent:sl]"
+	E.db.unitframe.units.player.height = 50
+	E.db.unitframe.units.player.lowmana = 30
+	E.db.unitframe.units.player.name.enable = true
+	E.db.unitframe.units.player.name.position = "BOTTOMRIGHT"
+	E.db.unitframe.units.player.name.text_format = "[namecolor][name:medium]"
+	E.db.unitframe.units.player.portrait.camDistanceScale = 2.25
+	E.db.unitframe.units.player.portrait.enable = true
+	E.db.unitframe.units.player.portrait.overlay = true
+	E.db.unitframe.units.player.power.offset = 7
+	E.db.unitframe.units.player.power.position = "LEFT"
+	E.db.unitframe.units.player.power.text = true
+	E.db.unitframe.units.player.power.text_format = "[powercolor][power:current:sl]"
+	E.db.unitframe.units.player.pvp.text_format = "||cFFB04F4F[pvptimer]||r"
+	E.db.unitframe.units.player.restIcon = false
+	E.db.unitframe.units.player.width = 230
+
+	--Unitframes (Target)
+	E.db.unitframe.units.target.buffs.anchorPoint = "TOPRIGHT"
+	E.db.unitframe.units.target.buffs['growth-x'] = "LEFT"
+	E.db.unitframe.units.target.buffs.initialAnchor = "BOTTOMRIGHT"
+	E.db.unitframe.units.target.buffs.numrows = 1
+	E.db.unitframe.units.target.buffs.perrow = 7
+	E.db.unitframe.units.target.castbar.format = "CURRENTMAX"
+	E.db.unitframe.units.target.castbar.height = 15
+	E.db.unitframe.units.target.castbar.width = 230
+	E.db.unitframe.units.target.debuffs.perrow = 7
+	E.db.unitframe.units.target.debuffs.showPlayerOnly = true
+	E.db.unitframe.units.target.debuffs.useFilter = "CCDebuffs"
+	E.db.unitframe.units.target.healPrediction = true
+	E.db.unitframe.units.target.health.position = "TOPRIGHT"
+	E.db.unitframe.units.target.health.text = true
+	--E.db.unitframe.units.target.health.text_format = "current-percent"
+	E.db.unitframe.units.target.height = 50
+	E.db.unitframe.units.target.hideonnpc = true
+	E.db.unitframe.units.target.name.enable = true
+	E.db.unitframe.units.target.name.position = "BOTTOMLEFT"
+	E.db.unitframe.units.target.portrait.camDistanceScale = 2.5
+	E.db.unitframe.units.target.portrait.enable = true
+	E.db.unitframe.units.target.portrait.overlay = true
+	E.db.unitframe.units.target.power.offset = 7
+	E.db.unitframe.units.target.power.position = "RIGHT"
+	E.db.unitframe.units.target.power.text = true
+	E.db.unitframe.units.target.power.text_format = "current"
+	E.db.unitframe.units.target.width = 230
+
+	--Unitframes (Raid10)
+	E.db.unitframe.units.raid10.healPrediction = true
+	E.db.unitframe.units.raid10.health.frequentUpdates = true
+	E.db.unitframe.units.raid10.health.orientation = "VERTICAL"
+	E.db.unitframe.units.raid10.health.position = "CENTER"
+	E.db.unitframe.units.raid10.power.position = "BOTTOMLEFT"
+	E.db.unitframe.units.raid10.power.width = "spaced"
+	E.db.unitframe.units.raid10.showSolo = true
+	E.db.unitframe.units.raid10.visibility = "[@raid11,exists] hide;show"
+	E.db.unitframe.units.raid10.width = 70
+
+	--Unitframes (Raid25)
+	E.db.unitframe.units.raid25.healPrediction = true
+	E.db.unitframe.units.raid25.power.width = "spaced"
+	E.db.unitframe.units.raid25.width = 70
+	E.db.unitframe.units.raid25.health.orientation = "VERTICAL"
+
+	--Unitframes (Raid40)
+	E.db.unitframe.units.raid40.width = 70
+
+	--Unitframes (Tank)
+	E.db.unitframe.units.tank.enable = false
+
+	if layout == "healer" then
+		E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-300265"
+		E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM300265"
+		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464167"
+		E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-420135"
+		E.db.movers.ElvUF_FocusMover = "BOTTOMLEFTUIParentBOTTOM560265"
+		E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0105"
+		E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM0105"
+		E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM0105"
+		E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM0105"
+		E.db.movers.MarkMover = "BOTTOMUIParentBOTTOM-285200"
+	else
+		E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-185135"
+		E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM185135"
+		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM0120"
+		E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-420135"
+		E.db.movers.ElvUF_FocusMover = "BOTTOMLEFTUIParentBOTTOM560265"
+		E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT0263"
+		E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263"
+		E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263"
+		E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263"
+		E.db.movers.MarkMover = "BOTTOMUIParentBOTTOM0165"
+	end
+	E.db.movers.ElvAB_1 = "BOTTOMUIParentBOTTOM021"
+	E.db.movers.ElvAB_2 = "RIGHTUIParentRIGHT0200"
+	E.db.movers.ElvAB_3 = "RIGHTElvAB_1LEFT00"
+	E.db.movers.ElvAB_5 = "LEFTElvAB_1RIGHT00"
+	E.db.movers.ShiftAB = "TOPLEFTUIParentTOPLEFT0-21"
+	E.db.movers.MinimapMover = "TOPRIGHTUIParentTOPRIGHT-1-21"
+	E.db.movers.AurasMover = "TOPRIGHTMMHolderTOPLEFT-10"
+	E.db.movers.BossButton = "CENTERUIParentBOTTOMLEFT660968"
+	E.db.movers.BNETMover = "TOPRIGHTUIParentTOPRIGHT-2-214"
+	E.db.movers.ExperienceBarMover = "TOPLEFTUIParentTOPLEFT722-21"
+
+	E:UpdateAll(true)
+end
+
+function E:ElvSetup() --The function to restore defaults. not finished yet lol
+	InstallStepComplete.message = L["Elv's Defaults Set"]
+	InstallStepComplete:Show()
+	if not E.db.movers then E.db.movers = {}; end
+	--Set to defaults. Every module is listed just in case.
+	E:CopyTable(E.db.general, P.general) --General options
+	E:CopyTable(E.db.nameplate, P.nameplate) --Nameplates
+	E:CopyTable(E.db.datatexts, P.datatexts) --Datatexts
+	E:CopyTable(E.db.actionbar, P.actionbar) --Actionbars
+	E:CopyTable(E.db.tooltip, P.tooltip) --Tooltip
+	E:CopyTable(E.db.unitframe, P.unitframe) --Unitframes
+	E:CopyTable(E.db.skins, P.skins) --Skins
+	E:CopyTable(E.db.bags, P.bags) --Bags
+	E:CopyTable(E.db.chat, P.chat) --Chat
+	E:CopyTable(E.db.sle, P.sle) --Edit's main defaults
+	E:CopyTable(E.db.microbar, P.microbar) --Microbar
+	--Move every bar and panel to the defaults.
+	E:ResetUI() --Reseting positions
+	StaticPopup3Button1:Click() --this is automatic click on confirm for reseting movers
+
+	E:UpdateAll(true)
+end
+
+function E:HudSimple()
+	local H = E:GetModule('HUD')
+	InstallStepComplete.message = L["Simple Layout Set"]
+	InstallStepComplete:Show()
+	H:SimpleLayout()
+	H:UpdateAllFrames()
+end
+
+function E:HudDefault()
+	local H = E:GetModule('HUD')
+	InstallStepComplete.message = L["Default Layout Set"]
+	InstallStepComplete:Show()
+	E:CopyTable(E.db.hud,P.hud)
+	H:UpdateAllFrames()
+end
+
+local function InstallComplete()
+	E.db.install_complete = E.version
+
+	if GetCVarBool("Sound_EnableMusic") then
+		StopMusic()
+	end
+
+	ReloadUI()
+end
+
+local function ResetAll()
+	InstallNextButton:Disable()
+	InstallPrevButton:Disable()
+	InstallOption1Button:Hide()
+	InstallOption1Button:SetScript("OnClick", nil)
+	InstallOption1Button:SetText("")
+	InstallOption2Button:Hide()
+	InstallOption2Button:SetScript('OnClick', nil)
+	InstallOption2Button:SetText('')
+	InstallOption3Button:Hide()
+	InstallOption3Button:SetScript('OnClick', nil)
+	InstallOption3Button:SetText('')
+	InstallOption4Button:Hide()
+	InstallOption4Button:SetScript('OnClick', nil)
+	InstallOption4Button:SetText('')
+	ElvUIInstallFrame.SubTitle:SetText("")
+	ElvUIInstallFrame.Desc1:SetText("")
+	ElvUIInstallFrame.Desc2:SetText("")
+	ElvUIInstallFrame.Desc3:SetText("")
+	ElvUIInstallFrame:Size(550, 400)
+end
+
+local function SetPage(PageNum)
+	ResetAll()
+	InstallStatus:SetValue(PageNum)
+
+	local f = ElvUIInstallFrame
+
+	if PageNum == MAX_PAGE then
+		InstallNextButton:Disable()
+	else
+		InstallNextButton:Enable()
+	end
+
+	if PageNum == 1 then
+		InstallPrevButton:Disable()
+	else
+		InstallPrevButton:Enable()
+	end
+
+	if PageNum == 1 then
+		f.SubTitle:SetText(format(L["Welcome to ElvUI version %s!"], E.version))
+		f.Desc1:SetText(L["This install process will help you learn some of the features in ElvUI has to offer and also prepare your user interface for usage."])
+		f.Desc2:SetText(L["The in-game configuration menu can be accesses by typing the /ec command or by clicking the 'C' button on the minimap. Press the button below if you wish to skip the installation process."])
+		f.Desc3:SetText(L["Please press the continue button to go onto the next step."])
+
+		InstallOption1Button:Show()
+		InstallOption1Button:SetScript("OnClick", InstallComplete)
+		InstallOption1Button:SetText(L["Skip Process"])
+	elseif PageNum == 2 then
+		f.SubTitle:SetText(L["CVars"])
+		f.Desc1:SetText(L["This part of the installation process sets up your World of Warcraft default options it is recommended you should do this step for everything to behave properly."])
+		f.Desc2:SetText(L["Please click the button below to setup your CVars."])
+		f.Desc3:SetText(L["Importance: |cff07D400High|r"])
+		InstallOption1Button:Show()
+		InstallOption1Button:SetScript("OnClick", SetupCVars)
+		InstallOption1Button:SetText(L["Setup CVars"])
+	elseif PageNum == 3 then
+		f.SubTitle:SetText(L["Chat"])
+		f.Desc1:SetText(L["This part of the installation process sets up your chat windows names, positions and colors."])
+		f.Desc2:SetText(L["The chat windows function the same as Blizzard standard chat windows, you can right click the tabs and drag them around, rename, etc. Please click the button below to setup your chat windows."])
+		f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"])
+		InstallOption1Button:Show()
+		InstallOption1Button:SetScript("OnClick", SetupChat)
+		InstallOption1Button:SetText(L["Setup Chat"])
+	elseif PageNum == 4 then
+		f.SubTitle:SetText(L['Theme Setup'])
+		f.Desc1:SetText(L['Choose a theme layout you wish to use for your initial setup.'])
+		f.Desc2:SetText(L['You can always change fonts and colors of any element of elvui from the in-game configuration.'])
+		f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])
+
+		InstallOption1Button:Show()
+		InstallOption1Button:SetScript('OnClick', function() E:SetupTheme('classic') end)
+		InstallOption1Button:SetText(L["Classic"])
+		InstallOption2Button:Show()
+		InstallOption2Button:SetScript('OnClick', function() E:SetupTheme('default') end)
+		InstallOption2Button:SetText(DEFAULT)
+		InstallOption3Button:Show()
+		InstallOption3Button:SetScript('OnClick', function() E:SetupTheme('class') end)
+		InstallOption3Button:SetText(CLASS)
+	elseif PageNum == 5 then
+		f.SubTitle:SetText(L["Resolution"])
+		f.Desc1:SetText(format(L["Your current resolution is %s, this is considered a %s resolution."], E.resolution, E.lowversion == true and L["low"] or L["high"]))
+		if E.lowversion then
+			f.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 you resolution is."])
+			f.Desc3:SetText(L["Importance: |cff07D400High|r"])
+		else
+			f.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."])
+			f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])
+		end
+
+		InstallOption1Button:Show()
+		InstallOption1Button:SetScript('OnClick', function() E.SetupResolution('high') end)
+		InstallOption1Button:SetText(L["High Resolution"])
+		InstallOption2Button:Show()
+		InstallOption2Button:SetScript('OnClick', function() E.SetupResolution('low') end)
+		InstallOption2Button:SetText(L['Low Resolution'])
+	elseif PageNum == 6 then
+		f.SubTitle:SetText(L["Layout"])
+		f.Desc1:SetText(L["You can now choose what layout you wish to use based on your combat role."])
+		f.Desc2:SetText(L["This will change the layout of your unitframes, raidframes, and datatexts."])
+		f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"])
+
+		InstallOption1Button:Show()
+		InstallOption1Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('tank') end)
+		InstallOption1Button:SetText(L['Tank'])
+		InstallOption2Button:Show()
+		InstallOption2Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('healer') end)
+		InstallOption2Button:SetText(L['Healer'])
+		InstallOption3Button:Show()
+		InstallOption3Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('dpsMelee') end)
+		InstallOption3Button:SetText(L['Physical DPS'])
+		InstallOption4Button:Show()
+		InstallOption4Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('dpsCaster') end)
+		InstallOption4Button:SetText(L['Caster DPS'])
+	elseif PageNum == 7 then --The new page
+		f.SubTitle:SetText(L["Shadow & Light Settings"])
+		f.Desc1:SetText(L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."])
+		f.Desc2:SetText(L["SLE_Install_Text2"])
+		f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])
+
+		InstallOption1Button:Show()
+		InstallOption1Button:SetScript('OnClick', function() E:DarthSetup() end)
+		InstallOption1Button:SetText(L["Darth's Config"])
+		InstallOption2Button:Show()
+		InstallOption2Button:SetScript('OnClick', function() E:SetupTheme('class'); E:RepoocSetup() end)
+		InstallOption2Button:SetText(L["Repooc's Config"])
+		InstallOption3Button:Show()
+		InstallOption3Button:SetScript('OnClick', function() E:ElvSetup() end)
+		InstallOption3Button:SetText(L["Elv's Defaults"])
+	elseif PageNum == 8 and IsAddOnLoaded("ElvUI_Hud") then --Hud's page if enabled
+		f.SubTitle:SetText("ElvUI Hud")
+		f.Desc1:SetText(L["Thank you for using ElvUI Hud!"])
+		f.Desc2:SetText(L["Here you can choose between the simple layout (only player health and power) or the default layout for the hud"])
+		f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])
+
+		InstallOption1Button:Show()
+		InstallOption1Button:SetScript('OnClick', function() E:HudSimple() end)
+		InstallOption1Button:SetText(L["Simple Layout"])
+		InstallOption2Button:Show()
+		InstallOption2Button:SetScript('OnClick', function() E:HudDefault() end)
+		InstallOption2Button:SetText(L["Default Layout"])
+	elseif PageNum == 8 and not IsAddOnLoaded("ElvUI_Hud") then --Finish install if Hud disabled
+		f.SubTitle:SetText(L["Installation Complete"])
+		f.Desc1:SetText(L["You are now finished with the installation process. If you are in need of technical support please visit us at http://www.tukui.org."])
+		f.Desc2:SetText(L["Please click the button below so you can setup variables and ReloadUI."])
+
+		InstallOption1Button:Show()
+		InstallOption1Button:SetScript("OnClick", InstallComplete)
+		InstallOption1Button:SetText(L["Finished"])
+		ElvUIInstallFrame:Size(550, 350)
+	elseif PageNum == 9 then --Finish install if Hud enabled
+		f.SubTitle:SetText(L["Installation Complete"])
+		f.Desc1:SetText(L["You are now finished with the installation process. If you are in need of technical support please visit us at http://www.tukui.org."])
+		f.Desc2:SetText(L["Please click the button below so you can setup variables and ReloadUI."])
+
+		InstallOption1Button:Show()
+		InstallOption1Button:SetScript("OnClick", InstallComplete)
+		InstallOption1Button:SetText(L["Finished"])
+		ElvUIInstallFrame: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
+
+--Install UI
+function E:Install()
+	MaxPages()
+	if not InstallStepComplete then
+		local imsg = CreateFrame("Frame", "InstallStepComplete", E.UIParent)
+		imsg:Size(418, 72)
+		imsg:Point("TOP", 0, -190)
+		imsg:Hide()
+		imsg:SetScript('OnShow', function(self)
+			if self.message then
+				PlaySoundFile([[Sound\Interface\LevelUp.wav]])
+				self.text:SetText(self.message)
+				UIFrameFadeOut(self, 3.5, 1, 0)
+				E:Delay(4, function() self:Hide() end)
+				self.message = nil
+
+				if imsg.firstShow == false then
+					if GetCVarBool("Sound_EnableMusic") then
+						PlayMusic([[Sound\Music\ZoneMusic\DMF_L70ETC01.mp3]])
+					end
+					imsg.firstShow = true
+				end
+			else
+				self:Hide()
+			end
+		end)
+
+		imsg.firstShow = false
+
+		imsg.bg = imsg:CreateTexture(nil, 'BACKGROUND')
+		imsg.bg:SetTexture([[Interface\LevelUp\LevelUpTex]])
+		imsg.bg:SetPoint('BOTTOM')
+		imsg.bg:Size(326, 103)
+		imsg.bg:SetTexCoord(0.00195313, 0.63867188, 0.03710938, 0.23828125)
+		imsg.bg:SetVertexColor(1, 1, 1, 0.6)
+
+		imsg.lineTop = imsg:CreateTexture(nil, 'BACKGROUND')
+		imsg.lineTop:SetDrawLayer('BACKGROUND', 2)
+		imsg.lineTop:SetTexture([[Interface\LevelUp\LevelUpTex]])
+		imsg.lineTop:SetPoint("TOP")
+		imsg.lineTop:Size(418, 7)
+		imsg.lineTop:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313)
+
+		imsg.lineBottom = imsg:CreateTexture(nil, 'BACKGROUND')
+		imsg.lineBottom:SetDrawLayer('BACKGROUND', 2)
+		imsg.lineBottom:SetTexture([[Interface\LevelUp\LevelUpTex]])
+		imsg.lineBottom:SetPoint("BOTTOM")
+		imsg.lineBottom:Size(418, 7)
+		imsg.lineBottom:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313)
+
+		imsg.text = imsg:CreateFontString(nil, 'ARTWORK', 'GameFont_Gigantic')
+		imsg.text:Point("BOTTOM", 0, 12)
+		imsg.text:SetTextColor(1, 0.82, 0)
+		imsg.text:SetJustifyH("CENTER")
+	end
+
+	--Create Frame
+	if not ElvUIInstallFrame then
+		local f = CreateFrame("Button", "ElvUIInstallFrame", E.UIParent)
+		f:Size(550, 400)
+		f:SetTemplate("Transparent")
+		f:CreateShadow("Default")
+		f:SetPoint("CENTER")
+		f:SetFrameStrata('TOOLTIP')
+
+		f.Title = f:CreateFontString(nil, 'OVERLAY')
+		f.Title:FontTemplate(nil, 17, nil)
+		f.Title:Point("TOP", 0, -5)
+		f.Title:SetText(L["ElvUI Installation"])
+
+		f.Next = CreateFrame("Button", "InstallNextButton", f, "UIPanelButtonTemplate")
+		f.Next:StripTextures()
+		f.Next:SetTemplate("Default", true)
+		f.Next:Size(110, 25)
+		f.Next:Point("BOTTOMRIGHT", -5, 5)
+		f.Next:SetText(CONTINUE)
+		f.Next:Disable()
+		f.Next:SetScript("OnClick", NextPage)
+		E.Skins:HandleButton(f.Next, true)
+
+		f.Prev = CreateFrame("Button", "InstallPrevButton", f, "UIPanelButtonTemplate")
+		f.Prev:StripTextures()
+		f.Prev:SetTemplate("Default", true)
+		f.Prev:Size(110, 25)
+		f.Prev:Point("BOTTOMLEFT", 5, 5)
+		f.Prev:SetText(PREVIOUS)
+		f.Prev:Disable()
+		f.Prev:SetScript("OnClick", PreviousPage)
+		E.Skins:HandleButton(f.Prev, true)
+
+		f.Status = CreateFrame("StatusBar", "InstallStatus", f)
+		f.Status:SetFrameLevel(f.Status:GetFrameLevel() + 2)
+		f.Status:CreateBackdrop("Default")
+		f.Status:SetStatusBarTexture(E["media"].normTex)
+		f.Status:SetStatusBarColor(unpack(E["media"].rgbvaluecolor))
+
+		f.Status:SetMinMaxValues(0, MAX_PAGE)
+		f.Status:Point("TOPLEFT", f.Prev, "TOPRIGHT", 6, -2)
+		f.Status:Point("BOTTOMRIGHT", f.Next, "BOTTOMLEFT", -6, 2)
+		f.Status.text = f.Status:CreateFontString(nil, 'OVERLAY')
+		f.Status.text:FontTemplate()
+		f.Status.text:SetPoint("CENTER")
+		f.Status.text:SetText(CURRENT_PAGE.." / "..MAX_PAGE)
+		f.Status:SetScript("OnValueChanged", function(self)
+			self.text:SetText(self:GetValue().." / "..MAX_PAGE)
+		end)
+
+		f.Option1 = CreateFrame("Button", "InstallOption1Button", f, "UIPanelButtonTemplate")
+		f.Option1:StripTextures()
+		f.Option1:Size(160, 30)
+		f.Option1:Point("BOTTOM", 0, 45)
+		f.Option1:SetText("")
+		f.Option1:Hide()
+		E.Skins:HandleButton(f.Option1, true)
+
+		f.Option2 = CreateFrame("Button", "InstallOption2Button", f, "UIPanelButtonTemplate")
+		f.Option2:StripTextures()
+		f.Option2:Size(110, 30)
+		f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45)
+		f.Option2:SetText("")
+		f.Option2:Hide()
+		f.Option2:SetScript('OnShow', function() f.Option1:SetWidth(110); f.Option1:ClearAllPoints(); f.Option1:Point('BOTTOMRIGHT', f, 'BOTTOM', -4, 45) end)
+		f.Option2:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45) end)
+		E.Skins:HandleButton(f.Option2, true)
+
+		f.Option3 = CreateFrame("Button", "InstallOption3Button", f, "UIPanelButtonTemplate")
+		f.Option3:StripTextures()
+		f.Option3:Size(100, 30)
+		f.Option3:Point('LEFT', f.Option2, 'RIGHT', 4, 0)
+		f.Option3:SetText("")
+		f.Option3:Hide()
+		f.Option3:SetScript('OnShow', function() f.Option1:SetWidth(100); f.Option1:ClearAllPoints(); f.Option1:Point('RIGHT', f.Option2, 'LEFT', -4, 0); f.Option2:SetWidth(100); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOM', f, 'BOTTOM', 0, 45)  end)
+		f.Option3:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45); f.Option2:SetWidth(110); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) end)
+		E.Skins:HandleButton(f.Option3, true)
+
+		f.Option4 = CreateFrame("Button", "InstallOption4Button", f, "UIPanelButtonTemplate")
+		f.Option4:StripTextures()
+		f.Option4:Size(100, 30)
+		f.Option4:Point('LEFT', f.Option3, 'RIGHT', 4, 0)
+		f.Option4:SetText("")
+		f.Option4:Hide()
+		f.Option4:SetScript('OnShow', function()
+			f.Option1:Width(100)
+			f.Option2:Width(100)
+
+			f.Option1:ClearAllPoints();
+			f.Option1:Point('RIGHT', f.Option2, 'LEFT', -4, 0);
+			f.Option2:ClearAllPoints();
+			f.Option2:Point('BOTTOMRIGHT', f, 'BOTTOM', -4, 45)
+		end)
+		f.Option4:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45); f.Option2:SetWidth(110); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) end)
+		E.Skins:HandleButton(f.Option4, true)
+
+		f.SubTitle = f:CreateFontString(nil, 'OVERLAY')
+		f.SubTitle:FontTemplate(nil, 15, nil)
+		f.SubTitle:Point("TOP", 0, -40)
+
+		f.Desc1 = f:CreateFontString(nil, 'OVERLAY')
+		f.Desc1:FontTemplate()
+		f.Desc1:Point("TOPLEFT", 20, -75)
+		f.Desc1:Width(f:GetWidth() - 40)
+
+		f.Desc2 = f:CreateFontString(nil, 'OVERLAY')
+		f.Desc2:FontTemplate()
+		f.Desc2:Point("TOPLEFT", 20, -125)
+		f.Desc2:Width(f:GetWidth() - 40)
+
+		f.Desc3 = f:CreateFontString(nil, 'OVERLAY')
+		f.Desc3:FontTemplate()
+		f.Desc3:Point("TOPLEFT", 20, -175)
+		f.Desc3:Width(f:GetWidth() - 40)
+
+		local close = CreateFrame("Button", "InstallCloseButton", f, "UIPanelCloseButton")
+		close:SetPoint("TOPRIGHT", f, "TOPRIGHT")
+		close:SetScript("OnClick", function()
+			f:Hide()
+		end)
+		E.Skins:HandleCloseButton(close)
+
+		f.tutorialImage = f:CreateTexture('InstallTutorialImage', 'OVERLAY')
+		f.tutorialImage:Size(256, 128)
+		f.tutorialImage:SetTexture('Interface\\AddOns\\ElvUI_SLE\\textures\\logo_elvui_sle.tga')
+		f.tutorialImage:Point('BOTTOM', 0, 70)
+
+	end
+
+	ElvUIInstallFrame:Show()
+	NextPage()
 end
\ No newline at end of file
diff --git a/ElvUI_SLE/core/load_core.xml b/ElvUI_SLE/core/load_core.xml
index 434ec9b..8cb23ce 100644
--- a/ElvUI_SLE/core/load_core.xml
+++ b/ElvUI_SLE/core/load_core.xml
@@ -1,5 +1,4 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/">
-	<Script file='core.lua'/>
 	<Script file='install.lua'/>
 	<Script file='options.lua'/>
 </Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/core/options.lua b/ElvUI_SLE/core/options.lua
index f69322f..7fdb46d 100644
--- a/ElvUI_SLE/core/options.lua
+++ b/ElvUI_SLE/core/options.lua
@@ -2,6 +2,7 @@
 local UF = E:GetModule('UnitFrames')
 local AB = E:GetModule('ActionBars')
 local CH = E:GetModule('Chat')
+local A = E:GetModule('Auras')

 --Main options group
 E.Options.args.sle = {
@@ -33,23 +34,6 @@ E.Options.args.sle = {
 					get = function(info) return E.db.datatexts.lfrshow end,
 					set = function(info, value) E.db.datatexts.lfrshow = value; end
 				},
-				aurasize = {
-					order = 3,
-					type = "range",
-					name = L["Aura Size"],
-					desc = L["Sets size of auras. This setting is character based."],
-					min = 20, max = 50, step = 1,
-					get = function(info) return E.private.sle.auras.size end,
-					set = function(info, value) E.private.sle.auras.size = value; StaticPopup_Show("PRIVATE_RL") end,
-				},
-				petautocast = {
-					order = 5,
-					type = "toggle",
-					name = L["Pet autocast corners"],
-					desc = L["Show/hide triangles in corners of autocastable buttons."],
-					get = function(info) return E.db.sle.petbar.autocast end,
-					set = function(info, value) E.db.sle.petbar.autocast = value; AB:UpdatePet() end
-				},
 			},
 		},
 	},
diff --git a/ElvUI_SLE/layout/layout.lua b/ElvUI_SLE/layout/layout.lua
index 10d58de..f6fe6a0 100644
--- a/ElvUI_SLE/layout/layout.lua
+++ b/ElvUI_SLE/layout/layout.lua
@@ -9,8 +9,7 @@ LO.ToggleChatPanelsSLE = LO.ToggleChatPanels
 function LO:ToggleChatPanels()
 	LO.ToggleChatPanelsSLE(self)

-	--I've made replacement only for show both setting. I'm using only those atm. will do more later
-	if E.db.general.panelBackdrop == 'SHOWBOTH' then
+	if E.db.chat.panelBackdrop == 'SHOWBOTH' then
 		LeftChatPanel.backdrop:Show()
 		LeftChatTab:Show()
 		RightChatPanel.backdrop:Show()
@@ -22,7 +21,7 @@ function LO:ToggleChatPanels()
 		RightChatDataPanel:Point('TOPRIGHT', RightChatPanel, 'BOTTOMRIGHT', -SIDE_BUTTON_WIDTH, -1)	--upper-right corner of right datapanel
 		LeftChatToggleButton:Point('BOTTOMLEFT', LeftChatPanel, 'BOTTOMLEFT', 0, -21)
 		RightChatToggleButton:Point('BOTTOMRIGHT', RightChatPanel, 'BOTTOMRIGHT', 0, -21)
-	elseif E.db.general.panelBackdrop == 'HIDEBOTH' then
+	elseif E.db.chat.panelBackdrop == 'HIDEBOTH' then
 		LeftChatPanel.backdrop:Hide()
 		LeftChatTab:Hide()
 		RightChatPanel.backdrop:Hide()
@@ -34,7 +33,7 @@ function LO:ToggleChatPanels()
 		RightChatDataPanel:Point('TOPRIGHT', RightChatPanel, 'BOTTOMRIGHT', -SIDE_BUTTON_WIDTH, -1)	--upper-right corner of right datapanel
 		LeftChatToggleButton:Point('BOTTOMLEFT', LeftChatPanel, 'BOTTOMLEFT', 0, -21)
 		RightChatToggleButton:Point('BOTTOMRIGHT', RightChatPanel, 'BOTTOMRIGHT', 0, -21)
-	elseif E.db.general.panelBackdrop == 'LEFT' then
+	elseif E.db.chat.panelBackdrop == 'LEFT' then
 		LeftChatPanel.backdrop:Show()
 		LeftChatTab:Show()
 		RightChatPanel.backdrop:Hide()
@@ -81,3 +80,19 @@ function LO:CreateChatPanels()
 	RightChatTab:Point('TOPRIGHT', RightChatPanel, 'TOPRIGHT', -2, -2)
 	RightChatTab:Point('BOTTOMLEFT', RightChatPanel, 'TOPLEFT', 2, -PANEL_HEIGHT)
 end
+
+--Repositioning function for editbox
+function LO:EditboxPos()
+	for i = 1, NUM_CHAT_WINDOWS do
+		local editbox = _G["ChatFrame"..i.."EditBox"]
+		local parent
+		if E.db.sle.chat.editbox == "Down" then
+			parent = LeftChatDataPanel
+		else
+			parent = LeftChatTab
+		end
+		editbox:ClearAllPoints()
+		editbox:SetPoint("TOPLEFT", parent, "TOPLEFT")
+		editbox:SetPoint("BOTTOMRIGHT", parent, "BOTTOMRIGHT")
+	end
+end
diff --git a/ElvUI_SLE/libs/load_libs.xml b/ElvUI_SLE/libs/load_libs.xml
index 7a138b7..c42ea66 100644
--- a/ElvUI_SLE/libs/load_libs.xml
+++ b/ElvUI_SLE/libs/load_libs.xml
@@ -1 +1 @@
-<Ui xmlns="http://www.blizzard.com/wow/ui/">
	<Script file="oUF_NecroStrike\oUF_NecroStrike.lua"/>
	<Script file="oUF_Vengeance\oUF_Vengeance.lua"/>
</Ui>
\ No newline at end of file
+<Ui xmlns="http://www.blizzard.com/wow/ui/">
	<Script file="oUF_NecroStrike\oUF_NecroStrike.lua"/>
</Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/locales/china.lua b/ElvUI_SLE/locales/china.lua
index 9bf0775..9390a8d 100644
--- a/ElvUI_SLE/locales/china.lua
+++ b/ElvUI_SLE/locales/china.lua
@@ -1,23 +1,3 @@
 local AceLocale = LibStub:GetLibrary("AceLocale-3.0")
 local L = AceLocale:NewLocale("ElvUI", "zhCN")
 if not L then return end
-
---Microbar--
-------------
-L["2 rows"] = "2 行"
-L["3 rows"] = "3 行"
-L["4 rows"] = "4 行"
-L["6 rows"] = "6 行"
-L["Change the positioning of buttons on Microbar."] = "修改微型菜单上按钮的位置"
-L["Hide in Combat"] = "战斗中隐藏"
-L["Hide Microbar in combat."] = "在战斗中隐藏"
-L["Hide microbar unless you mouse over it."] = "隐藏微型菜单, 当鼠标滑过显示."
-L["Microbar"] = "微型菜单"
-L["Microbar Layout"] = "微型菜单布局"
-L["Module for adding micromenu to ElvUI."] = "用于 ElvUI 的微型菜单模块."
-L["On Mouse Over"] = "鼠标滑过显示"
-L["Set Alpha"] = "设置透明度"
-L["Sets alpha of the microbar"] = "设置微型菜单透明度"
-L["Set Scale"] = "缩放比例"
-L["Sets Scale of the microbar"] = "设置微型菜单缩放比例"
-L["Show backdrop for micromenu"] = "显示微型菜单的背景"
\ No newline at end of file
diff --git a/ElvUI_SLE/locales/english.lua b/ElvUI_SLE/locales/english.lua
index cb4c99d..872ab41 100644
--- a/ElvUI_SLE/locales/english.lua
+++ b/ElvUI_SLE/locales/english.lua
@@ -1,195 +1,184 @@
 -- English localization file for enUS and enGB.
 local AceLocale = LibStub:GetLibrary("AceLocale-3.0");
-local L
-if UnitName('player') ~= 'Elv' then
-	L = AceLocale:NewLocale("ElvUI", "enUS", true, true);
-else
-	L = AceLocale:NewLocale("ElvUI", "enUS", true);
-end
+local L = AceLocale:NewLocale("ElvUI", "enUS", true);

 if not L then return; end

-L["2 rows"] = "2 rows"
-L["3 rows"] = "3 rows"
-L["4 rows"] = "4 rows"
-L["6 rows"] = "6 rows"
-L["Actionbar BG"] = "Actionbar BG"
-L["Additional Background Panels"] = "Additional Background Panels"
-L["Additional Datatext Panels"] = "Additional Datatext Panels"
-L["Additional menu with useful buttons"] = "Additional menu with useful buttons"
-L["Additional unit frames options"] = "Additional unit frames options"
-L["AddOns Manager"] = "AddOns Manager"
-L["Amount of messages to save. Set to 0 to disable."] = "Amount of messages to save. Set to 0 to disable."
-L["As Letters"] = "As Letters"
-L["Aura Size"] = "Aura Size"
-L["Automatically release body when killed inside a battleground."] = "Automatically release body when killed inside a battleground."
-L["Backgrounds"] = "Backgrounds"
-L["Balance Power Text"] = "Balance Power Text"
-L["BG_DESC"] = "Module to create additional frames which can be used as backgrounds for something."
-L["Boss Mod"] = "Boss Mod"
-L["Bottom BG"] = "Bottom BG"
-L["Bottom_Panel"] = "Bottom Panel"
-L["Buttons position"] = "Buttons position"
-L["Change the direction of buttons growth from the skull marker"] = "Change the direction of buttons growth from the skull marker"
-L["Change the positioning of buttons on Microbar."] = "Change the positioning of buttons on Microbar."
-L["Chat Editbox History"] = "Chat Editbox History"
-L["Chat Fade"] = "Chat Fade"
-L["Chat Options"] = "Chat Options"
-L["Classbar Offset"] = "Classbar Offset"
-L["Click to reload your interface"] = "Click to reload your interface"
-L["Click to toggle config window"] = "Click to toggle config window"
-L["Click to toogle the AddOn Managerframe (stAddOnManager or ACP) you have enabled."] = "Click to toogle the AddOn Managerframe (stAddOnManager or ACP) you have enabled."
-L["Click to toogle the Configuration/Option Window from the Bossmod (DXE, DBM or Bigwigs) you have enabled."] = "Click to toogle the Configuration/Option Window from the Bossmod (DXE, DBM or Bigwigs) you have enabled."
-L["Click to unlock moving ElvUI elements"] = "Click to unlock moving ElvUI elements"
-L["Combat Position"] = "Combat Position"
-L["Darth's Config"] = "Darth's Config"
-L["Darth's Defaults Set"] = "Darth's Defaults Set"
-L["Datatext Panels"] = "Datatext Panels"
-L["Detailed"] = "Detailed"
-L["Detailed Options"] = "Detailed Options"
-L["Direction"] = "Direction"
+--General--
+L["Shadow & Light Edit"] = true
+L["Shadow & Light Edit of ElvUI"] = true
+L["SLE_DESC"] = [=[This is and edit of ElvUI that adds some functionality to the original addon and changes some previously existed options.
+The edit doesn't change original files in any respect so you can freely disable it any time from your addon manager without any risk.]=]
+L["LFR Lockdown"] = true
+L["Show/Hide LFR lockdown info in time datatext's tooltip."] = true
+L["PvP Auto Release"] = true
+L["Automatically release body when killed inside a battleground."] = true
+L["Pet autocast corners"] = true
+L["Show/hide triangles in corners of autocastable buttons."] = true
+L["SLE_LOGIN_MSG"] = [=[You are using |cff1784d1Shadow & Light Edit|r for ElvUI.
+If you wish to use the original ElvUI addon, disable this edit's plugin in your Addons manager.
+Have a nice day.]=]
+L["Your version of ElvUI is older than recommended to use with Shadow & Light Edit. Please, download the latest version from tukui.org."] = true
+
+--Install--
+L["Shadow & Light Settings"] = true
+L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."] = true
+L["SLE_Install_Text2"] = [=[Elv's Defaults button only needs to be clicked if you set one of our configurations and wish to reverse this choise.
+|cffFF0000Warning:|r this will reset everything to the high resolution normal layout.]=]
+L["Darth's Config"] = true
+L["Darth's Defaults Set"] = true
+L["Elv's Defaults"] = true
+L["Elv's Defaults Set"] = true
+L["Repooc's Config"] = true
+L["Repooc's Defaults Set"] = true
+
+--Auras--
+L["Options for customizing auras near the minimap."] = true
+L["Caster Name"] = true
+L["Enabling this will show caster name in the buffs and debuff icons."] = true
+
+--Backgroungds--
+L["Backgrounds"] = true
+L["Additional Background Panels"] = true
+L["BG_DESC"] = true
+L["Bottom BG"] = true
+L["Left BG"] = true
+L["Right BG"] = true
+L["Actionbar BG"] = true
+L["Show/Hide this frame."] = true
+L["Sets width of the frame"] = true
+L["Sets height of the frame"] = true
+L["Sets X offset of the frame"] = true
+L["Sets Y offset of the frame"] = true
+L["Texture"] = true
+L["Set the texture to use in this frame.  Requirements are the same as the chat textures."] = true
+L["Backdrop Template"] = true
+L["Change the template used for this backdrop."] = true
+L["Default"] = true
+L["Transparent"] = true
+
+--Chat--
+L["Chat Options"] = true
+L["Chat Fade"] = true
+L["Enable/Disable the text fading in the chat window."] = true
+L["Chat Editbox History"] = true
+L["Amount of messages to save. Set to 0 to disable."] = true
+L["Editbox Position"] = true
+L["Select if the editbox will be above or below chat."] = true
+
+--Datatexts--
+L["LFR Dragon Soul"] = true
+L["SLE_AUTHOR_INFO"] = "Shadow & Light Edit by Darth Predator & Repooc"
+L["SLE_CONTACTS"] = [=[Bug reports, suggestions and other stuff accepted via:
+- Private Massage on TukUI.org to Darth Predator or Repooc
+- AddOn's page/ticket system on curse.com
+- AddOn's thread on tukui.org
+- AddOn's repo github.com]=]
 L["DP_1"] = "DT Panel 1"
 L["DP_2"] = "DT Panel 2"
 L["DP_3"] = "DT Panel 3"
 L["DP_4"] = "DT Panel 4"
 L["DP_5"] = "DT Panel 5"
 L["DP_6"] = "DT Panel 6"
+L["Bottom_Panel"] = "Bottom Panel"
+L["Top_Center"] = "Top Panel"
+L["Left Chat"] = true
+L["Right Chat"] = true
+L["Datatext Panels"] = true
+L["Additional Datatext Panels"] = true
 L["DP_DESC"] = [=[Additional Datatext Panels.
-8 panels with 20 datatext points total.
-You can't disable Top Panel and chat panels.]=]
-L["Elv's Defaults"] = "Elv's Defaults"
-L["Elv's Defaults Set"] = "Elv's Defaults Set"
-L["ElvUI Config"] = "ElvUI Config"
-L["ELVUI_SLE_CODERS"] = [=[Benik - core of exp/rep bars' text
-Tukz - helping with oUF
-Elv - for making creation of this edit much easier
-Pvtschlag - Necrotic Strike oUF plugin
-Blazeflack - helping hooking, modules and profiles
-Camealion - teaching Darth Predator the art of skining
-Swordyy - idea of ui buttons
-Azilroka@US-Daggerspine - core of ExtVendor and Altoholic skins, help with MoveAnything skin
-Pat - skinning options dropdowns and checkboxes missed by Elv
-Boradan - the idea of classbar movement
+8 panels with 20 datatext points total and a dashboard with 4 status bars.
+You can't disable chat panels.]=]
+L["Dashboard"] = true
+L["Show/Hide dashboard."] = true
+L["Dashboard Panels Width"] = true
+L["Sets size of dashboard panels."] = true
+L["Show/Hide this panel."] = true
+L["Sets size of this panel"] = true
+
+--Exp/Rep Bar--
+L["Xp-Rep Text"] = true
+L["Full value on Exp Bar"] = true
+L["Changes the way text is shown on exp bar."] = true
+L["Full value on Rep Bar"] = true
+L["Changes the way text is shown on rep bar."] = true
+
+--Marks--
+L["Raid Marks"] = true
+L["Show/Hide raid marks."] = true
+L["Sets size of buttons"] = true --Also used in UI buttons
+L["Direction"] = true
+L["Change the direction of buttons growth from the skull marker"] = true
+
+--Raid Utility--
+L["Raid Utility"] = true
+L["Raid Utility Coordinates"] = true
+L["RU_DESC"] = [=[This config group allows you to freely move your Raid Utility button starting position.
+Moving Raid Utility with mouse is disabled.  Use the sliders to move the button around.]=]
+L["X Position"] = true
+L["Y Position"] = true
+L["Sets X position of Raid Utility button."] = true
+L["Sets Y position of Raid Utility button."] = true
+L["Show Button"] = true
+L["Show/hide Raid Utility button.\nThis option is not permanent. The button will act as normal when joining/leaving groups."] = true
+
+--Skins--
+L["This options require Azilroka's skin pack to work."] = true
+L["Sets font size on DBM bars"] = true
+
+--UI buttons--
+L["UI Buttons"] = true
+L["Additional menu with useful buttons"] = true
+L["Show/Hide UI buttons."] = true
+L["Mouse over"] = true
+L["Show on mouse over."] = true
+L["Buttons position"] = true
+L["Layout for UI buttons."] = true
+L["Click to reload your interface"] = true
+L["Click to toggle config window"] = true
+L["Click to toogle the AddOn Manager frame (stAddOnManager or ACP) you have enabled."] = true
+L["Click to toogle the Configuration/Option Window from the Bossmod (DXE, DBM or Bigwigs) you have enabled."] = true
+L["Click to unlock moving ElvUI elements"] = true
+L["ElvUI Config"] = true
+L["Move UI"] = true
+L["Reload UI"] = true
+L["AddOns Manager"] = true
+L["Boss Mod"] = true
+
+--Unitframes--
+L["Additional unit frames options"] = true
+L["Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."] = true
+L["Player Frame Indicators"] = true
+L["Combat Icon"] = true
+L["Show/Hide combat icon on player frame."] = true
+L["Combat Position"] = true
+L["Set the point to show combat icon"] = true
+L["Classbar Energy"] = true
+L["Show/hide the text with exact number of energy (Solar/Lunar or Demonic Fury) on your Classbar."] = true
+L["Classbar Offset"] = true
+L["This options will allow you to detach your classbar from player's frame and move it in other location."] = true
+
+--Credits--
+L["ELVUI_SLE_CREDITS"] = "We would like to point out the following people for helping us create this addon with testing, coding, and other stuff."
+L["Submodules and Coding:"] = true
+L["ELVUI_SLE_CODERS"] = [=[Elv
+Tukz
+Azilroka
+Blazeflack
+Boradan
+Camealion
+Pvtschlag
+Sinaris
+Swordyy
 ]=]
-L["ELVUI_SLE_CREDITS"] = "I would like to point out the following people for helping me create this addon with testing, coding, and other stuff."
+L["Other Support:"] = true
 L["ELVUI_SLE_MISC"] = [=[BuG - for being french lol
-TheSamaKutra - some good ideas
-The rest of TukUI community - the existance of community itself
+TheSamaKutra
+The rest of TukUI community
 ]=]
-L["Enable/Disable the text fading in the chat window."] = "Enable/Disable the text fading in the chat window."
-L["Enable Sound"] = "Enable Sound"
-L["Enabling this will show exact hp numbers on player, focus, focus target, target of target, party, boss, arena and raid frames."] = "Enabling this will show exact hp numbers on player, focus, focus target, target of target, party, boss, arena and raid frames."
-L["Enabling this will show exact hp numbers on target frame."] = "Enabling this will show exact hp numbers on target frame."
-L["Enabling this will show exact power numbers on player, boss, arena, party and raid frames."] = "Enabling this will show exact power numbers on player, boss, arena, party and raid frames."
-L["Enabling this will show exact power numbers on target of target, focus and focus target frames."] = "Enabling this will show exact power numbers on target of target, focus and focus target frames."
-L["Full value"] = "Full value"
-L["Health Values"] = "Health Values"
-L["Hide in Combat"] = "Hide in Combat"
-L["Hide Microbar in combat."] = "Hide Microbar in combat."
-L["Hide microbar unless you mouse over it."] = "Hide microbar unless you mouse over it."
-L["Layout for UI buttons."] = "Layout for UI buttons."
-L["Left BG"] = "Left BG"
-L["Left Chat"] = "Left Chat"
-L["LFR Dragon Soul"] = "LFR Dragon Soul"
-L["LFR Lockdown"] = "LFR Lockdown"
-L["Microbar"] = "Microbar"
-L["Microbar Layout"] = "Microbar Layout"
-L["Module for adding micromenu to ElvUI."] = "Module for adding micromenu to ElvUI."
-L["More XP-Rep Info. Shown only when bars are on top."] = "More XP-Rep Info. Shown only when bars are on top."
-L["Mouse over"] = "Mouse over"
-L["Move UI"] = "Move UI"
-L["Name Highlight"] = "Name Highlight"
-L["Normal Frames"] = "Normal Frames"
-L["On Mouse Over"] = "On Mouse Over"
-L["Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."] = "Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."
-L["Other Support:"] = "Other Support:"
-L["Pet autocast corners"] = "Pet autocast corners"
-L["Player Frame Indicators"] = "Player Frame Indicators"
-L["Play sound when keyword is mentioned in chat."] = "Play sound when keyword is mentioned in chat."
-L["Positioning"] = "Positioning"
-L["Power Values"] = "Power Values"
-L["PvP Auto Release"] = "PvP Auto Release"
-L["PvP Position"] = "PvP Position"
-L["PvP text on mouse over"] = "PvP text on mouse over"
-L["Raid Marks"] = "Raid Marks"
-L["Raid Utility"] = "Raid Utility"
-L["Raid Utility Coordinates"] = "Raid Utility Coordinates"
-L["Reaction Name"] = "Reaction Name"
-L["Reload UI"] = "Reload UI"
-L[ [=[Replace icons with just letters.
-|cffFF0000Warning:|r this will disable original Blizzard's tooltips for microbar.]=] ] = [=[Replace icons with just letters.
-|cffFF0000Warning:|r this will disable original Blizzard's tooltips for microbar.]=]
-L["Repooc's Config"] = "Repooc's Config"
-L["Repooc's Defaults Set"] = "Repooc's Defaults Set"
-L["Rested Value"] = "Rested Value"
-L["Reversed Frames"] = "Reversed Frames"
-L["Right BG"] = "Right BG"
-L["Right Chat"] = "Right Chat"
-L["RU_DESC"] = [=[This config group allows you to freely move your Raid Utility button starting position.
-Moving Raid Utility with mouse is disabled.  Use the sliders to move the button around.]=]
-L["Set Alpha"] = "Set Alpha"
-L["Sets alpha of the microbar"] = "Sets alpha of the microbar"
-L["Set Scale"] = "Set Scale"
-L["Sets font size on DBM bars"] = "Sets font size on DBM bars"
-L["Sets height of the frame"] = "Sets height of the frame"
-L["Sets Scale of the microbar"] = "Sets Scale of the microbar"
-L["Sets size of auras. This setting is character based."] = "Sets size of auras. This setting is character based."
-L["Sets size of buttons"] = "Sets size of buttons"
-L["Sets size of this panel"] = "Sets size of this panel"
-L["Sets width of the frame"] = "Sets width of the frame"
-L["Sets X offset for microbar buttons"] = "Sets X offset for microbar buttons"
-L["Sets X offset of the frame"] = "Sets X offset of the frame"
-L["Sets X position of Raid Utility button."] = "Sets X position of Raid Utility button."
-L["Sets Y offset for microbar buttons"] = "Sets Y offset for microbar buttons"
-L["Sets Y offset of the frame"] = "Sets Y offset of the frame"
-L["Sets Y position of Raid Utility button."] = "Sets Y position of Raid Utility button."
-L["Set the point to show combat icon"] = "Set the point to show combat icon"
-L["Set the point to show pvp text"] = "Set the point to show pvp text"
-L["Set the texture to use in this frame.  Requirements are the same as the chat textures."] = "Set the texture to use in this frame.  Requirements are the same as the chat textures."
-L["Shadow & Light Edit"] = "Shadow & Light Edit"
-L["Shadow & Light Edit of ElvUI"] = "Shadow & Light Edit of ElvUI"
-L["Shadow & Light Settings"] = "Shadow & Light Settings"
-L["Show backdrop for micromenu"] = "Show backdrop for micromenu"
-L["Show/Hide LFR lockdown info in time datatext's tooltip."] = "Show/Hide LFR lockdown info in time datatext's tooltip."
-L["Show/Hide raid marks."] = "Show/Hide raid marks."
-L["Show/Hide Reaction status on bar."] = "Show/Hide Reaction status on bar."
-L["Show/Hide Rested value."] = "Show/Hide Rested value."
-L["Show/Hide Skada backdrop."] = "Show/Hide Skada backdrop."
-L["Show/hide the text with exact number of your Solar/Lunar energy on your Classbar."] = "Show/hide the text with exact number of your Solar/Lunar energy on your Classbar."
-L["Show/Hide this frame."] = "Show/Hide this frame."
-L["Show/Hide this panel."] = "Show/Hide this panel."
-L["Show/hide triangles in corners of autocastable buttons."] = "Show/hide triangles in corners of autocastable buttons."
-L["Show/Hide UI buttons."] = "Show/Hide UI buttons."
-L["Show/Hide XP-Rep Info."] = "Show/Hide XP-Rep Info."
-L["Show on mouse over."] = "Show on mouse over."
-L["Show PvP text on mouse over player frame."] = "Show PvP text on mouse over player frame."
-L["Skada Backdrop"] = "Skada Backdrop"
-L["SLE_AUTHOR_INFO"] = "Shadow & Light Edit by Darth Predator & Repooc"
-L["SLE_CONTACTS"] = [=[Bug reports, suggestions and other stuff accepted via:
-- Private Massage on TukUI.org to Darth Predator or Repooc
-- AddOn's page/ticket system on curse.com
-- AddOn's thread on tukui.org
-- AddOn's repo github.com]=]
-L["SLE_DESC"] = [=[This is and edit of ElvUI that adds some functionality to the original addon and changes some previously existed options.
-The edit doesn't change original files in any respect so you can freely disable it any time from youe addon manager without any risk.]=]
-L["SLE_Install_Text2"] = [=[Elv's Defaults button only needs to be clicked if you set one of our configurations and wish to reverse this choise.
-|cffFF0000Warning:|r this will reset everything to the high resolution normal layout.]=]
-L["SLE_LOGIN_MSG"] = [=[You are using |cff1784d1Shadow & Light Edit|r for ElvUI.
-If you wish to use the original ElvUI addon, disable this edit's plugin in your Addons manager.
-Have a nice day.]=]
-L["Sound that will be played."] = "Sound that will be played."
-L["Sound will be played only once in this number of seconds."] = "Sound will be played only once in this number of seconds."
-L["Submodules and Coding:"] = "Submodules and Coding:"
-L["Target full value"] = "Target full value"
-L["Texture"] = "Texture"
-L["This options will allow you to detach your classbar from player's frame and move it in other location."] = "This options will allow you to detach your classbar from player's frame and move it in other location."
-L["Timer"] = "Timer"
-L["TOON_DESC"] = "Sound options for the ElvUI's keyword coloring feature."
-L["Top_Center"] = "Top Panel"
-L["UI Buttons"] = "UI Buttons"
-L["X Position"] = "X Position"
-L["Xp-Rep Text"] = "Xp-Rep Text"
-L["XP-Rep Text mod by Benik"] = "XP-Rep Text mod by Benik"
-L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."] = "You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."
-L["Your version of ElvUI is older than recommended to use with Shadow & Light Edit. Please, download the latest version from tukui.org."] = "Your version of ElvUI is older than recommended to use with Shadow & Light Edit. Please, download the latest version from tukui.org."
-L["Y Position"] = "Y Position"
+
+--Tutorials--
+L["To enable full values of health/power on unitframes in Shadow & Light add \":sl\" to the end of the health/power tag.\nExample: [health:current:sl]."] = true
+
+--Movers--
+L["Pet Battle AB"] = true
\ No newline at end of file
diff --git a/ElvUI_SLE/locales/french.lua b/ElvUI_SLE/locales/french.lua
index bf51466..e808254 100644
--- a/ElvUI_SLE/locales/french.lua
+++ b/ElvUI_SLE/locales/french.lua
@@ -2,23 +2,3 @@
 local AceLocale = LibStub:GetLibrary("AceLocale-3.0");
 local L = AceLocale:NewLocale("ElvUI", "frFR");
 if not L then return; end
-
---Microbar--
-------------
-L["2 rows"] = "2 lignes"
-L["3 rows"] = "3 lignes"
-L["4 rows"] = "4 lignes"
-L["6 rows"] = "6 lignes"
-L["Change the positioning of buttons on Microbar."] = "Modifie le positionnement des boutons de la microbar"
-L["Hide in Combat"] = "Masquer en combat"
-L["Hide Microbar in combat."] = "Masquer la microbar en combat"
-L["Hide microbar unless you mouse over it."] = "Cacher la microbar à moins que la souris soit au dessus"
-L["Microbar"] = "Microbar"
-L["Microbar Layout"] = "Disposition de la microbar"
-L["Module for adding micromenu to ElvUI."] = "Module pour ajouter un micromenu à ElvUI"
-L["On Mouse Over"] = "Au passage de la souris"
-L["Set Alpha"] = "Transparence"
-L["Sets alpha of the microbar"] = "Régler la transparence de la microbar"
-L["Set Scale"] = "Taille"
-L["Sets Scale of the microbar"] = "Régler la taille de la microbar"
-L["Show backdrop for micromenu"] = "Afficher le fond de la microbar"
\ No newline at end of file
diff --git a/ElvUI_SLE/locales/german.lua b/ElvUI_SLE/locales/german.lua
index 2dd9409..8e661eb 100644
--- a/ElvUI_SLE/locales/german.lua
+++ b/ElvUI_SLE/locales/german.lua
@@ -3,22 +3,184 @@ local AceLocale = LibStub:GetLibrary("AceLocale-3.0")
 local L = AceLocale:NewLocale("ElvUI", "deDE")
 if not L then return end

---Microbar--
-------------
--- L["2 rows"] = ""
--- L["3 rows"] = ""
--- L["4 rows"] = ""
--- L["6 rows"] = ""
--- L["Change the positioning of buttons on Microbar."] = ""
--- L["Hide in Combat"] = ""
--- L["Hide Microbar in combat."] = ""
-L["Hide microbar unless you mouse over it."] = "Microleiste wird erst unter dem Mauszeiger eingeblendet."
-L["Microbar"] = "Microleiste"
--- L["Microbar Layout"] = ""
-L["Module for adding micromenu to ElvUI."] = "Modul fügt eine kleine Menüleite zu ElvUI hinzu."
-L["On Mouse Over"] = "Mouse Over Funktion"
-L["Set Alpha"] = "Transparenz Einstellung"
-L["Sets alpha of the microbar"] = "Transparenz der Microleiste einstellen"
-L["Set Scale"] = "Größe einstellen"
-L["Sets Scale of the microbar"] = "Größe der Microleiste einstellen"
-L["Show backdrop for micromenu"] = "Hintergrund der Microleiste anzeigen"
\ No newline at end of file
+--General--
+L["Shadow & Light Edit"] = "Schatten & Licht Edit"
+L["Shadow & Light Edit of ElvUI"] = "Schatten & Licht Edit von ElvUI"
+L["SLE_DESC"] = [=[Das ist ein Edit von ElvUI das einige Funktionen zum Original Addon hinzufügt und bereits existierende Optionen ändert.
+Der Edit ändert in keiner Hinsicht Originale Dateien so das du es ohne Probleme aus deinem Addon Manager deaktivieren kannst.]=]
+L["LFR Lockdown"] = "LFR Abklingzeiten"
+L["Show/Hide LFR lockdown info in time datatext's tooltip."] = "Zeige/Verstecke die LFR Abklingzeiten Info im Zeit Infotext Tooltip."
+L["PvP Auto Release"] = "PvP Auto Freilassen"
+L["Automatically release body when killed inside a battleground."] = "Geist automatisch freilassen wenn man innerhalb eines Schlachtfeldes stirbt."
+L["Pet autocast corners"] = "Begleiter autozauber Ecken"
+L["Show/hide triangles in corners of autocastable buttons."] = "Zeige/Verstecke dreiecke in den Ecken der automatisch zaubernden Tasten."
+L["SLE_LOGIN_MSG"] = [=[Du benutzt |cff1784d1Schatten & Licht Edit|r für ElvUI.
+Möchtest du das Original ElvUI Addon benutzen, deaktiviere das Edit Plugin aus deinem Addon Manager.
+Habt einen schönen Tag.]=]
+L["Your version of ElvUI is older than recommended to use with Shadow & Light Edit. Please, download the latest version from tukui.org."] = "Deine Version von Elvui ist älter als die empfohlene zum benutzen mit Schatten & Licht Edit. Bitte, downloade die letzte Version von tukui.org."
+
+--Install--
+L["Shadow & Light Settings"] = "Schatten & Licht Einstellungen"
+L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."] = "Du kannst nun eine Einstellugen eines Authors wählen. Das wird nicht nur die Postitionierung von einigen Elementen sondern auch eine reihe anderer Optionen geändert."
+L["SLE_Install_Text2"] = [=[Elv's Standart Taste muss nur angeklickt werden um eine unserer Konfigurationen rückgängig zu machen.
+|cffFF0000Warnung:|r das wird alles zurücksetzen auf das Hohe Auflösungs Layout.]=]
+L["Darth's Config"] = "Darth's Einstellungen"
+L["Darth's Defaults Set"] = "Darth's Standarts gesetzt"
+L["Elv's Defaults"] = "Elv's Standarts"
+L["Elv's Defaults Set"] = "Elv's Standarts gesetzt"
+L["Repooc's Config"] = "Repooc's Einstellungen"
+L["Repooc's Defaults Set"] = "Repooc's Standarts gesetzt"
+
+--Auras--
+L["Auras Options"] = "Auren Optionen"
+L["Additional Auras Options"] = "Zusätzliche Auren Optionen"
+L["Options for customizing auras near the minimap."] = "Optionen für anpassungen der Auren nahe der Minimap."
+L["Caster Name"] = "Zauber Name"
+L["Enabling this will show caster name in the buffs and debuff icons."] = "Bei aktivierung wird der Name des zaubernden in den Stärkungs und Schwächungs Symbolen angezeigt."
+
+--Backgroungds--
+L["Backgrounds"] = "Hintergründe"
+L["Additional Background Panels"] = "Zusätzliche Hintergrund Leisten"
+L["BG_DESC"] = "BG_DESC"
+L["Bottom BG"] = "Unten BG"
+L["Left BG"] = "Linker BG"
+L["Right BG"] = "Rechter BG"
+L["Actionbar BG"] = "Aktionsleisten BG"
+L["Show/Hide this frame."] = "Zeige/Verstecke dieses Fenster."
+L["Sets width of the frame"] = "Wähle die breite dieses Fensters"
+L["Sets height of the frame"] = "Wähle die höhe dieses Fensters"
+L["Sets X offset of the frame"] = "Wähle den X Versatz für dieses Fenster"
+L["Sets Y offset of the frame"] = "Wähle den Y Versatz für dieses Fenster"
+L["Texture"] = "Textur"
+L["Set the texture to use in this frame.  Requirements are the same as the chat textures."] = "Wähle die Textur die für dieses Fenster benutzt wird. Empfohlen wird die selbe wie die Chat Textur."
+L["Backdrop Template"] = "Hintergrund Template"
+L["Change the template used for this backdrop."] = "Wähle das Template das für den Hintergrund benutzt wird."
+L["Default"] = "Standart"
+L["Transparent"] = "Transparent"
+
+--Chat--
+L["Chat Options"] = "Chat Optionen"
+L["Chat Fade"] = "Chat verblassen"
+L["Enable/Disable the text fading in the chat window."] = "Aktiviere/Deaktiviere das Text verblassen für das Chat Fenster."
+L["Chat Editbox History"] = "Chat Editbox History"
+L["Amount of messages to save. Set to 0 to disable."] = "Anzahl der Nachrichten die gespeichert werden. Wähle 0 zum deaktivieren."
+L["Editbox Position"] = "Editbox Position"
+L["Select if the editbox will be above or below chat."] = "Wähle ob die Editbox über oder unter dem Chat angezeigt wird."
+
+--Datatexts--
+L["LFR Dragon Soul"] = "LFR Drachenseele"
+L["SLE_AUTHOR_INFO"] = "Schatten & Licht Edit von Darth Predator & Repooc"
+L["SLE_CONTACTS"] = [=[Bug berichte, Vorschläge und andere Sachen akzeptiert via:
+- Privat Nachricht auf TukUI.org zu Darth Predator oder Repooc
+- AddOn's Seite/ticket system auf curse.com
+- AddOn's Beitrag auf tukui.org
+- AddOn's repo github.com]=]
+L["DP_1"] = "Infotext Leiste 1"
+L["DP_2"] = "Infotext Leiste 2"
+L["DP_3"] = "Infotext Leiste 3"
+L["DP_4"] = "Infotext Leiste 4"
+L["DP_5"] = "Infotext Leiste 5"
+L["DP_6"] = "Infotext Leiste 6"
+L["Bottom_Panel"] = "Untere Leiste"
+L["Top_Center"] = "Obere Leise"
+L["Left Chat"] = "Linker Chat"
+L["Right Chat"] = "Rechter Chat"
+L["Datatext Panels"] = "Infotext Leisten"
+L["Additional Datatext Panels"] = "Zusätzliche Infotext Leisten"
+L["DP_DESC"] = [=[Zusätzliche Infotext Leisten.
+8 Leisten mit 20 Infotext Punkten ingesamt und ein dashboard mit 4 Status Leisten.
+You can't disable chat panels.]=]
+L["Dashboard"] = "Dashboard"
+L["Show/Hide dashboard."] = "Zeige/Verstecke dashboard."
+L["Dashboard Panels Width"] = "Dashboard Leisten Breite"
+L["Sets size of dashboard panels."] = "Wähle die Größe der dashboard Leisten."
+L["Show/Hide this panel."] = "Zeige/Verstecke diese Leiste."
+L["Sets size of this panel"] = "Wähle die Größe dieser Leiste"
+
+--Exp/Rep Bar--
+L["Xp-Rep Text"] = "Xp-Rruf Text"
+L["Additional options for XP/Rep bars text"] = "Zusätzliche Optionen für XP/Ruf Leisten Text"
+L["Full value on Exp Bar"] = "Voller Wert auf Exp Leiste"
+L["Changes the way text is shown on exp bar."] = "Ändert die Art der Anzeige für die Exp Leiste."
+L["Full value on Rep Bar"] = "Voller Wert auf Ruf Leiste"
+L["Changes the way text is shown on rep bar."] = "Ändert die Art der Anzeige für die Ruf Leiste."
+
+--Marks--
+L["Raid Marks"] = "Schlachtzugs Markierungen"
+L["Show/Hide raid marks."] = "Zeige/Verstecke Schlachtzugs Markierungen"
+L["Sets size of buttons"] = "Wähle die größe der Tasten" --Also used in UI buttons
+L["Direction"] = "Richtung"
+L["Change the direction of buttons growth from the skull marker"] = "Wähle die Richtung des Tasten wachstums von der Totenkopf Markierung"
+
+--Raid Utility--
+L["Raid Utility"] = "Raid Utility"
+L["Raid Utility Coordinates"] = "Raid Utility Koordinaten"
+L["RU_DESC"] = [=[Diese Konfigurations Gruppe lässt dich die Raid Utility Taste positionieren.
+Bewege Raid Utility mit Maus ist deaktiviert.  Benutze die Regler um die Taste zum bewegen.]=]
+L["X Position"] = "X Position"
+L["Y Position"] = "Y Position"
+L["Sets X position of Raid Utility button."] = "Wähle die X position der Raid Utility Taste."
+L["Sets Y position of Raid Utility button."] = "Wähle die Y position der Raid Utility Taste."
+L["Show Button"] = "Zeige taste"
+L["Show/hide Raid Utility button.\nThis option is not permanent. The button will act as normal when joining/leaving groups."] = "Zeige/Verstecke die Raid Utility Taste.\nDiese Option ist nicht permanent. Diese Taste wird normal angezeigt wenn man einer Gruppe beitritt oder verlässt."
+
+--Skins--
+L["This options require Azilroka's skin pack to work."] = "Diese Option benötigt Azilroka's Skin Packet zum funktionieren."
+L["Sets font size on DBM bars"] = "Wähle die Schriftgröße der DBM Leisten"
+
+--UI buttons--
+L["UI Buttons"] = "UI tasten"
+L["Additional menu with useful buttons"] = "Zusätzliches Menü mit nützlichen Tasten"
+L["Show/Hide UI buttons."] = "Zeige/Verstecke die UI Tasten."
+L["Mouse over"] = "Mouse over"
+L["Show on mouse over."] = "Zeige auf mouse over."
+L["Buttons position"] = "Tasten Position"
+L["Layout for UI buttons."] = "Layout für die UI tasten."
+L["Click to reload your interface"] = "Klicken zum neuladen deines Interface"
+L["Click to toggle config window"] = "Klicken zum umschalten des Konfigurations Fensters"
+L["Click to toogle the AddOn Manager frame (stAddOnManager or ACP) you have enabled."] = "Klick zum umschalten des AddOn Manager Fensters (stAddOnManager oder ACP) wenn du es aktiviert hast."
+L["Click to toogle the Configuration/Option Window from the Bossmod (DXE, DBM or Bigwigs) you have enabled."] = "Klicke zum umschalten des Konfigurations/Options Fenster von dem Bossmodul (DXE, DBM oder Bigwigs) wenn du es aktiviert hast."
+L["Click to unlock moving ElvUI elements"] = "Klicke um die ElvUI Elemente zu bewegen"
+L["ElvUI Config"] = "ElvUI Konfiguration"
+L["Move UI"] = "Bewege UI"
+L["Reload UI"] = "UI neuladen"
+L["AddOns Manager"] = "AddOns Manager"
+L["Boss Mod"] = "Boss Modul"
+
+--Unitframes--
+L["Additional unit frames options"] = "Zusätzliche Einheitenfenster Optionen"
+L["Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."] = "Optionen für anpassung der Einheitenfenster. Bitte ändere diese Einstellungen nicht wenn ElvUI's Test Fenster für Bosse und Arena Fenster angezeigt werden. Das macht sie unsichtbar bis zum wieder umschalten."
+L["Player Frame Indicators"] = "Spieler Fenster Indikator"
+L["Combat Icon"] = "Kampf Symbol"
+L["Show/Hide combat icon on player frame."] = "Zeige/Verstecke das Kampf Symbol auf dem Spieler Fenster."
+L["Combat Position"] = "Kampf Position"
+L["Set the point to show combat icon"] = "Wähle den Punkt zum anzeigen des Kampf Symboles"
+L["Classbar Energy"] = "Klassenleisten Energie"
+L["Show/hide the text with exact number of energy (Solar/Lunar or Demonic Fury) on your Classbar."] = "Zeige/Verstecke den Text mit exakten Nummern der Energie (Solar/Lunar oder Demonischer Furor) auf deiner Klassenleiste."
+L["Classbar Offset"] = "Klassenleisten Versatz"
+L["This options will allow you to detach your classbar from player's frame and move it in other location."] = "Diese Option wird deine Klassenleiste von dem Spieler Fenster abheften und bewege diese zu einer anderen Lage."
+
+--Credits--
+L["ELVUI_SLE_CREDITS"] = "Wir möchten an diesem Punkt folgenden Personen für ihre Unterstützung danken für Prüfung, Programmierung und anderen Sachen."
+L["Submodules and Coding:"] = "Submodule und Programmierung:"
+L["ELVUI_SLE_CODERS"] = [=[Elv
+Tukz
+Azilroka
+Blazeflack
+Boradan
+Camealion
+Pvtschlag
+Sinaris
+Swordyy
+]=]
+L["Other Support:"] = "Anderer Support:"
+L["ELVUI_SLE_MISC"] = [=[BuG - für französisch sein lol
+TheSamaKutra
+Der Rest der TukUI community
+]=]
+
+--Tutorials--
+L["To enable full values of health/power on unitframes in Shadow & Light add \":sl\" to the end of the health/power tag.\nExample: [health:current:sl]."] = "Zum aktivieren des vollen Wertes von Leben/Kraft auf den Einheitenfestern in Schatten & Licht füge folgendes hinzu \":sl\" an das ende des Leben/Kraft tags.\nBeispiel: [health:current:sl]."
+
+--Movers--
+L["Pet Battle AB"] = "Haustierkampf AB"
diff --git a/ElvUI_SLE/locales/korean.lua b/ElvUI_SLE/locales/korean.lua
index 1a92446..50e4e61 100644
--- a/ElvUI_SLE/locales/korean.lua
+++ b/ElvUI_SLE/locales/korean.lua
@@ -1,23 +1,3 @@
 local AceLocale = LibStub:GetLibrary("AceLocale-3.0")
 local L = AceLocale:NewLocale("ElvUI", "koKR")
 if not L then return end
-
---Microbar--
-------------
-L["2 rows"] = "2 행"
-L["3 rows"] = "3 행"
-L["4 rows"] = "4 행"
-L["6 rows"] = "6 행"
-L["Change the positioning of buttons on Microbar."] = "Microbar에있는 단추의 위치를 변경합니다."
-L["Hide in Combat"] = "전투시 숨기기"
-L["Hide Microbar in combat."] = "전투 Microbar."
-L["Hide microbar unless you mouse over it."] = "마우스 오버시 마이크로 바 보이기."
-L["Microbar"] = "마이크로 바"
-L["Microbar Layout"] = "Microbar 레이아웃"
-L["Module for adding micromenu to ElvUI."] = "micromenu에 대한 배경을 표시"
-L["On Mouse Over"] = "마우스 오버"
-L["Set Alpha"] = "알파로 설정"
-L["Sets alpha of the microbar"] = "microbar의 알파를 설정합니다"
-L["Set Scale"] = "크기를 설정"
-L["Sets Scale of the microbar"] = "microbar 규모를 설정"
-L["Show backdrop for micromenu"] = "micromenu에 대한 배경을 표시"
\ No newline at end of file
diff --git a/ElvUI_SLE/locales/russian.lua b/ElvUI_SLE/locales/russian.lua
index 7bb348c..3eb4a6f 100644
--- a/ElvUI_SLE/locales/russian.lua
+++ b/ElvUI_SLE/locales/russian.lua
@@ -1,189 +1,184 @@
---Russian localization
-local AceLocale = LibStub:GetLibrary("AceLocale-3.0")
-local L = AceLocale:NewLocale("ElvUI", "ruRU")
-if not L then return; end
-
-L["2 rows"] = "В 2 ряда"
-L["3 rows"] = "В 3 ряда"
-L["4 rows"] = "В 4 ряда"
-L["6 rows"] = "В 6 рядов"
-L["Actionbar BG"] = "Верхний фон"
-L["Additional Background Panels"] = "Дополнительные фреймы для фонов"
-L["Additional Datatext Panels"] = "Дополнительные панели инфо-текстов"
-L["Additional menu with useful buttons"] = "Дополнительное меню с полезными кнопками"
-L["Additional unit frames options"] = "Дополнительные опции рамок юнитов"
-L["AddOns Manager"] = "Менеджер аддонов"
-L["Amount of messages to save. Set to 0 to disable."] = "Количество сообщений, введенных вами, которое будет сохранено между сеансами"
-L["As Letters"] = "В виде букв"
-L["Aura Size"] = "Размер баффов"
-L["Automatically release body when killed inside a battleground."] = "Автоматически выходить из тела на полях боя."
-L["Backgrounds"] = "Фоновые фреймы"
-L["Balance Power Text"] = "Текст энергии баланса"
-L["BG_DESC"] = "Модуль для создания дополнительных фреймов, которые могут использоваться в качестве фонов для чего-нибудь."
-L["Boss Mod"] = "Босс мод"
-L["Bottom BG"] = "Нижний фон"
-L["Bottom_Panel"] = "Нижняя панель"
-L["Buttons position"] = "Положение кнопок"
-L["Change the direction of buttons growth from the skull marker"] = "Изменяет направление роста кнопок от метки \"череп\"."
-L["Change the positioning of buttons on Microbar."] = "Изменяет позиционирование кнопок в микроменю."
-L["Chat Editbox History"] = "История чата"
-L["Chat Fade"] = "Затухание чата"
-L["Chat Options"] = "Настройки чата"
-L["Classbar Offset"] = "Отступ полосы класса"
-L["Click to reload your interface"] = "Нажмите для перезагрузки интерфейса"
-L["Click to toggle config window"] = "Нажмите для отображения окна настроек"
-L["Click to toogle the AddOn Managerframe (stAddOnManager or ACP) you have enabled."] = "Нажмите для отображения окна менеджера аддонов. Поддерживаются stAddOnManager, ACP"
-L["Click to toogle the Configuration/Option Window from the Bossmod (DXE, DBM or Bigwigs) you have enabled."] = "Нажмите для отображения окна настроек включенного босс мода. Поддерживаются DXE, DBM, Bigwigs."
-L["Click to unlock moving ElvUI elements"] = "Нажмите для входа в режим перемещения элементов"
-L["Combat Position"] = "Иконка боя"
-L["Darth's Config"] = "Опции Darth'а"
-L["Darth's Defaults Set"] = "Установлены настройки Darth'а"
-L["Datatext Panels"] = "Панели инфо-текстов"
-L["Detailed"] = "Подробно"
-L["Detailed Options"] = "Опции подробного текста"
-L["Direction"] = "Направление"
-L["DP_1"] = "Панель 1"
-L["DP_2"] = "Панель 2"
-L["DP_3"] = "Панель 3"
-L["DP_4"] = "Панель 4"
-L["DP_5"] = "Панель 5"
-L["DP_6"] = "Панель 6"
-L["DP_DESC"] = [=[Дополнительные панели под информационные тексты.
-Всего здесь 8 дополнительных панелей и 20 дополнительных слотов под инфо-тексты.
-Верхнюю панель отключить нельзя, ровно как и панели на чатах.]=]
-L["Elv's Defaults"] = "Умолчания ElvUI"
-L["Elv's Defaults Set"] = "Установлены настройки по умолчанию"
-L["ElvUI Config"] = "Настройка ElvUI"
-L["ELVUI_SLE_CODERS"] = [=[Benik - ядро функции текста полос опыта/репутации
-Tukz - помощь с oUF
-Elv - значительное облегчение создания редакции
-Pvtschlag - плагин Necrotic Strike для oUF
-Blazeflack - помощь с хуками, модулями и профилями
-Camealion - обучение Дарта созданию скинов
-Swordyy - идея меню интерфейса
-Azilroka@US-Daggerspine - ядро скинов для ExtVendor и Altoholic, помощь со скином MoveAnything
-Pat - скины меню и опций, пропущенных Элвом
-Boradan - идея перемещения полос класса
-]=]
-L["ELVUI_SLE_CREDITS"] = "Я бы хотел отметить следующих людей, которые помогли мне сделать этот аддон посредством тестирования, кода и прочего."
-L["ELVUI_SLE_MISC"] = [=[BuG - за то, что он француз :D
-TheSamaKutra - пара хороших идей
-Соббщество TukUI - просто тем, что оно есть
-]=]
-L["Enable/Disable the text fading in the chat window."] = "Включит/выключить постепенное исчезновение строк чата со временем."
-L["Enable Sound"] = "Включить звук"
-L["Enabling this will show exact hp numbers on player, focus, focus target, target of target, party, boss, arena and raid frames."] = "Отобразить точное значение здоровья на рамках игрока, фокуса, цели фокуса, цели цели, боссов, арены, группы и рейда."
-L["Enabling this will show exact hp numbers on target frame."] = "Отобразить точное значение здоровья цели"
-L["Enabling this will show exact power numbers on player, boss, arena, party and raid frames."] = "Отобразить точное значение ресурса для игрока, боссов, арены, группы и рейда"
-L["Enabling this will show exact power numbers on target of target, focus and focus target frames."] = "Отобразить точное значение ресурса для цели цели, фокуса и цели фокуса."
-L["Full value"] = "Полные значения"
-L["Health Values"] = "Значения здоровья"
-L["Hide in Combat"] = "Скрывать в бою"
-L["Hide Microbar in combat."] = "Скрывать микроменю в бою."
-L["Hide microbar unless you mouse over it."] = "Показывать меню при наведении курсора."
-L["Layout for UI buttons."] = "Режим положения кнопок"
-L["Left BG"] = "Левый фон"
-L["Left Chat"] = "Левый чат"
-L["LFR Dragon Soul"] = "Душа Дракона ЛФР"
-L["LFR Lockdown"] = "Состояние ЛФР"
-L["Microbar"] = "Микроменю"
-L["Microbar Layout"] = "Вид Микроменю"
-L["Module for adding micromenu to ElvUI."] = "Модуль для добавления микроменю в ElvUI."
-L["More XP-Rep Info. Shown only when bars are on top."] = "Более подробная информация в тексте. Отображается только при нахождении полос в верху экрана."
-L["Mouse over"] = "При наведении"
-L["Move UI"] = "Разблокировать элементы"
-L["Name Highlight"] = "Выделение имени"
-L["Normal Frames"] = "Нормальные рамки"
-L["On Mouse Over"] = "При наведении"
-L["Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."] = "Опции для дополнительной настройки рамок юнитов. Пожалуйста, не изменяйте эти настройки в то же время, кода включен тестовый режим рамок боссов и арены в ElvUI. Это сделает их невидимыми до повторного включения."
-L["Other Support:"] = "Прочая поддержка:"
-L["Pet autocast corners"] = "Автокаст питомца"
-L["Player Frame Indicators"] = "Индикаторы игрока"
-L["Play sound when keyword is mentioned in chat."] = "Проигрывать звук, когда в чате обнаруживается ключевое слово."
-L["Positioning"] = "Позиционирование"
-L["Power Values"] = "Значения ресурса"
-L["PvP Auto Release"] = "Автоматический выход из тела"
-L["PvP Position"] = "Позизия PvP"
-L["PvP text on mouse over"] = "ПвП текст при наведении"
-L["Raid Marks"] = "Рейдовые Метки"
-L["Raid Utility"] = "Управление рейдом"
-L["Raid Utility Coordinates"] = "Позиция Управления Рейдом"
-L["Reaction Name"] = "Реакция"
-L["Reload UI"] = "Перезагрузить интерфейс"
-L[ [=[Replace icons with just letters.
-|cffFF0000Warning:|r this will disable original Blizzard's tooltips for microbar.]=] ] = [=[Заменяет иконки на латинские буквы.
-|cffFF0000Внимание:|r это действие отключит стандартные подсказки Blizzard для микроменю.]=]
-L["Repooc's Config"] = "Опции Repooc'а"
-L["Repooc's Defaults Set"] = "Установлены настройки Repooc'а"
-L["Rested Value"] = "Бодрость"
-L["Reversed Frames"] = "Обратные рамки"
-L["Right BG"] = "Правый фон"
-L["Right Chat"] = "Правый чат"
-L["RU_DESC"] = [=[Эти опции позволяют вам свободно перемещать кнопку Управления Рейдом.
-Передвижение кнопки при поможи мыши отключено. Для задания положения используйте бегунки ниже.]=]
-L["Set Alpha"] = "Прозрачность"
-L["Sets alpha of the microbar"] = "Устанавливает прозрачность меню"
-L["Set Scale"] = "Масштаб"
-L["Sets font size on DBM bars"] = "Устанавливает размер текста на полосах DBM"
-L["Sets height of the frame"] = "Устанавливает высоту фрейма"
-L["Sets Scale of the microbar"] = "Устанавливает масштаб микроменю"
-L["Sets size of auras. This setting is character based."] = "Устанавливает размер баффов в фрейме Blizzard. Эта настройка уникальна для персонажа"
-L["Sets size of buttons"] = "Устанавливает размер кнопок"
-L["Sets size of this panel"] = "Установить ширину панели"
-L["Sets width of the frame"] = "Устанавливает ширину фрейма"
-L["Sets X offset for microbar buttons"] = "Устанавливает отступ кнопок микроменю по оси Х"
-L["Sets X offset of the frame"] = "Устанавливает смещение по оси X"
-L["Sets X position of Raid Utility button."] = "Задает координаты Управления рейдом по оси X."
-L["Sets Y offset for microbar buttons"] = "Устанавливает отступ кнопок микроменю по оси Y"
-L["Sets Y offset of the frame"] = "Устанавливает смещение по оси Y"
-L["Sets Y position of Raid Utility button."] = "Задает координаты Управления рейдом по оси Y."
-L["Set the point to show combat icon"] = "Устанавливает позицию индикатора боя."
-L["Set the point to show pvp text"] = "Устанавливает позицию индикатора ПвП."
-L["Set the texture to use in this frame.  Requirements are the same as the chat textures."] = "Устанавливает текстуру этого фрейма. Требования к текстуре такие же, как для текстур чата."
-L["Shadow & Light Edit"] = "Редакция Тень и Свет"
-L["Shadow & Light Edit of ElvUI"] = "Редакция Тень и Свет для ElvUI"
-L["Shadow & Light Settings"] = "Установки Тени и Света"
-L["Show backdrop for micromenu"] = "Показывать фон микроменю"
-L["Show/Hide LFR lockdown info in time datatext's tooltip."] = "Отображать/скрывать информацию о сохранении ЛФР"
-L["Show/Hide raid marks."] = "Показать/скрыть фрейм рейдовых меток."
-L["Show/Hide Reaction status on bar."] = "Отображает статус реакции на полосе в виде текста."
-L["Show/Hide Rested value."] = "Показать/скрыть значение бодрости."
-L["Show/Hide Skada backdrop."] = "Показать/скрыть фон окон аддона Skada."
-L["Show/hide the text with exact number of your Solar/Lunar energy on your Classbar."] = "Показать/скрыть текст с точным значением Лунной/Солнечной энергии на полосе класса."
-L["Show/Hide this frame."] = "Показать/скрыть этот фрейм."
-L["Show/Hide this panel."] = "Показать/скрыть эту панель."
-L["Show/hide triangles in corners of autocastable buttons."] = "Показать/скрыть треугольники в углах кнопок с автоматически применяемыми заклинаниями питомца."
-L["Show/Hide UI buttons."] = "Показать/скрыть меню"
-L["Show/Hide XP-Rep Info."] = "Показать/скрыть текст на полосах."
-L["Show on mouse over."] = "Отображать при наведении мыши."
-L["Show PvP text on mouse over player frame."] = "Отображать ПвП текст при наведении мыши на фрейм игрока. При отключении будет отображаться всегда."
-L["Skada Backdrop"] = "Фон Skada"
-L["SLE_AUTHOR_INFO"] = "Редакция \"Тень и Свет\" от Darth Predator и Repooc"
-L["SLE_CONTACTS"] = [=[При возникновении вопросов, предложений и прочего обращаться:
-- Личное сообщение на форуме TukUI (tukui.org), ник Darth Predator или Repooc
-- Страница/система тикетов на curse.com
-- Тема аддона на tukui.org
-- Репозиторий проекта на github.com]=]
-L["SLE_DESC"] = [=[Это редакция ElvUI добавляет некоторые новые функции к оригинальному аддону и изменяет функционал некоторых старых опций.
-Эта редакция ни в коем виде не изменяет оригинальные файлы, так что вы можете спокойно отключить ее в вашем менеджере аддонов по желанию.]=]
-L["SLE_Install_Text2"] = [=[Кнопку "Умолчания ElvUI" требуется нажимать только в том случае, если вы выбрали одну из наших конфигураций и желаете обратить эти изменения.
-|cffFF0000Внимание:|r это действие сбросит все на настройки для нормального расположения высокого разрешения.']=]
-L["SLE_LOGIN_MSG"] = [=[Вы используете редакцию ElvUI под названием |cff1784d1"Тень и Свет"|r.
-Если вы хотите использовать оригинальный ElvUI, просто отключите плагин этой редакции в вашем менеджере аддонов.
-Приятной игры.]=]
-L["Sound that will be played."] = "Звук, который будет проигрываться."
-L["Sound will be played only once in this number of seconds."] = "Звук будет проигрываться только единожды за установленный промежуток времени"
-L["Submodules and Coding:"] = "Субмодули и кодинг:"
-L["Target full value"] = "Полное значение у цели"
-L["Texture"] = "Текстура"
-L["This options will allow you to detach your classbar from player's frame and move it in other location."] = "Эти опции позволят вам открепить полосу класса от рамки игрока и передвинуть ее в другое место."
-L["Timer"] = "Таймер"
-L["TOON_DESC"] = "Опции звукового сопровождения окрашивания ключевых слов в ElvUI."
-L["Top_Center"] = "Верхняя панель"
-L["UI Buttons"] = "Меню интерфейса"
-L["X Position"] = "Позиция X"
-L["Xp-Rep Text"] = "Текст Опыта/Репутации"
-L["XP-Rep Text mod by Benik"] = "Мод текста опыта/репутации от Benik'а"
-L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."] = "Вы можете выбрать использование одного из набора конфигурации от авторов. Это изменит не только расположение ваших рамок и панелей, но и некоторого количества других опций."
-L["Your version of ElvUI is older than recommended to use with Shadow & Light Edit. Please, download the latest version from tukui.org."] = "Ваша версия ElvUI старее, чем рекомендованная для использования с редакцией Тень и Свет. Пожалуйста, скачайте последнюю версию с tukui.org."
-L["Y Position"] = "Позиция Y"
+--Russian localization
+local AceLocale = LibStub:GetLibrary("AceLocale-3.0")
+local L = AceLocale:NewLocale("ElvUI", "ruRU")
+
+if not L then return; end
+
+--General--
+L["Shadow & Light Edit"] = "Редакция Тень и Свет"
+L["Shadow & Light Edit of ElvUI"] = "Редакция Тень и Свет для ElvUI"
+L["SLE_DESC"] = [=[Это редакция ElvUI добавляет некоторые новые функции к оригинальному аддону и изменяет функционал некоторых старых опций.
+Эта редакция ни в коем виде не изменяет оригинальные файлы, так что вы можете спокойно отключить ее в вашем менеджере аддонов по желанию.]=]
+L["LFR Lockdown"] = "Состояние ЛФР"
+L["Show/Hide LFR lockdown info in time datatext's tooltip."] = "Отображать/скрывать информацию о сохранении ЛФР"
+L["PvP Auto Release"] = "Автоматический выход из тела"
+L["Automatically release body when killed inside a battleground."] = "Автоматически выходить из тела на полях боя."
+L["Pet autocast corners"] = "Автокаст питомца"
+L["Show/hide triangles in corners of autocastable buttons."] = "Показать/скрыть треугольники в углах кнопок с автоматически применяемыми заклинаниями питомца."
+L["SLE_LOGIN_MSG"] = [=[Вы используете редакцию ElvUI под названием |cff1784d1"Тень и Свет"|r.
+Если вы хотите использовать оригинальный ElvUI, просто отключите плагин этой редакции в вашем менеджере аддонов.
+Приятной игры.]=]
+L["Your version of ElvUI is older than recommended to use with Shadow & Light Edit. Please, download the latest version from tukui.org."] = "Ваша версия ElvUI старее, чем рекомендованная для использования с редакцией Тень и Свет. Пожалуйста, скачайте последнюю версию с tukui.org."
+
+--Install--
+L["Shadow & Light Settings"] = "Установки Тени и Света"
+L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."] = "Вы можете выбрать использование одного из набора конфигурации от авторов. Это изменит не только расположение ваших рамок и панелей, но и некоторого количества других опций."
+L["SLE_Install_Text2"] = [=[Кнопку "Умолчания ElvUI" требуется нажимать только в том случае, если вы выбрали одну из наших конфигураций и желаете обратить эти изменения.
+|cffFF0000Внимание:|r это действие сбросит все на настройки для нормального расположения высокого разрешения.']=]
+L["Darth's Config"] = "Опции Darth'а"
+L["Darth's Defaults Set"] = "Установлены настройки Darth'а"
+L["Elv's Defaults"] = "Умолчания ElvUI"
+L["Elv's Defaults Set"] = "Установлены настройки по умолчанию"
+L["Repooc's Config"] = "Опции Repooc'а"
+L["Repooc's Defaults Set"] = "Установлены настройки Repooc'а"
+
+--Auras--
+L["Options for customizing auras near the minimap."] = "Опции для настройки аур около миникарты"
+L["Caster Name"] = "Имя заклинателя"
+L["Enabling this will show caster name in the buffs and debuff icons."] = "При включении будет отображать в подсказке к ауре имя того, кто наложил ее"
+
+--Backgroungds--
+L["Backgrounds"] = "Фоновые фреймы"
+L["Additional Background Panels"] = "Дополнительные фреймы для фонов"
+L["BG_DESC"] = "Модуль для создания дополнительных фреймов, которые могут использоваться в качестве фонов для чего-нибудь."
+L["Bottom BG"] = "Нижний фон"
+L["Left BG"] = "Левый фон"
+L["Right BG"] = "Правый фон"
+L["Actionbar BG"] = "Верхний фон"
+L["Show/Hide this frame."] = "Показать/скрыть этот фрейм."
+L["Sets width of the frame"] = "Устанавливает ширину фрейма"
+L["Sets height of the frame"] = "Устанавливает высоту фрейма"
+L["Sets X offset of the frame"] = "Устанавливает смещение по оси X"
+L["Sets Y offset of the frame"] = "Устанавливает смещение по оси Y"
+L["Texture"] = "Текстура"
+L["Set the texture to use in this frame.  Requirements are the same as the chat textures."] = "Устанавливает текстуру этого фрейма. Требования к текстуре такие же, как для текстур чата."
+L["Backdrop Template"] = "Тип фона"
+L["Change the template used for this backdrop."] = "Измените шаблон, используемый при создании этого фона"
+L["Default"] = "Обычный"
+L["Transparent"] = "Прозрачный"
+
+--Chat--
+L["Chat Options"] = "Настройки чата"
+L["Chat Fade"] = "Затухание чата"
+L["Enable/Disable the text fading in the chat window."] = "Включит/выключить постепенное исчезновение строк чата со временем."
+L["Chat Editbox History"] = "История чата"
+L["Amount of messages to save. Set to 0 to disable."] = "Количество сообщений, введенных вами, которое будет сохранено между сеансами"
+L["Editbox Position"] = "Позиция поля ввода"
+L["Select if the editbox will be above or below chat."] = "Определяет будет ли поле ввода отображаться над или под чатом."
+
+--Datatexts--
+L["LFR Dragon Soul"] = "Душа Дракона ЛФР"
+L["SLE_AUTHOR_INFO"] = "Редакция \"Тень и Свет\" от Darth Predator и Repooc"
+L["SLE_CONTACTS"] = [=[При возникновении вопросов, предложений и прочего обращаться:
+- Личное сообщение на форуме TukUI (tukui.org), ник Darth Predator или Repooc
+- Страница/система тикетов на curse.com
+- Тема аддона на tukui.org
+- Репозиторий проекта на github.com]=]
+L["DP_1"] = "Панель 1"
+L["DP_2"] = "Панель 2"
+L["DP_3"] = "Панель 3"
+L["DP_4"] = "Панель 4"
+L["DP_5"] = "Панель 5"
+L["DP_6"] = "Панель 6"
+L["Bottom_Panel"] = "Нижняя панель"
+L["Top_Center"] = "Верхняя панель"
+L["Left Chat"] = "Левый чат"
+L["Right Chat"] = "Правый чат"
+L["Datatext Panels"] = "Панели инфо-текстов"
+L["Additional Datatext Panels"] = "Дополнительные панели инфо-текстов"
+L["DP_DESC"] = [=[Дополнительные панели под информационные тексты.
+Всего здесь 8 дополнительных панелей и 20 дополнительных слотов под инфо-тексты, а также панель состояния с 4мя индикаторами.
+Панели на чатах отключить нельзя.]=]
+L["Dashboard"] = "Панель состояния"
+L["Show/Hide dashboard."] = "Показать/скрыть панель состояния."
+L["Dashboard Panels Width"] = "Ширина панелей"
+L["Sets size of dashboard panels."] = "Устанавливает размер полос панели состояния."
+L["Show/Hide this panel."] = "Показать/скрыть эту панель."
+L["Sets size of this panel"] = "Установить ширину панели"
+
+--Exp/Rep Bar--
+L["Xp-Rep Text"] = "Текст Опыта/Репутации"
+L["Full value on Exp Bar"] = "Полное значение опыта"
+L["Changes the way text is shown on exp bar."] = "Изменяет отображение значений опыта на полосе."
+L["Full value on Rep Bar"] = "Полное значение репутации"
+L["Changes the way text is shown on rep bar."] = "Изменяет отображение значений репутации на полосе."
+
+--Marks--
+L["Raid Marks"] = "Рейдовые Метки"
+L["Show/Hide raid marks."] = "Показать/скрыть фрейм рейдовых меток."
+L["Sets size of buttons"] = "Устанавливает размер кнопок" --Also used in UI buttons
+L["Direction"] = "Направление"
+L["Change the direction of buttons growth from the skull marker"] = "Изменяет направление роста кнопок от метки \"череп\"."
+
+--Raid Utility--
+L["Raid Utility"] = "Управление рейдом"
+L["Raid Utility Coordinates"] = "Позиция Управления Рейдом"
+L["RU_DESC"] = [=[Эти опции позволяют вам свободно перемещать кнопку Управления Рейдом.
+Передвижение кнопки при помощи мыши отключено. Для задания положения используйте бегунки ниже.]=]
+L["X Position"] = "Позиция X"
+L["Y Position"] = "Позиция Y"
+L["Sets X position of Raid Utility button."] = "Задает координаты Управления рейдом по оси X."
+L["Sets Y position of Raid Utility button."] = "Задает координаты Управления рейдом по оси Y."
+L["Show Button"] = "Показать кнопку"
+L["Show/hide Raid Utility button.\nThis option is not permanent. The button will act as normal when joining/leaving groups."] = "Показать/скрыть кнопку управления рейдом.\nОпция не постоянная. Кнопка быдет действовать в соответствии с нормлй при вступлении в группу, а также при выходе из нее."
+
+--Skins--
+L["This options require Azilroka's skin pack to work."] = "Эти опции требуют наличие пака скинов от Azilroka для работы"
+L["Sets font size on DBM bars"] = "Устанавливает размер текста на полосах DBM"
+
+--UI buttons--
+L["UI Buttons"] = "Меню интерфейса"
+L["Additional menu with useful buttons"] = "Дополнительное меню с полезными кнопками"
+L["Show/Hide UI buttons."] = "Показать/скрыть меню"
+L["Mouse over"] = "При наведении"
+L["Show on mouse over."] = "Отображать при наведении мыши."
+L["Buttons position"] = "Положение кнопок"
+L["Layout for UI buttons."] = "Режим положения кнопок"
+L["Click to reload your interface"] = "Нажмите для перезагрузки интерфейса"
+L["Click to toggle config window"] = "Нажмите для отображения окна настроек"
+L["Click to toogle the AddOn Manager frame (stAddOnManager or ACP) you have enabled."] = "Нажмите для отображения окна менеджера аддонов. Поддерживаются stAddOnManager, ACP"
+L["Click to toogle the Configuration/Option Window from the Bossmod (DXE, DBM or Bigwigs) you have enabled."] = "Нажмите для отображения окна настроек включенного босс мода. Поддерживаются DXE, DBM, Bigwigs."
+L["Click to unlock moving ElvUI elements"] = "Нажмите для входа в режим перемещения элементов"
+L["ElvUI Config"] = "Настройка ElvUI"
+L["Move UI"] = "Разблокировать элементы"
+L["Reload UI"] = "Перезагрузить интерфейс"
+L["AddOns Manager"] = "Менеджер аддонов"
+L["Boss Mod"] = "Босс мод"
+
+--Unitframes--
+L["Additional unit frames options"] = "Дополнительные опции рамок юнитов"
+L["Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."] = "Опции для дополнительной настройки рамок юнитов. Пожалуйста, не изменяйте эти настройки в то же время, кода включен тестовый режим рамок боссов и арены в ElvUI. Это сделает их невидимыми до повторного включения."
+L["Player Frame Indicators"] = "Индикаторы игрока"
+L["Combat Icon"] = "Иконка боя"
+L["Show/Hide combat icon on player frame."] = "Отображать/скрывать иконку в бою."
+L["Combat Position"] = "Позиция иконки боя"
+L["Set the point to show combat icon"] = "Устанавливает позицию индикатора боя."
+L["Classbar Energy"] = "Текст энергии полосы класса"
+L["Show/hide the text with exact number of energy (Solar/Lunar or Demonic Fury) on your Classbar."] = "Показать/скрыть текст с точным значением энергии (Лунной/Солнечной или Демонической Ярости) на полосе класса."
+L["Classbar Offset"] = "Отступ полосы класса"
+L["This options will allow you to detach your classbar from player's frame and move it in other location."] = "Эти опции позволят вам открепить полосу класса от рамки игрока и передвинуть ее в другое место."
+
+--Credits--
+L["ELVUI_SLE_CREDITS"] = "Мы бы хотели отметить следующих людей, которые помогли нас сделать этот аддон посредством тестирования, кода и прочего."
+L["Submodules and Coding:"] = "Субмодули и кодинг:"
+L["ELVUI_SLE_CODERS"] = [=[Elv
+Tukz
+Azilroka
+Blazeflack
+Boradan
+Camealion
+Pvtschlag
+Sinaris
+Swordyy
+]=]
+L["Other Support:"] = "Прочая поддержка:"
+L["ELVUI_SLE_MISC"] = [=[BuG - за то, что он француз :D
+TheSamaKutra
+Сообщество TukUI
+]=]
+
+--Tutorials--
+L["To enable full values of health/power on unitframes in Shadow & Light add \":sl\" to the end of the health/power tag.\nExample: [health:current:sl]."] = "Чтобы включить отображение полного значения здоровья/ресурса при использовании Тени и Света, нужно добавить \":sl\" в конец нужного тэга.\nПример: [health:current:sl]."
+
+--Movers--
+L["Pet Battle AB"] = "Панель боев питомцев"
\ No newline at end of file
diff --git a/ElvUI_SLE/locales/spanish.lua b/ElvUI_SLE/locales/spanish.lua
index 741051c..a60d1ce 100644
--- a/ElvUI_SLE/locales/spanish.lua
+++ b/ElvUI_SLE/locales/spanish.lua
@@ -1,27 +1,3 @@
 local AceLocale = LibStub:GetLibrary("AceLocale-3.0")
 local L = AceLocale:NewLocale("ElvUI", "esES") or AceLocale:NewLocale("ElvUI", "esMX")
 if not L then return end
-
---Microbar--
-------------
-L["2 rows"] = "2 filas"
-L["3 rows"] = "3 filas"
-L["4 rows"] = "4 filas"
-L["6 rows"] = "6 filas"
-L["Change the positioning of buttons on Microbar."] = "Cambiar el posicionamiento de los botones en Microbarra."
-L["Hide in Combat"] = "Ocultar en Combate"
-L["Hide Microbar in combat."] = "Ocultar Microbarra en combate."
-L["Hide microbar unless you mouse over it."] = "Ocultar Microbarra a menos que pase el raton por encima."
-L["Microbar"] = "Microbarra"
-L["Microbar Layout"] = "Diseño de Microbarra"
-L["Module for adding micromenu to ElvUI."] = "Module for adding micromenu to ElvUI."
-L["On Mouse Over"] = "Con Raton encima"
-L["Positioning"] = "Positionamando"
-L["Set Alpha"] = "Configurar Alfa"
-L["Sets alpha of the microbar"] = "Configurar Alfa de la Microbarra"
-L["Set Scale"] = "Configurar Escala"
-L["Sets Scale of the microbar"] = "Configurar Escala de la Microbarra"
-L["Sets X offset for microbar buttons"] = "Configurar desplazamiento X de los botones de la Microbarra"
-L["Sets Y offset for microbar buttons"] = "Configurar desplazamiento Y de los botonos de la Microbarra"
-L["Show backdrop for micromenu"] = "Mostrar fondo para micro menu"
-L["Your version of ElvUI is older than recommended to use with Microbar addon. Please, download the latest version from tukui.org."] = "Su version de ElvUI es mas antigua que la recomandada para usar con el agregado Microbarra. Por favor, descargue la ultima version desde tukui.org."
\ No newline at end of file
diff --git a/ElvUI_SLE/locales/taiwan.lua b/ElvUI_SLE/locales/taiwan.lua
index 3195748..e85c57e 100644
--- a/ElvUI_SLE/locales/taiwan.lua
+++ b/ElvUI_SLE/locales/taiwan.lua
@@ -1,23 +1,3 @@
 local AceLocale = LibStub:GetLibrary("AceLocale-3.0")
 local L = AceLocale:NewLocale("ElvUI", "zhTW")
 if not L then return end
-
---Microbar--
-------------
-L["2 rows"] = "2 列"
-L["3 rows"] = "3 列"
-L["4 rows"] = "4 列"
-L["6 rows"] = "6 列"
-L["Change the positioning of buttons on Microbar."] = "變更微型選單的按鈕位置。"
-L["Hide in Combat"] = "戰鬥隱藏"
-L["Hide Microbar in combat."] = "處於戰鬥模式時隱藏微型選單。"
-L["Hide microbar unless you mouse over it."] = "僅於游標移經時顯示微型選單。"
-L["Microbar"] = "微型選單"
-L["Microbar Layout"] = "微型選單配置"
-L["Module for adding micromenu to ElvUI."] = "為 ElvUI 新增微型選單模組。"
-L["On Mouse Over"] = "游標顯示"
-L["Set Alpha"] = "設定透明度"
-L["Sets alpha of the microbar"] = "設定微型選單透明度"
-L["Set Scale"] = "設定大小"
-L["Sets Scale of the microbar"] = "設定微型選單大小"
-L["Show backdrop for micromenu"] = "顯示微型選單背景"
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/auras/auras.lua b/ElvUI_SLE/modules/auras/auras.lua
index 5946ec4..3ac48f3 100644
--- a/ElvUI_SLE/modules/auras/auras.lua
+++ b/ElvUI_SLE/modules/auras/auras.lua
@@ -1,42 +1,15 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local A = E:GetModule('Auras');

---Replacing Elv's function to make buffs smaller
-function A:StyleBuffs(buttonName, index, debuff)
-	local buff = _G[buttonName..index]
-	local icon = _G[buttonName..index.."Icon"]
-	local border = _G[buttonName..index.."Border"]
-	local duration = _G[buttonName..index.."Duration"]
-	local count = _G[buttonName..index.."Count"]
-	if icon and not buff.backdrop then
-		icon:SetTexCoord(unpack(E.TexCoords))
-		icon:Point("TOPLEFT", buff, 2, -2)
-		icon:Point("BOTTOMRIGHT", buff, -2, 2)
-
-		buff:Size(E.private.sle.auras.size)
-		--buff:Size(35)
-
-		duration:ClearAllPoints()
-		duration:Point("BOTTOM", 0, -13)
-		duration:FontTemplate(nil, nil, 'OUTLINE')
-
-		count:ClearAllPoints()
-		count:Point("TOPLEFT", 1, -2)
-		count:FontTemplate(nil, nil, 'OUTLINE')
-
-		buff:CreateBackdrop('Default')
-		buff.backdrop:SetAllPoints()
-
-		local highlight = buff:CreateTexture(nil, "HIGHLIGHT")
-		highlight:SetTexture(1,1,1,0.45)
-		highlight:SetAllPoints(icon)
-	end
-	if border then border:Hide() end
-end
+local auraCount = 0

-function addAuraSource(self, func, unit, index, filter)
+function A:addAuraSource(self, func, unit, index, filter)
 	local srcUnit = select(8, func(unit, index, filter))
 	if srcUnit then
+		if auraCount == 1 then
+			auraCount = 0
+			return
+		end
 		self:AddLine(" ")

 		local src = GetUnitName(srcUnit, true)
@@ -54,22 +27,25 @@ function addAuraSource(self, func, unit, index, filter)

 		self:AddLine(src)
 		self:Show()
+		auraCount = 1
 	end
 end

 A.InitializeSLE = A.Initialize
 function A:Initialize()
     A.InitializeSLE(self)
-
+
 	local funcs = {
 		SetUnitAura = UnitAura,
 		SetUnitBuff = UnitBuff,
 		SetUnitDebuff = UnitDebuff,
 	}

-	for k, v in pairs(funcs) do
-		hooksecurefunc(GameTooltip, k, function(self, unit, index, filter)
-		addAuraSource(self, v, unit, index, filter)
-		end)
+	if E.private.sle.auras.castername then
+		for k, v in pairs(funcs) do
+			hooksecurefunc(GameTooltip, k, function(self, unit, index, filter)
+			A:addAuraSource(self, v, unit, index, filter)
+			end)
+		end
 	end
 end
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/auras/load_auras.xml b/ElvUI_SLE/modules/auras/load_auras.xml
index e8f4abb..8129c99 100644
--- a/ElvUI_SLE/modules/auras/load_auras.xml
+++ b/ElvUI_SLE/modules/auras/load_auras.xml
@@ -1,3 +1,124 @@
-<Ui xmlns="http://www.blizzard.com/wow/ui/">
+<Ui xmlns="http://www.blizzard.com/wow/ui/">
+	<Button name='ElvUIAuraTemplate15' inherits='SecureActionButtonTemplate' virtual='true'>
+		<Size x='15' y='15'/>
+		<Attributes>
+			<Attribute name='type' value='cancelaura'/>
+		</Attributes>
+		<Scripts>
+			<OnLoad>
+				self:RegisterForClicks('RightButtonUp')
+			</OnLoad>
+			<OnEnter>
+				GameTooltip:SetOwner(self, 'ANCHOR_BOTTOMLEFT', -5, -5)
+				if(self:GetAttribute'index') then
+					GameTooltip:SetUnitAura(SecureButton_GetUnit(self:GetParent()), self:GetID(), self:GetParent():GetAttribute("filter"))
+				elseif(self:GetAttribute'target-slot') then
+					GameTooltip:SetInventoryItem('player', self:GetID())
+				end
+			</OnEnter>
+			<OnLeave function='GameTooltip_Hide'/>
+		</Scripts>
+	</Button>
+	<Button name='ElvUIAuraTemplate20' inherits='SecureActionButtonTemplate' virtual='true'>
+		<Size x='20' y='20'/>
+		<Attributes>
+			<Attribute name='type' value='cancelaura'/>
+		</Attributes>
+		<Scripts>
+			<OnLoad>
+				self:RegisterForClicks('RightButtonUp')
+			</OnLoad>
+			<OnEnter>
+				GameTooltip:SetOwner(self, 'ANCHOR_BOTTOMLEFT', -5, -5)
+				if(self:GetAttribute'index') then
+					GameTooltip:SetUnitAura(SecureButton_GetUnit(self:GetParent()), self:GetID(), self:GetParent():GetAttribute("filter"))
+				elseif(self:GetAttribute'target-slot') then
+					GameTooltip:SetInventoryItem('player', self:GetID())
+				end
+			</OnEnter>
+			<OnLeave function='GameTooltip_Hide'/>
+		</Scripts>
+	</Button>
+	<Button name='ElvUIAuraTemplate25' inherits='SecureActionButtonTemplate' virtual='true'>
+		<Size x='25' y='25'/>
+		<Attributes>
+			<Attribute name='type' value='cancelaura'/>
+		</Attributes>
+		<Scripts>
+			<OnLoad>
+				self:RegisterForClicks('RightButtonUp')
+			</OnLoad>
+			<OnEnter>
+				GameTooltip:SetOwner(self, 'ANCHOR_BOTTOMLEFT', -5, -5)
+				if(self:GetAttribute'index') then
+					GameTooltip:SetUnitAura(SecureButton_GetUnit(self:GetParent()), self:GetID(), self:GetParent():GetAttribute("filter"))
+				elseif(self:GetAttribute'target-slot') then
+					GameTooltip:SetInventoryItem('player', self:GetID())
+				end
+			</OnEnter>
+			<OnLeave function='GameTooltip_Hide'/>
+		</Scripts>
+	</Button>
+	<Button name='ElvUIAuraTemplate30' inherits='SecureActionButtonTemplate' virtual='true'>
+		<Size x='30' y='30'/>
+		<Attributes>
+			<Attribute name='type' value='cancelaura'/>
+		</Attributes>
+		<Scripts>
+			<OnLoad>
+				self:RegisterForClicks('RightButtonUp')
+			</OnLoad>
+			<OnEnter>
+				GameTooltip:SetOwner(self, 'ANCHOR_BOTTOMLEFT', -5, -5)
+				if(self:GetAttribute'index') then
+					GameTooltip:SetUnitAura(SecureButton_GetUnit(self:GetParent()), self:GetID(), self:GetParent():GetAttribute("filter"))
+				elseif(self:GetAttribute'target-slot') then
+					GameTooltip:SetInventoryItem('player', self:GetID())
+				end
+			</OnEnter>
+			<OnLeave function='GameTooltip_Hide'/>
+		</Scripts>
+	</Button>
+	<Button name='ElvUIAuraTemplate35' inherits='SecureActionButtonTemplate' virtual='true'>
+		<Size x='35' y='35'/>
+		<Attributes>
+			<Attribute name='type' value='cancelaura'/>
+		</Attributes>
+		<Scripts>
+			<OnLoad>
+				self:RegisterForClicks('RightButtonUp')
+			</OnLoad>
+			<OnEnter>
+				GameTooltip:SetOwner(self, 'ANCHOR_BOTTOMLEFT', -5, -5)
+				if(self:GetAttribute'index') then
+					GameTooltip:SetUnitAura(SecureButton_GetUnit(self:GetParent()), self:GetID(), self:GetParent():GetAttribute("filter"))
+				elseif(self:GetAttribute'target-slot') then
+					GameTooltip:SetInventoryItem('player', self:GetID())
+				end
+			</OnEnter>
+			<OnLeave function='GameTooltip_Hide'/>
+		</Scripts>
+	</Button>
+	<Button name='ElvUIAuraTemplate40' inherits='SecureActionButtonTemplate' virtual='true'>
+		<Size x='40' y='40'/>
+		<Attributes>
+			<Attribute name='type' value='cancelaura'/>
+		</Attributes>
+		<Scripts>
+			<OnLoad>
+				self:RegisterForClicks('RightButtonUp')
+			</OnLoad>
+			<OnEnter>
+				GameTooltip:SetOwner(self, 'ANCHOR_BOTTOMLEFT', -5, -5)
+				if(self:GetAttribute'index') then
+					GameTooltip:SetUnitAura(SecureButton_GetUnit(self:GetParent()), self:GetID(), self:GetParent():GetAttribute("filter"))
+				elseif(self:GetAttribute'target-slot') then
+					GameTooltip:SetInventoryItem('player', self:GetID())
+				end
+			</OnEnter>
+			<OnLeave function='GameTooltip_Hide'/>
+		</Scripts>
+	</Button>
 	<Script file='auras.lua'/>
+	<Script file='options.lua'/>
 </Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/auras/options.lua b/ElvUI_SLE/modules/auras/options.lua
new file mode 100644
index 0000000..b55e3d1
--- /dev/null
+++ b/ElvUI_SLE/modules/auras/options.lua
@@ -0,0 +1,24 @@
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
+local A = E:GetModule('Auras');
+
+E.Options.args.sle.args.auras = {
+	type = "group",
+	name = L["Auras"],
+	order = 5,
+	guiInline = true,
+	args = {
+		info = {
+			order = 1,
+			type = "description",
+			name = L["Options for customizing auras near the minimap."],
+		},
+		enable = {
+			order = 2,
+			type = "toggle",
+			name = L["Caster Name"],
+			desc = L["Enabling this will show caster name in the buffs and debuff icons."],
+			get = function(info) return E.private.sle.auras.castername end,
+			set = function(info, value) E.private.sle.auras.castername = value; E:StaticPopup_Show("PRIVATE_RL") end,
+		},
+	},
+}
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/autorelease/autorelease.lua b/ElvUI_SLE/modules/autorelease/autorelease.lua
index 1d928df..7996296 100644
--- a/ElvUI_SLE/modules/autorelease/autorelease.lua
+++ b/ElvUI_SLE/modules/autorelease/autorelease.lua
@@ -1,6 +1,6 @@
 --Credit to Repooc.
 --Remade his auto release featule to module which allows profile setting of the function not the global one.
-local E, L, V, P, G =  unpack(ElvUI); --Engine
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local AR = E:NewModule('AutoRelease', 'AceHook-3.0', 'AceEvent-3.0');

 function AR:Releasing()
diff --git a/ElvUI_SLE/modules/autorelease/options.lua b/ElvUI_SLE/modules/autorelease/options.lua
index be9610f..f89382c 100644
--- a/ElvUI_SLE/modules/autorelease/options.lua
+++ b/ElvUI_SLE/modules/autorelease/options.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G = unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore

 --Main options group
 E.Options.args.sle.args.general.args.pvpautorelease = {
diff --git a/ElvUI_SLE/modules/backgrounds/backgrounds.lua b/ElvUI_SLE/modules/backgrounds/backgrounds.lua
index 603182e..a6b3c2b 100644
--- a/ElvUI_SLE/modules/backgrounds/backgrounds.lua
+++ b/ElvUI_SLE/modules/backgrounds/backgrounds.lua
@@ -1,5 +1,4 @@
---Submodule to create several backgrounds for some elements
-local E, L, V, P, G =  unpack(ElvUI); --Engine
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local BG = E:NewModule('BackGrounds', 'AceHook-3.0', 'AceEvent-3.0');

 local BGbottom = CreateFrame('Frame', "BottomBG", E.UIParent);
@@ -10,7 +9,7 @@ local BGaction = CreateFrame('Frame', "ActionBG", E.UIParent);
 --Frames setup
 function BG:FramesCreate()
 	--Bottom
-	BGbottom:CreateBackdrop('Default');
+	BGbottom:CreateBackdrop(E.private.sle.backgrounds.bottom.template);
 	BGbottom.backdrop:SetAllPoints();
 	BGbottom:SetFrameLevel(5);
 	BGbottom:SetFrameStrata('BACKGROUND');
@@ -20,7 +19,7 @@ function BG:FramesCreate()
 	BGbottom.tex:SetAlpha(0.5)

 	--Left
-	BGleft:CreateBackdrop('Transparent');
+	BGleft:CreateBackdrop(E.private.sle.backgrounds.left.template);
 	BGleft.backdrop:SetAllPoints();
 	BGleft:SetFrameLevel(5);
 	BGleft:SetFrameStrata('BACKGROUND');
@@ -29,7 +28,7 @@ function BG:FramesCreate()
 	BGleft.tex:SetAlpha(E.db.general.backdropfadecolor.a - 0.7 > 0 and E.db.general.backdropfadecolor.a - 0.7 or 0.5)

 	--Right
-	BGright:CreateBackdrop('Transparent');
+	BGright:CreateBackdrop(E.private.sle.backgrounds.right.template);
 	BGright.backdrop:SetAllPoints();
 	BGright:SetFrameLevel(5);
 	BGright:SetFrameStrata('BACKGROUND');
@@ -38,7 +37,7 @@ function BG:FramesCreate()
 	BGright.tex:SetAlpha(E.db.general.backdropfadecolor.a - 0.7 > 0 and E.db.general.backdropfadecolor.a - 0.7 or 0.5)

 	--Action
-	BGaction:CreateBackdrop('Default');
+	BGaction:CreateBackdrop(E.private.sle.backgrounds.action.template);
 	BGaction.backdrop:SetAllPoints();
 	BGaction:SetFrameLevel(5);
 	BGaction:SetFrameStrata('BACKGROUND');
diff --git a/ElvUI_SLE/modules/backgrounds/options.lua b/ElvUI_SLE/modules/backgrounds/options.lua
index 28088f1..1fd95bc 100644
--- a/ElvUI_SLE/modules/backgrounds/options.lua
+++ b/ElvUI_SLE/modules/backgrounds/options.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local BG = E:GetModule('BackGrounds')

 --Options for additional background frames. Main group
@@ -120,6 +120,18 @@ E.Options.args.sle.args.backgrounds.args.bottom = {
 				BG:UpdateTex()
 			end,
 		},
+		template = {
+			order = 9,
+			type = "select",
+			name = L["Backdrop Template"],
+			desc = L["Change the template used for this backdrop."],
+			get = function(info) return E.private.sle.backgrounds.bottom.template end,
+			set = function(info, value) E.private.sle.backgrounds.bottom.template = value; E:StaticPopup_Show("PRIVATE_RL") end,
+			values = {
+				['Default'] = L["Default"],
+				['Transparent'] = L["Transparent"],
+			},
+		},
 	},
 }
 --Subgroup for 2nd frame
@@ -183,6 +195,18 @@ E.Options.args.sle.args.backgrounds.args.left = {
 				BG:UpdateTex()
 			end,
 		},
+		template = {
+			order = 9,
+			type = "select",
+			name = L["Backdrop Template"],
+			desc = L["Change the template used for this backdrop."],
+			get = function(info) return E.private.sle.backgrounds.left.template end,
+			set = function(info, value) E.private.sle.backgrounds.left.template = value; E:StaticPopup_Show("PRIVATE_RL") end,
+			values = {
+				['Default'] = L["Default"],
+				['Transparent'] = L["Transparent"],
+			},
+		},
 	},
 }
 --Subgroup for 3rd frame
@@ -246,6 +270,18 @@ E.Options.args.sle.args.backgrounds.args.right = {
 				BG:UpdateTex()
 			end,
 		},
+		template = {
+			order = 9,
+			type = "select",
+			name = L["Backdrop Template"],
+			desc = L["Change the template used for this backdrop."],
+			get = function(info) return E.private.sle.backgrounds.right.template end,
+			set = function(info, value) E.private.sle.backgrounds.right.template = value; E:StaticPopup_Show("PRIVATE_RL") end,
+			values = {
+				['Default'] = L["Default"],
+				['Transparent'] = L["Transparent"],
+			},
+		},
 	},
 }
 --Subgroup for 4th frame
@@ -309,6 +345,18 @@ E.Options.args.sle.args.backgrounds.args.action = {
 				BG:UpdateTex()
 			end,
 		},
+		template = {
+			order = 9,
+			type = "select",
+			name = L["Backdrop Template"],
+			desc = L["Change the template used for this backdrop."],
+			get = function(info) return E.private.sle.backgrounds.action.template end,
+			set = function(info, value) E.private.sle.backgrounds.action.template = value; E:StaticPopup_Show("PRIVATE_RL") end,
+			values = {
+				['Default'] = L["Default"],
+				['Transparent'] = L["Transparent"],
+			},
+		},
 	},
 }

diff --git a/ElvUI_SLE/modules/chat/chat.lua b/ElvUI_SLE/modules/chat/chat.lua
index d9e645a..801bff3 100644
--- a/ElvUI_SLE/modules/chat/chat.lua
+++ b/ElvUI_SLE/modules/chat/chat.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local CH = E:GetModule('Chat')
 local LSM = LibStub("LibSharedMedia-3.0")

@@ -9,9 +9,9 @@ function CH:FadeUpdate()
 	end
 end

-CH.StyleChatRE = CH.StyleChat
+CH.StyleChatSLE = CH.StyleChat
 function CH:StyleChat(frame)
-	self:StyleChatRE(frame)
+	self:StyleChatSLE(frame)
 	local name = frame:GetName()
 	if E.db.sle.chat.fade then
 		_G[name]:SetFading(true) --Enable chat text fading after some time
@@ -43,8 +43,8 @@ end
 function CH:PositionChat(override)
 	if (InCombatLockdown() and not override and self.initialMove) or (IsMouseButtonDown("LeftButton") and not override) then return end

-	RightChatPanel:Size(E.db.general.panelWidth, E.db.general.panelHeight)
-	LeftChatPanel:Size(E.db.general.panelWidth, E.db.general.panelHeight)
+	RightChatPanel:Size(E.db.chat.panelWidth, E.db.chat.panelHeight)
+	LeftChatPanel:Size(E.db.chat.panelWidth, E.db.chat.panelHeight)

 	if E.private.chat.enable ~= true then return end

@@ -94,11 +94,11 @@ function CH:PositionChat(override)
 		if id ~= 2 then
 			chat:ClearAllPoints()
 			chat:Point("BOTTOMRIGHT", RightChatDataPanel, "TOPRIGHT", 10, 3) -- <<< Changed
-			chat:SetSize(E.db.general.panelWidth - 6, (E.db.general.panelHeight - 27)) -- <<< Changed
+			chat:SetSize(E.db.chat.panelWidth - 10, (E.db.chat.panelHeight - 27)) -- <<< Changed
 		else
 			chat:ClearAllPoints()
-			chat:Point("BOTTOMRIGHT", RightChatDataPanel, "TOPRIGHT", 10, 3)
-			chat:Size(E.db.general.panelWidth - 6, (E.db.general.panelHeight - 27) - CombatLogQuickButtonFrame_Custom:GetHeight())
+			chat:Point("BOTTOMLEFT", RightChatDataPanel, "TOPLEFT", 10, 3)
+			chat:Size(E.db.chat.panelWidth - 10, (E.db.chat.panelHeight - 27) - CombatLogQuickButtonFrame_Custom:GetHeight())
 		end

 		FCF_SavePositionAndDimensions(chat)
@@ -106,7 +106,7 @@ function CH:PositionChat(override)
 		tab:SetParent(RightChatPanel)
 		chat:SetParent(tab)

-		if E.db.general.panelBackdrop == 'HIDEBOTH' or E.db.general.panelBackdrop == 'LEFT' then
+		if E.db.chat.panelBackdrop == 'HIDEBOTH' or E.db.chat.panelBackdrop == 'LEFT' then
 			CH:SetupChatTabs(tab, true)
 		else
 			CH:SetupChatTabs(tab, false)
@@ -120,13 +120,13 @@ function CH:PositionChat(override)
 		if id ~= 2 and not (id > NUM_CHAT_WINDOWS) then
 			chat:ClearAllPoints()
 			chat:Point("BOTTOMLEFT", LeftChatToggleButton, "TOPLEFT", 1, 3)
-			chat:Size(E.db.general.panelWidth - 6, (E.db.general.panelHeight - 27)) -- <<< Changed
+			chat:Size(E.db.chat.panelWidth - 6, (E.db.chat.panelHeight - 27)) -- <<< Changed
 			FCF_SavePositionAndDimensions(chat)
 		end
 		chat:SetParent(LeftChatPanel)
 		tab:SetParent(GeneralDockManager)

-		if E.db.general.panelBackdrop == 'HIDEBOTH' or E.db.general.panelBackdrop == 'RIGHT' then
+		if E.db.chat.panelBackdrop == 'HIDEBOTH' or E.db.chat.panelBackdrop == 'RIGHT' then
 			CH:SetupChatTabs(tab, true)
 		else
 			CH:SetupChatTabs(tab, false)
diff --git a/ElvUI_SLE/modules/chat/options.lua b/ElvUI_SLE/modules/chat/options.lua
index 5d39a53..9251243 100644
--- a/ElvUI_SLE/modules/chat/options.lua
+++ b/ElvUI_SLE/modules/chat/options.lua
@@ -1,11 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
-local CH = E:GetModule('Chat')
-
-local selectedName
-local selectedChannel
-local names
-local channels
-
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore

 E.Options.args.sle.args.chat = {
 	order = 8,
@@ -29,7 +22,7 @@ E.Options.args.sle.args.chat = {
 					name = L["Chat Fade"],
 					desc = L["Enable/Disable the text fading in the chat window."],
 					get = function(info) return E.db.sle.chat.fade end,
-					set = function(info, value) E.db.sle.chat.fade = value; CH:FadeUpdate() end,
+					set = function(info, value) E.db.sle.chat.fade = value;  E:GetModule('Chat'):FadeUpdate() end,
 				},
 				editboxhistory = {
 					order = 2,
@@ -40,6 +33,18 @@ E.Options.args.sle.args.chat = {
 					get = function(info) return E.db.chat.editboxhistory end,
 					set = function(info, value)	E.db.chat.editboxhistory = value; end,
 				},
+				position = {
+					order = 3,
+					type = "select",
+					name = L["Editbox Position"],
+					desc = L["Select if the editbox will be above or below chat."],
+					get = function(info) return E.db.sle.chat.editbox end,
+					set = function(info, value) E.db.sle.chat.editbox = value; E:GetModule('Layout'):EditboxPos() end,
+					values = {
+						['Down'] = L["Below"],
+						['Up'] = L["Above"],
+					},
+				},
 			},
 		},
 	},
diff --git a/ElvUI_SLE/modules/datatexts/add_panels.lua b/ElvUI_SLE/modules/datatexts/add_panels.lua
index 88c881a..7523187 100644
--- a/ElvUI_SLE/modules/datatexts/add_panels.lua
+++ b/ElvUI_SLE/modules/datatexts/add_panels.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local DTP = E:NewModule('DTPanels', 'AceHook-3.0', 'AceEvent-3.0');
 local LO = E:GetModule('Layout');

@@ -9,13 +9,14 @@ function LO:Initialize()
 	DTP:CreateDataPanels()
 	DTP:Resize()

-	E:CreateMover(DP_1, "DP_1_Mover", L["DP_1"])
-	E:CreateMover(DP_2, "DP_2_Mover", L["DP_2"])
-	E:CreateMover(DP_3, "DP_3_Mover", L["DP_3"])
-	E:CreateMover(DP_4, "DP_4_Mover", L["DP_4"])
-	E:CreateMover(DP_5, "DP_5_Mover", L["DP_5"])
-	E:CreateMover(Bottom_Panel, "Bottom_Panel_Mover", L["Bottom_Panel"])
-	E:CreateMover(DP_6, "DP_6_Mover", L["DP_6"])
+	E:CreateMover(DP_1, "DP_1_Mover", L["DP_1"], nil, nil, nil, "ALL,S&L")
+	E:CreateMover(DP_2, "DP_2_Mover", L["DP_2"], nil, nil, nil, "ALL,S&L")
+	E:CreateMover(DP_3, "DP_3_Mover", L["DP_3"], nil, nil, nil, "ALL,S&L")
+	E:CreateMover(DP_4, "DP_4_Mover", L["DP_4"], nil, nil, nil, "ALL,S&L")
+	E:CreateMover(DP_5, "DP_5_Mover", L["DP_5"], nil, nil, nil, "ALL,S&L")
+	E:CreateMover(Bottom_Panel, "Bottom_Panel_Mover", L["Bottom_Panel"], nil, nil, nil, "ALL,S&L")
+	E:CreateMover(DP_6, "DP_6_Mover", L["DP_6"], nil, nil, nil, "ALL,S&L")
+	E:CreateMover(Top_Center, "Top_Center_Mover", L["Top_Center"], nil, nil, nil, "ALL,S&L")
 end

 -- New panels
@@ -145,7 +146,12 @@ function DTP:ExtraDataBarSetup()
 	else
 		Bottom_Panel:Hide()
 	end
-Top_Center:Show()
+
+	if E.db.sle.datatext.top.enabled then
+		Top_Center:Show()
+	else
+		Top_Center:Hide()
+	end
 end

 function DTP:Update()
diff --git a/ElvUI_SLE/modules/datatexts/dashboard/dashboard.lua b/ElvUI_SLE/modules/datatexts/dashboard/dashboard.lua
new file mode 100644
index 0000000..856e5e2
--- /dev/null
+++ b/ElvUI_SLE/modules/datatexts/dashboard/dashboard.lua
@@ -0,0 +1,71 @@
+--[[ Dashboard for ElvUI
+Credits : Sinaris, Elv
+made for ElvUI under Sinaris permission. Big thanks :)
+]]
+
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
+local DTP = E:GetModule('DTPanels')
+if E.db.sle == nil then E.db.sle = {} end
+if E.db.sle.datatext == nil then E.db.sle.datatext = {} end
+if E.db.sle.datatext.dashboard == nil then E.db.sle.datatext.dashboard = {} end
+if E.db.sle.datatext.dashboard.width == nil then E.db.sle.datatext.dashboard.width = 100 end
+local DTPANELS_WIDTH = E.db.sle.datatext.dashboard.width
+local DTPANELS_HEIGHT = 20
+local PANEL_SPACING = 1
+local font = P.general.font
+local fontsize = 10
+
+local board = {}
+
+local bholder = CreateFrame("Frame", "BoardsHolder", E.UIParent)
+bholder:Point('TOPLEFT', E.UIParent, 'TOPLEFT', 0, -21)
+bholder:Size(((DTPANELS_WIDTH*4)+(PANEL_SPACING*3)), DTPANELS_HEIGHT)
+
+E:CreateMover(BoardsHolder, "Dashboard", L["Dashboard"], nil, nil, nil, "ALL,S&L")
+
+local board = CreateFrame('frame', 'board', BoardsHolder)
+
+for i = 1, 4 do
+	board[i] = CreateFrame('frame', 'board'..i, bholder)
+	board[i]:SetFrameLevel(2)
+	board[i]:Size(DTPANELS_WIDTH, DTPANELS_HEIGHT)
+	board[i]:SetTemplate('Default', true)
+	board[i]:CreateShadow('Default')
+
+	if i == 1 then
+		board[i]:Point('TOPLEFT', bholder, 'TOPLEFT', 0, 0)
+	else
+		board[i]:Point('LEFT', board[i-1], 'RIGHT', PANEL_SPACING, 0)
+	end
+
+	board[i].Status = CreateFrame("StatusBar", "PanelStatus" .. i, board[i])
+	board[i].Status:SetFrameLevel(12)
+	board[i].Status:SetStatusBarTexture(E["media"].normTex)
+	board[i].Status:SetMinMaxValues(0, 100)
+	board[i].Status:SetStatusBarColor(.4, .4, .4, 1)
+	board[i].Status:Point("TOPLEFT", board[i], "TOPLEFT", 2, -2)
+	board[i].Status:Point("BOTTOMRIGHT", board[i], "BOTTOMRIGHT", -2, 2)
+
+	board[i].Text = board[i].Status:CreateFontString( nil, "OVERLAY" )
+	board[i].Text:FontTemplate()
+	board[i].Text:SetFont(font, fontsize)
+	board[i].Text:Point("LEFT", board[i], "LEFT", 3, 0)
+	board[i].Text:SetJustifyV('MIDDLE')
+	board[i].Text:SetShadowColor(0, 0, 0)
+	board[i].Text:SetShadowOffset(1.25, -1.25)
+end
+
+function DTP:DashboardShow()
+	if E.db.sle.datatext.dashboard.enable then
+		BoardsHolder:Show()
+	else
+		BoardsHolder:Hide()
+	end
+end
+
+function DTP:DashWidth()
+	for i = 1, 4 do
+		board[i]:Size(E.db.sle.datatext.dashboard.width, DTPANELS_HEIGHT)
+	end
+	bholder:Size(((E.db.sle.datatext.dashboard.width*4)+(PANEL_SPACING*3)), DTPANELS_HEIGHT)
+end
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/datatexts/dashboard/datapanels/bags.lua b/ElvUI_SLE/modules/datatexts/dashboard/datapanels/bags.lua
new file mode 100644
index 0000000..5545571
--- /dev/null
+++ b/ElvUI_SLE/modules/datatexts/dashboard/datapanels/bags.lua
@@ -0,0 +1,25 @@
+local E, L, V, P, G = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
+
+local LastUpdate = 1
+
+board[2].Status:SetScript("OnUpdate", function(self)
+	local free, total, used = 0, 0, 0
+	for i = 0, NUM_BAG_SLOTS do
+		free, total = free + GetContainerNumFreeSlots(i), total + GetContainerNumSlots(i)
+	end
+	used = total - free
+	value = (used * 120 / total)
+
+	self:SetMinMaxValues(0, total)
+	self:SetValue(used)
+		board[2].Text:SetText(L["Bags"]..": " .. used .. " /" .. total)
+	if(used * 100 / total >= 75) then
+		self:SetStatusBarColor(1, 75 / 255, 75 / 255, 0.5, .8)
+	elseif used * 100 / total < 75 and used * 100 / total > 40 then
+		self:SetStatusBarColor(1, 180 / 255, 0, .8)
+	else
+		self:SetStatusBarColor(30 / 255, 1, 30 / 255, .8)
+	end
+end)
+
+board[2].Status:RegisterEvent("BAG_UPDATE")
diff --git a/ElvUI_SLE/modules/datatexts/dashboard/datapanels/durability.lua b/ElvUI_SLE/modules/datatexts/dashboard/datapanels/durability.lua
new file mode 100644
index 0000000..81ac536
--- /dev/null
+++ b/ElvUI_SLE/modules/datatexts/dashboard/datapanels/durability.lua
@@ -0,0 +1,65 @@
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
+
+local displayString = ""
+local total, totalDurability, totalPerc = 0, 0, 0
+local current, max, lastPanel
+local invDurability = {}
+
+local slots = {
+	["SecondaryHandSlot"] = L['Offhand'],
+	["MainHandSlot"] = L['Main Hand'],
+	["FeetSlot"] = L['Feet'],
+	["LegsSlot"] = L['Legs'],
+	["HandsSlot"] = L['Hands'],
+	["WristSlot"] = L['Wrist'],
+	["WaistSlot"] = L['Waist'],
+	["ChestSlot"] = L['Chest'],
+	["ShoulderSlot"] = L['Shoulder'],
+	["HeadSlot"] = L['Head'],
+}
+
+board[1].Status:SetScript("OnEvent", function( self, ...)
+
+	lastPanel = self
+	total = 0
+	totalDurability = 0
+	totalPerc = 0
+
+	for index, value in pairs(slots) do
+		local slot = GetInventorySlotInfo(index)
+		current, max = GetInventoryItemDurability(slot)
+
+		if current then
+			totalDurability = totalDurability + current
+			invDurability[value] = (current/max)*100
+			totalPerc = totalPerc + (current/max)*100
+			total = total + 1
+		end
+	end
+
+	result = totalPerc/total
+
+	if total > 0 then
+		board[1].Text:SetFormattedText(displayString, result)
+	end
+
+	self:SetMinMaxValues(0, 100)
+	self:SetValue(result)
+
+	if( result >= 75 ) then
+		self:SetStatusBarColor(30 / 255, 1, 30 / 255, .8)
+	elseif result < 75 and result > 40 then
+		self:SetStatusBarColor(1, 180 / 255, 0, .8)
+	else
+		self:SetStatusBarColor(1, 75 / 255, 75 / 255, 0.5, .8)
+	end
+end)
+
+local function ValueColorUpdate(hex, r, g, b)
+	displayString = string.join("", DURABILITY, ": ", hex, "%d%%|r")
+end
+E['valueColorUpdateFuncs'][ValueColorUpdate] = true
+
+board[1].Status:RegisterEvent("UPDATE_INVENTORY_DURABILITY")
+board[1].Status:RegisterEvent("MERCHANT_SHOW")
+board[1].Status:RegisterEvent("PLAYER_ENTERING_WORLD")
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/datatexts/dashboard/datapanels/fps.lua b/ElvUI_SLE/modules/datatexts/dashboard/datapanels/fps.lua
new file mode 100644
index 0000000..73be1b0
--- /dev/null
+++ b/ElvUI_SLE/modules/datatexts/dashboard/datapanels/fps.lua
@@ -0,0 +1,23 @@
+local E, L, V, P, G = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
+
+local LastUpdate = 1
+
+board[3].Status:SetScript("OnUpdate", function( self, elapsed)
+	LastUpdate = LastUpdate - elapsed
+
+	if(LastUpdate < 0) then
+		self:SetMinMaxValues(0, 200)
+		local value = floor(GetFramerate())
+		local max = 120
+		self:SetValue(value)
+		board[3].Text:SetText("FPS: " .. value)
+		if(value * 100 / max >= 75) then
+			self:SetStatusBarColor(30 / 255, 1, 30 / 255, .8)
+		elseif value * 100 / max < 75 and value * 100 / max > 40 then
+			self:SetStatusBarColor(1, 180 / 255, 0, .8)
+		else
+			self:SetStatusBarColor(1, 75 / 255, 75 / 255, 0.5, .8)
+		end
+		LastUpdate = 1
+	end
+end)
diff --git a/ElvUI_SLE/modules/datatexts/dashboard/datapanels/ms.lua b/ElvUI_SLE/modules/datatexts/dashboard/datapanels/ms.lua
new file mode 100644
index 0000000..11653d5
--- /dev/null
+++ b/ElvUI_SLE/modules/datatexts/dashboard/datapanels/ms.lua
@@ -0,0 +1,24 @@
+local E, L, V, P, G = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
+
+local LastUpdate = 1
+
+board[4].Status:SetScript("OnUpdate", function(self, elapsed)
+	LastUpdate = LastUpdate - elapsed
+
+	if(LastUpdate < 0) then
+		self:SetMinMaxValues(0, 200)
+		local value = (select( 3, GetNetStats()))
+		local max = 200
+		self:SetValue(value)
+		board[4].Text:SetText("MS: " .. value)
+
+		if( value * 100 / max <= 35) then
+			self:SetStatusBarColor(30 / 255, 1, 30 / 255, .8)
+		elseif value * 100 / max > 35 and value * 100 / max < 75 then
+			self:SetStatusBarColor(1, 180 / 255, 0, .8)
+		else
+			self:SetStatusBarColor(1, 75 / 255, 75 / 255, 0.5, .8)
+		end
+		LastUpdate = 1
+	end
+end)
diff --git a/ElvUI_SLE/modules/datatexts/dashboard/load_dashboard.xml b/ElvUI_SLE/modules/datatexts/dashboard/load_dashboard.xml
new file mode 100644
index 0000000..c77944e
--- /dev/null
+++ b/ElvUI_SLE/modules/datatexts/dashboard/load_dashboard.xml
@@ -0,0 +1,7 @@
+<Ui xmlns="http://www.blizzard.com/wow/ui/">
+	<Script file="dashboard.lua"/>
+	<Script file="datapanels\durability.lua"/>
+	<Script file="datapanels\bags.lua"/>
+	<Script file="datapanels\fps.lua"/>
+	<Script file="datapanels\ms.lua"/>
+</Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/datatexts/load_datatexts.xml b/ElvUI_SLE/modules/datatexts/load_datatexts.xml
index d47f239..be0012f 100644
--- a/ElvUI_SLE/modules/datatexts/load_datatexts.xml
+++ b/ElvUI_SLE/modules/datatexts/load_datatexts.xml
@@ -2,5 +2,6 @@
 	<Script file='version.lua'/>
 	<Script file='time.lua'/>
 	<Script file='add_panels.lua'/>
+	<Include file='dashboard\load_dashboard.xml'/>
 	<Script file='options.lua'/>
 </Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/datatexts/options.lua b/ElvUI_SLE/modules/datatexts/options.lua
index 61653fd..ac14718 100644
--- a/ElvUI_SLE/modules/datatexts/options.lua
+++ b/ElvUI_SLE/modules/datatexts/options.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local DTP = E:GetModule('DTPanels')
 local DT = E:GetModule('DataTexts')

@@ -51,6 +51,7 @@ E.Options.args.sle.args.datatext = {
 	type = "group",
 	name = L["Datatext Panels"],
 	order = 6,
+	childGroups = "select",
 	args = {
 		header = {
 			order = 1,
@@ -62,11 +63,28 @@ E.Options.args.sle.args.datatext = {
 			type = "description",
 			name = L["DP_DESC"]
 		},
-		top_left = {
+		dashboard = {
 			order = 3,
+			type = "toggle",
+			name = L["Dashboard"],
+			desc = L["Show/Hide dashboard."],
+			get = function(info) return E.db.sle.datatext.dashboard.enable end,
+			set = function(info, value) E.db.sle.datatext.dashboard.enable = value; DTP:DashboardShow() end
+		},
+		width = {
+			order = 4,
+			type = "range",
+			name = L["Dashboard Panels Width"],
+			desc = L["Sets size of dashboard panels."],
+			disabled = function() return not E.db.sle.datatext.dashboard.enable end,
+			min = 75, max = 200, step = 1,
+			get = function(info) return E.db.sle.datatext.dashboard.width end,
+			set = function(info, value) E.db.sle.datatext.dashboard.width = value; DTP:DashWidth() end,
+		},
+		top_left = {
+			order = 1,
 			type = "group",
 			name = L["DP_1"],
-			guiInline = true,
 			args = {
 				enabled = {
 					order = 1,
@@ -89,10 +107,9 @@ E.Options.args.sle.args.datatext = {
 			},
 		},
 		top_center_left = {
-			order = 4,
+			order = 2,
 			type = "group",
 			name = L["DP_2"],
-			guiInline = true,
 			args = {
 				enabled = {
 					order = 1,
@@ -115,19 +132,17 @@ E.Options.args.sle.args.datatext = {
 			},
 		},
 		top = {
-			order = 5,
+			order = 3,
 			type = "group",
 			name = L["Top_Center"],
-			guiInline = true,
 			args = {
 				enabled = {
 					order = 1,
 					type = "toggle",
 					name = L["Enable"],
 					desc = L["Show/Hide this panel."],
-					disabled = true,
 					get = function(info) return E.db.sle.datatext.top.enabled end,
-					set = function(info, value) E.db.sle.datatext.top.enabled = value; end
+					set = function(info, value) E.db.sle.datatext.top.enabled = value; DTP:ExtraDataBarSetup() end
 				},
 				width = {
 					order = 2,
@@ -141,10 +156,9 @@ E.Options.args.sle.args.datatext = {
 			},
 		},
 		top_center_right = {
-			order = 6,
+			order = 4,
 			type = "group",
 			name = L["DP_3"],
-			guiInline = true,
 			args = {
 				enabled = {
 					order = 1,
@@ -167,10 +181,9 @@ E.Options.args.sle.args.datatext = {
 			},
 		},
 		top_right = {
-			order = 7,
+			order = 5,
 			type = "group",
 			name = L["DP_4"],
-			guiInline = true,
 			args = {
 				enabled = {
 					order = 1,
@@ -193,10 +206,9 @@ E.Options.args.sle.args.datatext = {
 			},
 		},
 		bottom_left = {
-			order = 8,
+			order = 6,
 			type = "group",
 			name = L["DP_5"],
-			guiInline = true,
 			args = {
 				enabled = {
 					order = 1,
@@ -219,10 +231,9 @@ E.Options.args.sle.args.datatext = {
 			},
 		},
 		bottom = {
-			order = 9,
+			order = 7,
 			type = "group",
 			name = L["Bottom_Panel"],
-			guiInline = true,
 			args = {
 				enabled = {
 					order = 1,
@@ -245,10 +256,9 @@ E.Options.args.sle.args.datatext = {
 			},
 		},
 		bottom_right = {
-			order = 10,
+			order = 8,
 			type = "group",
 			name = L["DP_6"],
-			guiInline = true,
 			args = {
 				enabled = {
 					order = 1,
@@ -271,10 +281,9 @@ E.Options.args.sle.args.datatext = {
 			},
 		},
 		chat_left = {
-			order = 11,
+			order = 9,
 			type = "group",
 			name = L["Left Chat"],
-			guiInline = true,
 			args = {
 				enabled = {
 					order = 1,
@@ -298,10 +307,9 @@ E.Options.args.sle.args.datatext = {
 			},
 		},
 		chat_right = {
-			order = 12,
+			order = 10,
 			type = "group",
 			name = L["Right Chat"],
-			guiInline = true,
 			args = {
 				enabled = {
 					order = 1,
diff --git a/ElvUI_SLE/modules/datatexts/time.lua b/ElvUI_SLE/modules/datatexts/time.lua
index 55d12b0..e3f0402 100644
--- a/ElvUI_SLE/modules/datatexts/time.lua
+++ b/ElvUI_SLE/modules/datatexts/time.lua
@@ -1,5 +1,5 @@
 --Replacement of Elv's time datatext with some additions
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local DT = E:GetModule('DataTexts')

 --Defeault setting for LFR show
diff --git a/ElvUI_SLE/modules/datatexts/version.lua b/ElvUI_SLE/modules/datatexts/version.lua
index e117ef9..379053d 100644
--- a/ElvUI_SLE/modules/datatexts/version.lua
+++ b/ElvUI_SLE/modules/datatexts/version.lua
@@ -1,5 +1,5 @@
 --Version datatext. Only in Russian for now.
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local DT = E:GetModule('DataTexts')

 local displayString = '';
diff --git a/ElvUI_SLE/modules/exprepbar/exprepbar.lua b/ElvUI_SLE/modules/exprepbar/exprepbar.lua
index 196cacc..8b05e47 100644
--- a/ElvUI_SLE/modules/exprepbar/exprepbar.lua
+++ b/ElvUI_SLE/modules/exprepbar/exprepbar.lua
@@ -1,384 +1,121 @@
---Credits to Benik
---Exp/Rep bar text mod
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local M = E:GetModule('Misc');

-local BAR_WIDTH --Set post load so we can set it to a percent of your screen width.
-local BAR_HEIGHT = 10 -- was 9
-local TOPBAR_HEIGHT = ((BAR_HEIGHT) * 3) + 1 -- was ((BAR_HEIGHT + 2) * 4) + BAR_HEIGHT
-local showRepBar, showExpBar = false, false
+function M:UpdateExperience(event)
+	local bar = self.expBar

-local function GetXP(unit)
-	if(unit == 'pet') then
-		return GetPetExperience()
-	else
-		return UnitXP(unit), UnitXPMax(unit)
-	end
-end
-
-local function OnClick()
-	if E.db['UpperRepExpBarFaded'] then
-		E.db['UpperRepExpBarFaded'] = nil
-		UpperRepExpBar:Show()
-		UIFrameFadeIn(UpperRepExpBar, 0.2, UpperRepExpBar:GetAlpha(), 1)
-		M:UpdateExpBar()
-		M:UpdateRepBar()
-	else
-		E.db['UpperRepExpBarFaded'] = true
-		UIFrameFadeOut(UpperRepExpBar, 0.2, UpperRepExpBar:GetAlpha(), 0)
-		UpperRepExpBar.fadeInfo.finishedFunc = OnFade
-	end
-end
-
-local function OnLeave()
-	if E.db['UpperRepExpBarFaded'] then
-		UIFrameFadeOut(UpperRepExpBar, 0.2, UpperRepExpBar:GetAlpha(), 0)
-		UpperRepExpBar.fadeInfo.finishedFunc = OnFade
-	end
-
-	GameTooltip:Hide()
-end
-
-local function OnEnter()
-	if E.db['UpperRepExpBarFaded'] then
-		UpperRepExpBar:Show()
-		UIFrameFadeIn(UpperRepExpBar, 0.2, UpperRepExpBar:GetAlpha(), 1)
-		M:UpdateExpBar()
-		M:UpdateRepBar()
-	end
-end
-
-local function OnFade()
-	UpperRepExpBar:Hide()
-end
-
-function M:GetNumShownBars()
-	local shownBars = 0
-	if showRepBar and showExpBar then
-		shownBars = 2
-	elseif (showRepBar and not showExpBar) or (not showRepBar and showExpBar) then
-		shownBars = 1
-	end
-
-	return shownBars
-end
-
-function M:PositionBars(num)
-	if num == 1 then
-		UpperRepExpBarHolder:Height(TOPBAR_HEIGHT / 2)
-		UpperRepExpBar:Height(TOPBAR_HEIGHT / 2)
-		UpperRepExpBar.left:Height(TOPBAR_HEIGHT / 2)
-		UpperRepExpBar.right:Height(TOPBAR_HEIGHT / 2)
-	else
-		UpperRepExpBarHolder:Height(TOPBAR_HEIGHT)
-		UpperRepExpBar:Height(TOPBAR_HEIGHT)
-		UpperRepExpBar.left:Height(TOPBAR_HEIGHT)
-		UpperRepExpBar.right:Height(TOPBAR_HEIGHT)
-	end
-
-	UpperRepExpBarHolder:Show()
-
-	if num == 2 then
-		UpperRepExpBar:Show()
-		UpperReputationBar:ClearAllPoints()
-		UpperExperienceBar:ClearAllPoints()
-		UpperExperienceBar:SetPoint('CENTER', UpperRepExpBar.bottom, 'CENTER')
-		UpperReputationBar:SetPoint('CENTER', UpperRepExpBar.middle, 'CENTER')
-	elseif num == 1 then
-		UpperRepExpBar:Show()
-		if showRepBar then
-			UpperReputationBar:ClearAllPoints()
-			UpperReputationBar:SetPoint('CENTER', UpperRepExpBar.bottom, 'CENTER')
-		else
-			UpperExperienceBar:ClearAllPoints()
-			UpperExperienceBar:SetPoint('CENTER', UpperRepExpBar.bottom, 'CENTER')
-		end
-	elseif UpperRepExpBarHolder:IsShown() then
-		UpperRepExpBarHolder:Hide()
-	end
-end
-
-local function ExpOnEnter(self)
-	OnEnter()
-	GameTooltip:ClearLines()
-	GameTooltip:SetOwner(self:GetParent(), 'ANCHOR_BOTTOM', 0 -4)
-
-	local cur, max = GetXP('player')
-	local rested = GetXPExhaustion()
-	GameTooltip:AddLine(L['Experience'])
-	GameTooltip:AddLine(' ')
-
-	GameTooltip:AddDoubleLine(L['XP:'], string.format(' %d / %d (%d%%)', cur, max, cur/max * 100), 1, 1, 1)
-	GameTooltip:AddDoubleLine(L['Remaining:'], string.format(' %d (%d%% - %d '..L['Bars']..')', max - cur, (max - cur) / max * 100, 20 * (max - cur) / max), 1, 1, 1)
-
-	if rested then
-		GameTooltip:AddDoubleLine(L['Rested:'], string.format('+%d (%d%%)', rested, rested / max * 100), 1, 1, 1)
-	end
-
-	GameTooltip:Show()
-end
-
-function M:UpdateExpBar(event)
-	local bar = UpperExperienceBar
-	if not bar then
-		bar = CreateFrame('StatusBar', 'UpperExperienceBar', UpperRepExpBar)
-		bar:Size(BAR_WIDTH + E.RBRWidth, BAR_HEIGHT)
-		bar:CreateBackdrop('Default')
-		bar:SetStatusBarTexture(E.media.normTex)
-		bar:SetFrameLevel(UpperRepExpBar:GetFrameLevel() + 3)
-		bar:SetStatusBarColor(0, 0.4, 1, .8) -- (0, 0.4, 1, .8)
-
-		-- Set the text --
-		bar.txt = bar:CreateFontString(nil,'OVERLAY')
-		bar.txt:FontTemplate(nil, 10) -- change fontsize here
-		bar.txt:Point('CENTER', UpperExperienceBar, 'CENTER', 0, 0)
-		bar.txt:SetJustifyH('CENTER')
-		bar.txt:SetJustifyV('MIDDLE')
-		------------------
-		bar:EnableMouse(true)
-		bar:SetScript('OnMouseDown', OnClick)
-		bar:SetScript('OnEnter', ExpOnEnter)
-		bar:SetScript('OnLeave', OnLeave)
-
-		bar.rested = CreateFrame('StatusBar', 'UpperExperienceRestedBar', UpperExperienceBar)
-		bar.rested:Size(bar:GetSize())
-		bar.rested:SetAllPoints()
-		bar.rested:SetStatusBarTexture(E.media.normTex)
-		bar.rested:SetStatusBarColor(1, 0, 1, 0.2)
-	end
-
-	if(UnitLevel('player') == MAX_PLAYER_LEVEL) then
+	if(UnitLevel('player') == MAX_PLAYER_LEVEL) or IsXPUserDisabled() then
 		bar:Hide()
-		showExpBar = false
-	elseif IsXPUserDisabled() then
-		bar:Hide()
-		showExpBar = false
 	else
 		bar:Show()
-		showExpBar = true

-		local cur, max = GetXP('player')
+		local cur, max = self:GetXP('player')
+		bar.statusBar:SetMinMaxValues(0, max)
+		bar.statusBar:SetValue(cur - 1 >= 0 and cur - 1 or 0)
+		bar.statusBar:SetValue(cur)
+
 		local rested = GetXPExhaustion()
-		local xprest
+		local text = ''
+		local textFormat = E.db.general.experience.textFormat
+
 		if rested and rested > 0 then
 			bar.rested:SetMinMaxValues(0, max)
 			bar.rested:SetValue(math.min(cur + rested, max))
-			xprest = E:ShortValue(rested)
+
+			if E.db.sle.exprep.explong then
+				if textFormat == 'PERCENT' then
+					text = string.format('%d%% '..L['Rested:']..' %d%%', cur / max * 100, rested / max * 100)
+				elseif textFormat == 'CURMAX' then
+					text = string.format('%s - %s '..L['Rested:']..' %s', cur, max, rested)
+				elseif textFormat == 'CURPERC' then
+					text = string.format('%s - %d%% '..L['Rested:']..' [%d%%]', cur, cur / max * 100, rested, rested / max * 100)
+				end
+			else
+				if textFormat == 'PERCENT' then
+					text = string.format('%d%% R:%d%%', cur / max * 100, rested / max * 100)
+				elseif textFormat == 'CURMAX' then
+					text = string.format('%s - %s R:%s', E:ShortValue(cur), E:ShortValue(max), E:ShortValue(rested))
+				elseif textFormat == 'CURPERC' then
+					text = string.format('%s - %d%% R:%s [%d%%]', E:ShortValue(cur), cur / max * 100, E:ShortValue(rested), rested / max * 100)
+				end
+			end
 		else
 			bar.rested:SetMinMaxValues(0, 1)
 			bar.rested:SetValue(0)
+
+			if E.db.sle.exprep.explong then
+				if textFormat == 'PERCENT' then
+					text = string.format('%d%%', cur / max * 100)
+				elseif textFormat == 'CURMAX' then
+					text = string.format('%s - %s', cur, max)
+				elseif textFormat == 'CURPERC' then
+					text = string.format('%s - %d%%', cur, cur / max * 100)
+				end
+			else
+				if textFormat == 'PERCENT' then
+					text = string.format('%d%%', cur / max * 100)
+				elseif textFormat == 'CURMAX' then
+					text = string.format('%s - %s', E:ShortValue(cur), E:ShortValue(max))
+				elseif textFormat == 'CURPERC' then
+					text = string.format('%s - %d%%', E:ShortValue(cur), cur / max * 100)
+				end
+			end
 		end

-		bar:SetMinMaxValues(0, max)
-		bar:SetValue(cur - 1 >= 0 and cur - 1 or 0)
-		bar:SetValue(cur)
-		-- enable text
-		if E.db.sle.xprepinfo.enabled then
-			M:CreateExpTextString()
-		end
+		bar.text:SetText(text)
 	end

-	M:PositionBars(self:GetNumShownBars())
+	self:UpdateExpRepAnchors()
 end

-local function RepOnEnter(self)
-	OnEnter()
-	GameTooltip:ClearLines()
-	GameTooltip:SetOwner(self:GetParent(), 'ANCHOR_BOTTOM', 0 -4)
+function M:UpdateReputation(event)
+	local bar = self.repBar

+	local ID = 100
 	local name, reaction, min, max, value = GetWatchedFactionInfo()
-	if name then
-		GameTooltip:AddLine(name)
-		GameTooltip:AddLine(' ')
-
-		GameTooltip:AddDoubleLine(STANDING..':', _G['FACTION_STANDING_LABEL'..reaction], 1, 1, 1)
-		GameTooltip:AddDoubleLine(REPUTATION..':', format('%d / %d (%d%%)', value - min, max - min, (value - min) / (max - min) * 100), 1, 1, 1)
-	end
-	GameTooltip:Show()
-end
+	local numFactions = GetNumFactions();

-function M:UpdateRepBar(event)
-	local bar = UpperReputationBar
-	local name, reaction, min, max, value = GetWatchedFactionInfo()
-	if not bar then
-		bar = CreateFrame('StatusBar', 'UpperReputationBar', UpperRepExpBar)
-		bar:Size(BAR_WIDTH + E.RBRWidth, BAR_HEIGHT)
-		bar:CreateBackdrop('Default')
-		bar:SetStatusBarTexture(E.media.normTex)
-		bar:SetFrameLevel(UpperRepExpBar:GetFrameLevel() + 3)
-		bar:EnableMouse(true)
-		bar:SetScript('OnMouseDown', OnClick)
-		bar:SetScript('OnEnter', RepOnEnter)
-		bar:SetScript('OnLeave', OnLeave)
-		-- set the text
-		bar.txt = bar:CreateFontString(nil,'OVERLAY')
-		bar.txt:FontTemplate(nil, 10) -- change fontsize here
-		bar.txt:Point('CENTER', UpperReputationBar, 'CENTER', 0, 0)
-		bar.txt:SetJustifyH('CENTER')
-		bar.txt:SetJustifyV('MIDDLE')
-		----------------------------
-	end
-
-	local name, reaction, min, max, value = GetWatchedFactionInfo()
 	if not name then
 		bar:Hide()
-		showRepBar = false
 	else
 		bar:Show()
-		showRepBar = true
-
+
+		local text = ''
+		local textFormat = E.db.general.reputation.textFormat
 		local color = FACTION_BAR_COLORS[reaction]
-		bar:SetStatusBarColor(color.r, color.g, color.b)
+		bar.statusBar:SetStatusBarColor(color.r, color.g, color.b)

-		bar:SetMinMaxValues(min, max)
-		bar:SetValue(value)
-		-- enable text
-		if E.db.sle.xprepinfo.enabled then
-			M:CreateRepTextString()
-		end
-	end
+		bar.statusBar:SetMinMaxValues(min, max)
+		bar.statusBar:SetValue(value)

-	M:PositionBars(self:GetNumShownBars())
-end
-
-function M:UpdateExpRepBarAnchor()
-	UpperRepExpBarHolder:ClearAllPoints()
-	if E.db.general.expRepPos == 'TOP_SCREEN' then
-		BAR_WIDTH = E.eyefinity or E.UIParent:GetWidth(); BAR_WIDTH = BAR_WIDTH / 5
-		UpperRepExpBarHolder:Point('TOP', E.UIParent, 'TOP', 0, -25)
-		UpperRepExpBarHolder:SetParent(E.UIParent)
-	elseif E.db.general.raidReminder == true then
-		BAR_WIDTH = E.MinimapSize + 1
-		UpperRepExpBarHolder:Point('TOP', MMHolder, 'BOTTOM', 1, -5)
-		UpperRepExpBarHolder:SetParent(Minimap)
-	else
-		BAR_WIDTH = E.MinimapSize
-		UpperRepExpBarHolder:Point('TOP', MMHolder, 'BOTTOM', 0, -5)
-		UpperRepExpBarHolder:SetParent(Minimap)
-	end
-
-	UpperRepExpBarHolder:SetFrameLevel(0)
-	UpperRepExpBarHolder:Size(BAR_WIDTH - 30 + E.RBRWidth, TOPBAR_HEIGHT)
-
-	if UpperReputationBar then
-		UpperReputationBar:Size(BAR_WIDTH + E.RBRWidth, BAR_HEIGHT)
-		if E.db.sle.xprepinfo.enabled then
-			M:CreateRepTextString()
-		else
-			UpperReputationBar.txt:SetText('')
-		end
-	end
-
-	if UpperExperienceBar then
-		UpperExperienceBar:Size(BAR_WIDTH + E.RBRWidth, BAR_HEIGHT)
-		if E.db.sle.xprepinfo.enabled then
-			M:CreateExpTextString()
-		else
-			UpperExperienceBar.txt:SetText('')
-		end
-	end
-
-	self:PositionBars(self:GetNumShownBars())
-
-end
-
-function M:CreateExpTextString()
-	local cur, max = GetXP('player')
-	local rested = GetXPExhaustion()
-	local xprest
-	if rested and rested > 0 then
-		UpperExperienceBar.rested:SetMinMaxValues(0, max)
-		UpperExperienceBar.rested:SetValue(math.min(cur + rested, max))
-		xprest = E:ShortValue(rested)
-	else
-		UpperExperienceBar.rested:SetMinMaxValues(0, 1)
-		UpperExperienceBar.rested:SetValue(0)
-	end
-
-	if E.db.general.expRepPos == "TOP_SCREEN" and E.db.sle.xprepinfo.xprepdet then
-		if E.db.sle.xprepinfo.xprest and rested and rested > 0 then
-			UpperExperienceBar.txt:SetText(LEVEL_ABBR..' '..string.format('%s XP: %d / %d (%d%%)', UnitLevel('player'), cur, max, cur/max * 100)..' + '..L['Rested:']..xprest)
-		else
-			UpperExperienceBar.txt:SetText(LEVEL_ABBR..' '..string.format('%s XP: %d / %d (%d%%)', UnitLevel('player'), cur, max, cur/max * 100))
-		end
-	else
-		UpperExperienceBar.txt:SetText('XP:'..string.format(' %d / %d (%d%%)', cur, max, cur/max * 100))
-	end
-end
-
-function M:CreateRepTextString()
-	local name, reaction, min, max, value = GetWatchedFactionInfo()
-
-	if not name then
-		return
-	else
-		if E.db.general.expRepPos == "TOP_SCREEN" and E.db.sle.xprepinfo.xprepdet then
-			if E.db.sle.xprepinfo.repreact then
-				UpperReputationBar.txt:SetText(name..': '..format('%d / %d ('.._G['FACTION_STANDING_LABEL'..reaction]..' '..'%d%%)', value - min, max - min, (value - min) / (max - min) * 100))
-			else
-				UpperReputationBar.txt:SetText(name..': '..format('%d / %d (%d%%)', value - min, max - min, (value - min) / (max - min) * 100))
+		for i=1, numFactions do
+			local factionName, _, standingID = GetFactionInfo(i);
+			if factionName == name then
+				ID = standingID
 			end
+		end
+
+
+		if E.db.sle.exprep.replong then
+			if textFormat == 'PERCENT' then
+				text = string.format('%d%% [%s]', value / max * 100, _G['FACTION_STANDING_LABEL'..ID])
+			elseif textFormat == 'CURMAX' then
+				text = string.format('%s - %s [%s]', value, max, _G['FACTION_STANDING_LABEL'..ID])
+			elseif textFormat == 'CURPERC' then
+				text = string.format('%s - %d%% [%s]', value, value / max * 100, _G['FACTION_STANDING_LABEL'..ID])
+			end
 		else
-			UpperReputationBar.txt:SetText(name..': '..format('%d%%', (value - min) / (max - min) * 100))
+			if textFormat == 'PERCENT' then
+				text = string.format('%d%% [%s]', value / max * 100, _G['FACTION_STANDING_LABEL'..ID])
+			elseif textFormat == 'CURMAX' then
+				text = string.format('%s - %s [%s]', E:ShortValue(value), E:ShortValue(max), _G['FACTION_STANDING_LABEL'..ID])
+			elseif textFormat == 'CURPERC' then
+				text = string.format('%s - %d%% [%s]', E:ShortValue(value), value / max * 100, _G['FACTION_STANDING_LABEL'..ID])
+			end
 		end
-	end
-end
-
-
-function M:LoadExpRepBar()
-	local holder = CreateFrame('Button', 'UpperRepExpBarHolder', E.UIParent)
-	holder:Point('TOP', E.UIParent, 'TOP', 0, 2)
-	holder:SetScript('OnEnter', OnEnter)
-	holder:SetScript('OnLeave', OnLeave)
-	holder:SetScript('OnClick', OnClick)
-	holder:SetFrameStrata('BACKGROUND')
-
-	local bar = CreateFrame('Frame', 'UpperRepExpBar', holder)
-	bar:SetAllPoints(holder)
-	bar:Hide()

-	bar.left = CreateFrame('Frame', nil, bar)
-	bar.left:Point('RIGHT', bar, 'LEFT')
-	bar.left:Width(2)
-	bar.left:Height(30)
-	bar.left:SetTemplate('Default')
-	bar.left:SetFrameLevel(bar:GetFrameLevel())
-	bar.left:Hide()
-
-	bar.right = CreateFrame('Frame', nil, bar)
-	bar.right:Point('LEFT', bar, 'RIGHT')
-	bar.right:Width(2)
-	bar.right:Height(30)
-	bar.right:SetTemplate('Default')
-	bar.right:SetFrameLevel(bar:GetFrameLevel())
-	bar.right:Hide()
-
-	bar.bottom = CreateFrame('Frame', nil, bar)
-	bar.bottom:SetTemplate('Default', true)
-	bar.bottom:Point('BOTTOM', bar, 'BOTTOM', 0, BAR_HEIGHT + 2)
-	bar.bottom:Width(bar:GetWidth() + 2)
-	bar.bottom:Height(2)
-	bar.bottom:SetFrameLevel(bar:GetFrameLevel())
-
-	bar.middle = CreateFrame('Frame', nil, bar)
-	bar.middle:Point('CENTER', bar, 'CENTER', 0, BAR_HEIGHT + 2)
-	bar.middle:Width(bar:GetWidth() + 2)
-	bar.middle:Height(2)
-	bar.middle:SetFrameLevel(bar:GetFrameLevel())
-
-	self:UpdateExpRepBarAnchor()
-
-	--Register experience bar related events..
-	if UnitLevel('player') ~= MAX_PLAYER_LEVEL then
-		self:RegisterEvent('PLAYER_XP_UPDATE', 'UpdateExpBar')
-		self:RegisterEvent('PLAYER_LEVEL_UP', 'UpdateExpBar')
-		self:RegisterEvent("DISABLE_XP_GAIN", 'UpdateExpBar')
-		self:RegisterEvent("ENABLE_XP_GAIN", 'UpdateExpBar')
-		self:RegisterEvent('UPDATE_EXHAUSTION', 'UpdateExpBar')
-		self:UpdateExpBar()
+		bar.text:SetText(text)
 	end
-
-	--Reputation Events
-	self:RegisterEvent('UPDATE_FACTION', 'UpdateRepBar')
-	OnLeave()
+
+	self:UpdateExpRepAnchors()
 end
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/exprepbar/options.lua b/ElvUI_SLE/modules/exprepbar/options.lua
index 26f04ea..2d3b720 100644
--- a/ElvUI_SLE/modules/exprepbar/options.lua
+++ b/ElvUI_SLE/modules/exprepbar/options.lua
@@ -1,65 +1,28 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local M = E:GetModule('Misc')

 --Options for Exp/Rep text
 E.Options.args.sle.args.exprep = {
 	type = "group",
     name = L["Xp-Rep Text"],
-    order = 2,
+    order = 3,
+	guiInline = true,
    	args = {
-		xprepmodheader = {
+		explong = {
 		order = 1,
-		type = "header",
-		name = L["XP-Rep Text mod by Benik"],
+		type = "toggle",
+		name = L["Full value on Exp Bar"],
+		desc = L["Changes the way text is shown on exp bar."],
+		get = function(info) return E.db.sle.exprep.explong end,
+		set = function(info, value) E.db.sle.exprep.explong = value; M:UpdateExperience() end
 		},
-		xprep_top = {
-			order = 2,
-			type = "group",
-			name = L["General"],
-			guiInline = true,
-			args = {
-				xprepinfo = {
-				order = 1,
-				type = "toggle",
-				name = L["Enable"],
-				desc = L["Show/Hide XP-Rep Info."],
-				get = function(info) return E.db.sle.xprepinfo.enabled end,
-				set = function(info, value) E.db.sle.xprepinfo.enabled = value; M:UpdateExpRepBarAnchor() end
-				},
-				xprepdet = {
-				order = 2,
-				type = "toggle",
-				name = L["Detailed"],
-				desc = L["More XP-Rep Info. Shown only when bars are on top."],
-				get = function(info) return E.db.sle.xprepinfo.xprepdet end,
-				set = function(info, value) E.db.sle.xprepinfo.xprepdet = value; M:UpdateExpRepBarAnchor() end
-				},
-			},
-		},
-		detailed_opt = {
-			order = 3,
-			type = "group",
-			name = L["Detailed Options"],
-			guiInline = true,
-			disabled = function() return not E.db.sle.xprepinfo.xprepdet end,
-			args = {
-				repreact = {
-				order = 1,
-				type = "toggle",
-				name = L["Reaction Name"],
-				desc = L["Show/Hide Reaction status on bar."],
-				get = function(info) return E.db.sle.xprepinfo.repreact end,
-				set = function(info, value) E.db.sle.xprepinfo.repreact = value; M:UpdateExpRepBarAnchor() end
-				},
-				xprest = {
-				order = 2,
-				type = "toggle",
-				name = L["Rested Value"],
-				desc = L["Show/Hide Rested value."],
-				get = function(info) return E.db.sle.xprepinfo.xprest end,
-				set = function(info, value) E.db.sle.xprepinfo.xprest = value; M:UpdateExpRepBarAnchor() end
-				},
-			},
+		replong = {
+		order = 2,
+		type = "toggle",
+		name = L["Full value on Rep Bar"],
+		desc = L["Changes the way text is shown on rep bar."],
+		get = function(info) return E.db.sle.exprep.replong end,
+		set = function(info, value) E.db.sle.exprep.replong = value; M:UpdateReputation() end
 		},
 	},
 }
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/load_modules.xml b/ElvUI_SLE/modules/load_modules.xml
index 8afe6be..b5688cb 100644
--- a/ElvUI_SLE/modules/load_modules.xml
+++ b/ElvUI_SLE/modules/load_modules.xml
@@ -1,5 +1,4 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/">
-	<Include file='actionbars\load_actionbars.xml'/>
 	<Include file='auras\load_auras.xml'/>
 	<Include file='autorelease\load_autorelease.xml'/>
 	<Include file='backgrounds\load_backgrounds.xml'/>
@@ -7,7 +6,6 @@
 	<Include file='datatexts\load_datatexts.xml'/>
 	<Include file='exprepbar\load_exprepbar.xml'/>
 	<Include file='marks\load_marks.xml'/>
-	<Include file='microbar\load_microbar.xml'/>
 	<Include file='raidutility\load_raidutility.xml'/>
 	<Include file='skins\load_skins.xml'/>
 	<Include file='uibuttons\load_uibuttons.xml'/>
diff --git a/ElvUI_SLE/modules/marks/marks.lua b/ElvUI_SLE/modules/marks/marks.lua
index b5b1ea6..bde5dfb 100644
--- a/ElvUI_SLE/modules/marks/marks.lua
+++ b/ElvUI_SLE/modules/marks/marks.lua
@@ -1,5 +1,5 @@
 --Raid mark bar. Similar to quickmark which just semms to be impossible to skin
-local E, L, V, P, G = unpack(ElvUI); --Engine
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local RM = E:NewModule('RaidMarks', 'AceHook-3.0', 'AceEvent-3.0');

 local mark_menu = CreateFrame("Frame", "Mark_Menu", E.UIParent)
@@ -14,7 +14,7 @@ local m8 = CreateFrame("Button", "M8", Mark_Menu, "SecureActionButtonTemplate")

 --Main frame
 function RM:CreateFrame()
-	mark_menu:Point('BOTTOMRIGHT', RightChatTab, 'TOPRIGHT', 2, 40) --Default positon
+	mark_menu:Point("BOTTOMRIGHT", RightChatTab, "TOPRIGHT", 2, 3) --Default positon
 	mark_menu:SetFrameStrata('LOW');
 	mark_menu:CreateBackdrop('Default');
 	mark_menu.backdrop:SetAllPoints();
@@ -199,7 +199,7 @@ function RM:Initialize()
 	RM:SetButtonAttributes()
 	RM:UpdateVisibility()

-	E:CreateMover(mark_menu, "MarkMover", "RM")
+	E:CreateMover(mark_menu, "MarkMover", "RM", nil, nil, nil, "ALL,S&L")
 end

 E:RegisterModule(RM:GetName())
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/marks/options.lua b/ElvUI_SLE/modules/marks/options.lua
index f359f6b..46430d5 100644
--- a/ElvUI_SLE/modules/marks/options.lua
+++ b/ElvUI_SLE/modules/marks/options.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G = unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local RM = E:GetModule('RaidMarks')

 --Main options group
@@ -6,7 +6,6 @@ E.Options.args.sle.args.marks = {
 	order = 5,
 	type = "group",
 	name = L["Raid Marks"],
-	--guiInline = true,
 	args = {
 		marksheader = {
 			order = 1,
diff --git a/ElvUI_SLE/modules/raidutility/options.lua b/ElvUI_SLE/modules/raidutility/options.lua
index 0d20429..2c7ae4c 100644
--- a/ElvUI_SLE/modules/raidutility/options.lua
+++ b/ElvUI_SLE/modules/raidutility/options.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local RU = E:GetModule('RaidUtility')

 --Raid Utility
@@ -35,5 +35,12 @@ E.Options.args.sle.args.raidutil = {
 			get = function(info) return E.db.sle.raidutil.ypos end,
 			set = function(info, value) E.db.sle.raidutil.ypos = value; RU:MoveButton() end,
 		},
+		show = {
+		order = 5,
+		type = "execute",
+		name = L["Show Button"],
+		desc = L["Show/hide Raid Utility button.\nThis option is not permanent. The button will act as normal when joining/leaving groups."],
+		func = function() RU:ToggleButton() end,
+		},
 	},
 }
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/raidutility/raidutility.lua b/ElvUI_SLE/modules/raidutility/raidutility.lua
index ac8de03..dc87cc2 100644
--- a/ElvUI_SLE/modules/raidutility/raidutility.lua
+++ b/ElvUI_SLE/modules/raidutility/raidutility.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); -- Import Functions/Constants, Config, Locales
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local RU = E:GetModule('RaidUtility');
 local M = E:GetModule('Misc');

@@ -6,8 +6,8 @@ E.RaidUtility = RU

 --Moved RU down cause of top datatext panels
 function RU:MoveButton()
-	ShowButton:ClearAllPoints()
-	ShowButton:Point("CENTER", E.UIParent, "BOTTOMLEFT", E.db.sle.raidutil.xpos, E.db.sle.raidutil.ypos)
+	RaidUtility_ShowButton:ClearAllPoints()
+	RaidUtility_ShowButton:Point("CENTER", E.UIParent, "BOTTOMLEFT", E.db.sle.raidutil.xpos, E.db.sle.raidutil.ypos)
 end

 --For moving raid utility button
@@ -18,5 +18,13 @@ function M:Initialize()
 	RU:MoveButton()
 end

+function RU:ToggleButton()
+	if RaidUtility_ShowButton:IsShown() then
+		RaidUtility_ShowButton:Hide()
+	else
+		RaidUtility_ShowButton:Show()
+	end
+end
+

-ShowButton:RegisterForDrag("") --Unregister any buttons for dragging.
\ No newline at end of file
+RaidUtility_ShowButton:RegisterForDrag("") --Unregister any buttons for dragging.
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/skins/addons/load_addons.xml b/ElvUI_SLE/modules/skins/addons/load_addons.xml
index 2def9d7..45ff8cb 100644
--- a/ElvUI_SLE/modules/skins/addons/load_addons.xml
+++ b/ElvUI_SLE/modules/skins/addons/load_addons.xml
@@ -1,15 +1,5 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/">
-	<Include file='altoholic\load_altoholic.xml'/>
-	<Script file='auctionator.lua'/>
-	<Script file='dbm.lua'/>
-	<Script file='dbmopt.lua'/>
-	<Script file='extvendor.lua'/>
-	<Script file='moveanything.lua'/>
 	<Script file='notes.lua'/>
 	<Script file='oces.lua'/>
-	<Script file='outfitter.lua'/>
-	<Script file='poisoner.lua'/>
-	<Script file='skada.lua'/>
 	<Script file='tdb.lua'/>
-	<Script file='tellmewhen.lua'/>
 </Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/skins/addons/notes.lua b/ElvUI_SLE/modules/skins/addons/notes.lua
index a5b10f3..60a9635 100644
--- a/ElvUI_SLE/modules/skins/addons/notes.lua
+++ b/ElvUI_SLE/modules/skins/addons/notes.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local S = E:GetModule('Skins')

 local function LoadSkin()
diff --git a/ElvUI_SLE/modules/skins/addons/oces.lua b/ElvUI_SLE/modules/skins/addons/oces.lua
index 306c005..a5f685e 100644
--- a/ElvUI_SLE/modules/skins/addons/oces.lua
+++ b/ElvUI_SLE/modules/skins/addons/oces.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local S = E:GetModule('Skins')

 local function LoadSkin()
diff --git a/ElvUI_SLE/modules/skins/addons/tdb.lua b/ElvUI_SLE/modules/skins/addons/tdb.lua
index 24d01c7..eda9c35 100644
--- a/ElvUI_SLE/modules/skins/addons/tdb.lua
+++ b/ElvUI_SLE/modules/skins/addons/tdb.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local S = E:GetModule('Skins')

 local function LoadSkin()
diff --git a/ElvUI_SLE/modules/skins/blizzard/extraab.lua b/ElvUI_SLE/modules/skins/blizzard/extraab.lua
index 5078e93..4a67b59 100644
--- a/ElvUI_SLE/modules/skins/blizzard/extraab.lua
+++ b/ElvUI_SLE/modules/skins/blizzard/extraab.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G = unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore

 local function PositionHookUpdate()
 	-- hook the ExtraActionButton1 texture, idea by roth via WoWInterface forums
diff --git a/ElvUI_SLE/modules/skins/blizzard/load_blizzard.xml b/ElvUI_SLE/modules/skins/blizzard/load_blizzard.xml
index 510da41..566848e 100644
--- a/ElvUI_SLE/modules/skins/blizzard/load_blizzard.xml
+++ b/ElvUI_SLE/modules/skins/blizzard/load_blizzard.xml
@@ -1,4 +1,4 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/">
 	<Script file='extraab.lua'/>
-	<Script file='misc.lua'/>
+	<Script file='petbattle.lua'/>
 </Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/skins/blizzard/petbattle.lua b/ElvUI_SLE/modules/skins/blizzard/petbattle.lua
new file mode 100644
index 0000000..6376999
--- /dev/null
+++ b/ElvUI_SLE/modules/skins/blizzard/petbattle.lua
@@ -0,0 +1,368 @@
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
+local S = E:GetModule('Skins')
+
+local function LoadSkin()
+	if E.private.skins.blizzard.enable ~= true or E.private.skins.blizzard.petbattleui ~= true then return end
+	local f = PetBattleFrame
+	local bf = f.BottomFrame
+	local infoBars = {
+		f.ActiveAlly,
+		f.ActiveEnemy
+	}
+
+	-- TOP FRAMES
+	f:StripTextures()
+
+	for index, infoBar in pairs(infoBars) do
+		infoBar.Border:SetAlpha(0)
+		infoBar.Border2:SetAlpha(0)
+		infoBar.healthBarWidth = 300
+
+		infoBar.IconBackdrop = CreateFrame("Frame", nil, infoBar)
+		infoBar.IconBackdrop:SetFrameLevel(infoBar:GetFrameLevel() - 1)
+		infoBar.IconBackdrop:SetOutside(infoBar.Icon)
+		infoBar.IconBackdrop:SetTemplate()
+		infoBar.BorderFlash:Kill()
+		infoBar.HealthBarBG:Kill()
+		infoBar.HealthBarFrame:Kill()
+		infoBar.HealthBarBackdrop = CreateFrame("Frame", nil, infoBar)
+		infoBar.HealthBarBackdrop:SetFrameLevel(infoBar:GetFrameLevel() - 1)
+		infoBar.HealthBarBackdrop:SetTemplate("Transparent")
+		infoBar.HealthBarBackdrop:Width(infoBar.healthBarWidth + 4)
+		infoBar.ActualHealthBar:SetTexture(E.media.normTex)
+
+		infoBar.PetTypeFrame = CreateFrame("Frame", nil, infoBar)
+		infoBar.PetTypeFrame:Size(100, 23)
+		infoBar.PetTypeFrame.text = infoBar.PetTypeFrame:CreateFontString(nil, 'OVERLAY')
+		infoBar.PetTypeFrame.text:FontTemplate()
+		infoBar.PetTypeFrame.text:SetText("")
+
+		infoBar.ActualHealthBar:ClearAllPoints()
+		infoBar.Name:ClearAllPoints()
+
+		infoBar.FirstAttack = infoBar:CreateTexture(nil, "ARTWORK")
+		infoBar.FirstAttack:Size(30)
+		infoBar.FirstAttack:SetTexture("Interface\\PetBattles\\PetBattle-StatIcons")
+		if index == 1 then
+			infoBar.HealthBarBackdrop:Point('TOPLEFT', infoBar.ActualHealthBar, 'TOPLEFT', -2, 2)
+			infoBar.HealthBarBackdrop:Point('BOTTOMLEFT', infoBar.ActualHealthBar, 'BOTTOMLEFT', -2, -2)
+			infoBar.ActualHealthBar:SetVertexColor(171/255, 214/255, 116/255)
+			f.Ally2.iconPoint = infoBar.IconBackdrop
+			f.Ally3.iconPoint = infoBar.IconBackdrop
+
+			infoBar.Icon:Point("TOP", E.UIParent, "TOP", 0, -23) --Player's pet frame
+
+			infoBar.ActualHealthBar:Point('BOTTOMLEFT', infoBar.Icon, 'BOTTOMRIGHT', 10, 0)
+			infoBar.Name:Point('BOTTOMLEFT', infoBar.ActualHealthBar, 'TOPLEFT', 0, 10)
+			infoBar.PetTypeFrame:SetPoint("BOTTOMRIGHT",infoBar.HealthBarBackdrop, "TOPRIGHT", 0, 4)
+			infoBar.PetTypeFrame.text:SetPoint("RIGHT")
+
+			infoBar.FirstAttack:SetPoint("LEFT", infoBar.HealthBarBackdrop, "RIGHT", 5, 0)
+			infoBar.FirstAttack:SetTexCoord(infoBar.SpeedIcon:GetTexCoord())
+			infoBar.FirstAttack:SetVertexColor(.1,.1,.1,1)
+
+		else
+			infoBar.HealthBarBackdrop:Point('TOPRIGHT', infoBar.ActualHealthBar, 'TOPRIGHT', 2, 2)
+			infoBar.HealthBarBackdrop:Point('BOTTOMRIGHT', infoBar.ActualHealthBar, 'BOTTOMRIGHT', 2, -2)
+			infoBar.ActualHealthBar:SetVertexColor(196/255,  30/255,  60/255)
+			f.Enemy2.iconPoint = infoBar.IconBackdrop
+			f.Enemy3.iconPoint = infoBar.IconBackdrop
+
+			infoBar.Icon:Point("TOP", E.UIParent, "TOP", 0, -23) --Enemy frame
+
+			infoBar.ActualHealthBar:Point('BOTTOMRIGHT', infoBar.Icon, 'BOTTOMLEFT', -10, 0)
+			infoBar.Name:Point('BOTTOMRIGHT', infoBar.ActualHealthBar, 'TOPRIGHT', 0, 10)
+
+			infoBar.PetTypeFrame:SetPoint("BOTTOMLEFT",infoBar.HealthBarBackdrop, "TOPLEFT", 2, 4)
+			infoBar.PetTypeFrame.text:SetPoint("LEFT")
+
+			infoBar.FirstAttack:SetPoint("RIGHT", infoBar.HealthBarBackdrop, "LEFT", -5, 0)
+			infoBar.FirstAttack:SetTexCoord(.5, 0, .5, 1)
+			infoBar.FirstAttack:SetVertexColor(.1,.1,.1,1)
+		end
+
+		infoBar.HealthText:ClearAllPoints()
+		infoBar.HealthText:SetPoint('CENTER', infoBar.HealthBarBackdrop, 'CENTER')
+
+		infoBar.PetType:ClearAllPoints()
+		infoBar.PetType:SetAllPoints(infoBar.PetTypeFrame)
+		infoBar.PetType:SetFrameLevel(infoBar.PetTypeFrame:GetFrameLevel() + 2)
+		infoBar.PetType:SetAlpha(0)
+
+		infoBar.LevelUnderlay:SetAlpha(0)
+		infoBar.Level:SetFontObject(NumberFont_Outline_Huge)
+		infoBar.Level:ClearAllPoints()
+		infoBar.Level:Point('BOTTOMLEFT', infoBar.Icon, 'BOTTOMLEFT', 2, 2)
+		if infoBar.SpeedIcon then
+			infoBar.SpeedIcon:ClearAllPoints()
+			infoBar.SpeedIcon:SetPoint("CENTER") -- to set
+			infoBar.SpeedIcon:SetAlpha(0)
+			infoBar.SpeedUnderlay:SetAlpha(0)
+		end
+	end
+
+	-- PETS SPEED INDICATOR UPDATE
+	hooksecurefunc("PetBattleFrame_UpdateSpeedIndicators", function(self)
+		if not f.ActiveAlly.SpeedIcon:IsShown() and not f.ActiveEnemy.SpeedIcon:IsShown() then
+			f.ActiveAlly.FirstAttack:Hide()
+			f.ActiveEnemy.FirstAttack:Hide()
+			return
+		end
+
+		for i, infoBar in pairs(infoBars) do
+			infoBar.FirstAttack:Show()
+			if infoBar.SpeedIcon:IsShown() then
+				infoBar.FirstAttack:SetVertexColor(0,1,0,1)
+			else
+				infoBar.FirstAttack:SetVertexColor(.8,0,.3,1)
+			end
+		end
+	end)
+
+
+	-- PETS UNITFRAMES PET TYPE UPDATE
+	hooksecurefunc("PetBattleUnitFrame_UpdatePetType", function(self)
+		if self.PetType then
+			local petType = C_PetBattles.GetPetType(self.petOwner, self.petIndex)
+			if self.PetTypeFrame then
+				self.PetTypeFrame.text:SetText(PET_TYPE_SUFFIX[petType])
+			end
+		end
+	end)
+
+	-- PETS UNITFRAMES AURA SKINS
+	hooksecurefunc("PetBattleAuraHolder_Update", function(self)
+		if not self.petOwner or not self.petIndex then return end
+
+		local nextFrame = 1
+		for i=1, C_PetBattles.GetNumAuras(self.petOwner, self.petIndex) do
+			local auraID, instanceID, turnsRemaining, isBuff = C_PetBattles.GetAuraInfo(self.petOwner, self.petIndex, i)
+			if (isBuff and self.displayBuffs) or (not isBuff and self.displayDebuffs) then
+				local frame = self.frames[nextFrame]
+
+				-- always hide the border
+				frame.DebuffBorder:Hide()
+
+				if not frame.isSkinned then
+					frame:CreateBackdrop()
+					frame.backdrop:SetOutside(frame.Icon)
+					frame.Icon:SetTexCoord(unpack(E.TexCoords))
+					frame.Icon:SetParent(frame.backdrop)
+				end
+
+				if isBuff then
+					frame.backdrop:SetBackdropBorderColor(0, 1, 0)
+				else
+					frame.backdrop:SetBackdropBorderColor(1, 0, 0)
+				end
+
+				-- move duration and change font
+				frame.Duration:FontTemplate(E.media.font, 12, "OUTLINE")
+				frame.Duration:ClearAllPoints()
+				frame.Duration:SetPoint("TOP", frame.Icon, "BOTTOM", 1, -4)
+				if turnsRemaining > 0 then
+					frame.Duration:SetText(turnsRemaining)
+				end
+				nextFrame = nextFrame + 1
+			end
+		end
+end)
+
+	-- WEATHER
+	hooksecurefunc("PetBattleWeatherFrame_Update", function(self)
+		local weather = C_PetBattles.GetAuraInfo(LE_BATTLE_PET_WEATHER, PET_BATTLE_PAD_INDEX, 1)
+		if weather then
+			self.Icon:Hide()
+			self.Name:Hide()
+			self.DurationShadow:Hide()
+			self.Label:Hide()
+			self.Duration:SetPoint("CENTER", self, 0, 8)
+			self:ClearAllPoints()
+			self:SetPoint("TOP", E.UIParent, 0, -15)
+		end
+	end)
+
+	hooksecurefunc("PetBattleUnitFrame_UpdateDisplay", function(self)
+		self.Icon:SetTexCoord(unpack(E.TexCoords))
+	end)
+
+	f.TopVersusText:ClearAllPoints()
+	f.TopVersusText:SetPoint("TOP", f, "TOP", 0, -56) --Versus text
+
+	-- TOOLTIPS SKINNING
+	PetBattlePrimaryAbilityTooltip.Background:SetTexture(nil)
+	PetBattlePrimaryAbilityTooltip.Delimiter1:SetTexture(nil)
+	PetBattlePrimaryAbilityTooltip.Delimiter2:SetTexture(nil)
+	PetBattlePrimaryAbilityTooltip.BorderTop:SetTexture(nil)
+	PetBattlePrimaryAbilityTooltip.BorderTopLeft:SetTexture(nil)
+	PetBattlePrimaryAbilityTooltip.BorderTopRight:SetTexture(nil)
+	PetBattlePrimaryAbilityTooltip.BorderLeft:SetTexture(nil)
+	PetBattlePrimaryAbilityTooltip.BorderRight:SetTexture(nil)
+	PetBattlePrimaryAbilityTooltip.BorderBottom:SetTexture(nil)
+	PetBattlePrimaryAbilityTooltip.BorderBottomRight:SetTexture(nil)
+	PetBattlePrimaryAbilityTooltip.BorderBottomLeft:SetTexture(nil)
+	PetBattlePrimaryAbilityTooltip:SetTemplate("Transparent")
+
+	PetBattlePrimaryUnitTooltip.Delimiter:SetTexture(nil)
+	PetBattlePrimaryUnitTooltip.Background:SetTexture(nil)
+	PetBattlePrimaryUnitTooltip.BorderTop:SetTexture(nil)
+	PetBattlePrimaryUnitTooltip.BorderTopLeft:SetTexture(nil)
+	PetBattlePrimaryUnitTooltip.BorderTopRight:SetTexture(nil)
+	PetBattlePrimaryUnitTooltip.BorderLeft:SetTexture(nil)
+	PetBattlePrimaryUnitTooltip.BorderRight:SetTexture(nil)
+	PetBattlePrimaryUnitTooltip.BorderBottom:SetTexture(nil)
+	PetBattlePrimaryUnitTooltip.BorderBottomRight:SetTexture(nil)
+	PetBattlePrimaryUnitTooltip.BorderBottomLeft:SetTexture(nil)
+	PetBattlePrimaryUnitTooltip:SetTemplate("Transparent")
+
+	-- TOOLTIP DEFAULT POSITION
+	hooksecurefunc("PetBattleAbilityTooltip_Show", function()
+		local t = PetBattlePrimaryAbilityTooltip
+		t:ClearAllPoints()
+		t:SetPoint("TOPRIGHT", E.UIParent, "TOPRIGHT", -4, -4)
+	end)
+
+
+	local extraInfoBars = {
+		f.Ally2,
+		f.Ally3,
+		f.Enemy2,
+		f.Enemy3
+	}
+
+	for index, infoBar in pairs(extraInfoBars) do
+		infoBar.BorderAlive:SetAlpha(0)
+		infoBar.HealthBarBG:SetAlpha(0)
+		infoBar.HealthDivider:SetAlpha(0)
+		infoBar:Size(40)
+		infoBar:CreateBackdrop()
+		infoBar:ClearAllPoints()
+
+		infoBar.healthBarWidth = 40
+		infoBar.ActualHealthBar:ClearAllPoints()
+		infoBar.ActualHealthBar:SetPoint("TOPLEFT", infoBar.backdrop, 'BOTTOMLEFT', 2, -3)
+
+		infoBar.HealthBarBackdrop = CreateFrame("Frame", nil, infoBar)
+		infoBar.HealthBarBackdrop:SetFrameLevel(infoBar:GetFrameLevel() - 1)
+		infoBar.HealthBarBackdrop:SetTemplate("Default")
+		infoBar.HealthBarBackdrop:Width(infoBar.healthBarWidth + 4)
+		infoBar.HealthBarBackdrop:Point('TOPLEFT', infoBar.ActualHealthBar, 'TOPLEFT', -2, 2)
+		infoBar.HealthBarBackdrop:Point('BOTTOMLEFT', infoBar.ActualHealthBar, 'BOTTOMLEFT', -2, -1)
+	end
+
+	f.Ally2:SetPoint("TOPRIGHT", f.Ally2.iconPoint, "TOPLEFT", -6, -2)
+	f.Ally3:SetPoint('TOPRIGHT', f.Ally2, 'TOPLEFT', -8, 0)
+	f.Enemy2:SetPoint("TOPLEFT", f.Enemy2.iconPoint, "TOPRIGHT", 6, -2)
+	f.Enemy3:SetPoint('TOPLEFT', f.Enemy2, 'TOPRIGHT', 8, 0)
+
+	---------------------------------
+	-- PET BATTLE ACTION BAR SETUP --
+	---------------------------------
+
+	local bar = CreateFrame("Frame", "ElvUIPetBattleActionBar", f)
+	bar:SetSize (52*6 + 7*10, 52 * 1 + 10*2)
+	bar:EnableMouse(true)
+	bar:SetTemplate()
+	bar:SetPoint("BOTTOM", ElvUIPetBattleActionBar, "BOTTOM", 0, 0)
+	bar:SetFrameLevel(0)
+	bar:SetFrameStrata('BACKGROUND')
+	bar.backdropTexture:SetDrawLayer('BACKGROUND', 0)
+	ElvUIPetBattleActionBar:SetPoint("BOTTOM", E.UIParent, "BOTTOM", 0, 4) --Defaultg position
+	E:CreateMover(ElvUIPetBattleActionBar, "PetBattleABMover", L["Pet Battle AB"], nil, nil, nil, "ALL,S&L") --Mover
+
+	bf:StripTextures()
+	bf.TurnTimer:StripTextures()
+	bf.TurnTimer.SkipButton:SetParent(bar)
+	S:HandleButton(bf.TurnTimer.SkipButton)
+
+	bf.TurnTimer.SkipButton:Width(bar:GetWidth())
+	bf.TurnTimer.SkipButton:ClearAllPoints()
+	bf.TurnTimer.SkipButton:SetPoint("BOTTOM", bar, "TOP", 0, 1)
+	bf.TurnTimer.SkipButton.ClearAllPoints = E.noop
+	bf.TurnTimer.SkipButton.SetPoint = E.noop
+
+	bf.TurnTimer:Size(bf.TurnTimer.SkipButton:GetWidth(), bf.TurnTimer.SkipButton:GetHeight())
+	bf.TurnTimer:ClearAllPoints()
+	bf.TurnTimer:SetPoint("TOP", E.UIParent, "TOP", 0, -140)
+	bf.TurnTimer.TimerText:SetPoint("CENTER")
+
+	bf.FlowFrame:StripTextures()
+	bf.MicroButtonFrame:Kill()
+	bf.Delimiter:StripTextures()
+	bf.xpBar:SetParent(bar)
+	bf.xpBar:Width(bar:GetWidth() - 4)
+	bf.xpBar:CreateBackdrop()
+	bf.xpBar:ClearAllPoints()
+	bf.xpBar:SetPoint("BOTTOM", bf.TurnTimer.SkipButton, "TOP", 0, 3)
+	bf.xpBar:SetScript("OnShow", function(self) self:StripTextures() self:SetStatusBarTexture(E.media.normTex) end)
+
+	-- PETS SELECTION SKIN
+	for i = 1, 3 do
+		local pet = bf.PetSelectionFrame["Pet"..i]
+
+		pet.HealthBarBG:SetAlpha(0)
+		pet.HealthDivider:SetAlpha(0)
+		pet.ActualHealthBar:SetAlpha(0)
+		pet.SelectedTexture:SetAlpha(0)
+		pet.MouseoverHighlight:SetAlpha(0)
+		pet.Framing:SetAlpha(0)
+		pet.Icon:SetAlpha(0)
+		pet.Name:SetAlpha(0)
+		pet.DeadOverlay:SetAlpha(0)
+		pet.Level:SetAlpha(0)
+		pet.HealthText:SetAlpha(0)
+	end
+
+	-- MOVE DEFAULT POSITION OF PETS SELECTION
+	hooksecurefunc("PetBattlePetSelectionFrame_Show", function()
+		bf.PetSelectionFrame:ClearAllPoints()
+		bf.PetSelectionFrame:SetPoint("BOTTOM", bf.xpBar, "TOP", 0, 8)
+	end)
+
+
+	local function SkinPetButton(self)
+		if not self.backdrop then
+			self:CreateBackdrop()
+		end
+		self:SetNormalTexture("")
+		self.Icon:SetTexCoord(unpack(E.TexCoords))
+		self.Icon:SetParent(self.backdrop)
+		self.Icon:SetDrawLayer('BORDER')
+		self.checked = true -- avoid create a check
+		self:StyleButton()
+		self.SelectedHighlight:SetAlpha(0)
+		self.pushed:SetInside(self.backdrop)
+		self.hover:SetInside(self.backdrop)
+		self:SetFrameStrata('LOW')
+		self.backdrop:SetFrameStrata('LOW')
+	end
+
+	hooksecurefunc("PetBattleFrame_UpdateActionBarLayout", function(self)
+		for i=1, NUM_BATTLE_PET_ABILITIES do
+			local b = bf.abilityButtons[i]
+			SkinPetButton(b)
+			b:SetParent(bar)
+			b:ClearAllPoints()
+			if i == 1 then
+				b:SetPoint("BOTTOMLEFT", 10, 10)
+			else
+				local previous = bf.abilityButtons[i-1]
+				b:SetPoint("LEFT", previous, "RIGHT", 10, 0)
+			end
+		end
+
+		bf.SwitchPetButton:ClearAllPoints()
+		bf.SwitchPetButton:SetPoint("LEFT", bf.abilityButtons[3], "RIGHT", 10, 0)
+		SkinPetButton(bf.SwitchPetButton)
+		bf.CatchButton:SetParent(bar)
+		bf.CatchButton:ClearAllPoints()
+		bf.CatchButton:SetPoint("LEFT", bf.SwitchPetButton, "RIGHT", 10, 0)
+		SkinPetButton(bf.CatchButton)
+		bf.ForfeitButton:SetParent(bar)
+		bf.ForfeitButton:ClearAllPoints()
+		bf.ForfeitButton:SetPoint("LEFT", bf.CatchButton, "RIGHT", 10, 0)
+		SkinPetButton(bf.ForfeitButton)
+	end)
+end
+
+S:RegisterSkin('ElvUI', LoadSkin)
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/skins/load_skins.xml b/ElvUI_SLE/modules/skins/load_skins.xml
index a2b5302..7c1c55e 100644
--- a/ElvUI_SLE/modules/skins/load_skins.xml
+++ b/ElvUI_SLE/modules/skins/load_skins.xml
@@ -1,6 +1,5 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/">
 	<Include file='addons\load_addons.xml'/>
 	<Include file='blizzard\load_blizzard.xml'/>
-	<Script file='embedright.lua'/>
 	<Script file='options.lua'/>
 </Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/skins/options.lua b/ElvUI_SLE/modules/skins/options.lua
index 7509ae0..2559cf7 100644
--- a/ElvUI_SLE/modules/skins/options.lua
+++ b/ElvUI_SLE/modules/skins/options.lua
@@ -1,14 +1,15 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore

 E.Options.args.sle.args.skins = {
 	order = 7,
 	type = "group",
 	name = L["Skins"],
+	guiInline = true,
 	args = {
-		header = {
+		info = {
 			order = 1,
-			type = "header",
-			name = L["Skins"],
+			type = "description",
+			name = L["This options require Azilroka's skin pack to work."],
 		},
 		dbm = {
 			order = 2,
@@ -17,31 +18,14 @@ E.Options.args.sle.args.skins = {
 			guiInline = true,
 			args = {
 				fontsize = {
-					order = 2,
+					order = 1,
 					disabled = function() return not IsAddOnLoaded('DBM-Core') end,
 					type = "range",
 					name = L['Font Size'],
 					desc = L["Sets font size on DBM bars"],
 					min = 8, max = 14, step = 1,
 					get = function(info) return E.private.sle.dbm.size end,
-					set = function(info, value) E.private.sle.dbm.size = value; StaticPopup_Show("PRIVATE_RL") end,
-				},
-			},
-		},
-		skada = {
-			order = 3,
-			type = "group",
-			name = "Skada",
-			guiInline = true,
-			args = {
-				skadaback = {
-					order = 4,
-					disabled = function() return not IsAddOnLoaded('Skada') end,
-					type = "toggle",
-					name = L["Skada Backdrop"],
-					desc = L["Show/Hide Skada backdrop."],
-					get = function(info) return E.private.sle.skadaback end,
-					set = function(info, value) E.private.sle.skadaback = value; StaticPopup_Show("PRIVATE_RL") end
+					set = function(info, value) E.private.sle.dbm.size = value; E:StaticPopup_Show("PRIVATE_RL") end,
 				},
 			},
 		},
diff --git a/ElvUI_SLE/modules/uibuttons/options.lua b/ElvUI_SLE/modules/uibuttons/options.lua
index e38b42d..5871564 100644
--- a/ElvUI_SLE/modules/uibuttons/options.lua
+++ b/ElvUI_SLE/modules/uibuttons/options.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local UB = E:GetModule('UIButtons')

 --UI Buttons
diff --git a/ElvUI_SLE/modules/uibuttons/uibuttons.lua b/ElvUI_SLE/modules/uibuttons/uibuttons.lua
index ebeb105..ef4b1ba 100644
--- a/ElvUI_SLE/modules/uibuttons/uibuttons.lua
+++ b/ElvUI_SLE/modules/uibuttons/uibuttons.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Engine
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local UB = E:NewModule('UIButtons', 'AceHook-3.0', 'AceEvent-3.0');

 local UIBFrame = CreateFrame('Frame', "UIBFrame", E.UIParent);
@@ -11,7 +11,7 @@ local Abutton = CreateFrame("Button", "Abutton", UIBFrame, "SecureActionButtonTe
 function UB:CreateFrame()
 	UIBFrame:SetFrameLevel(5);
 	UIBFrame:SetFrameStrata('BACKGROUND');
-	UIBFrame:Point("LEFT", E.UIParent, "LEFT", -2, 0);
+	UIBFrame:Point("LEFT", E.UIParent, "LEFT", -2, 0);

 	UIBFrame:SetScript("OnUpdate", function(self,event,...)
 		UB:Mouseover()
@@ -129,7 +129,7 @@ function UB:CreateButtons()
 	Abutton:SetScript("OnEnter", function(self)
 		GameTooltip:SetOwner(self, "ANCHOR_TOP", 30,0)
 		GameTooltip:AddLine(L["AddOns Manager"], .6, .6, .6, .6, .6, 1)
-		GameTooltip:AddLine(L["Click to toogle the AddOn Managerframe (stAddOnManager or ACP) you have enabled."], 1, 1, 1, 1, 1, 1)
+		GameTooltip:AddLine(L["Click to toogle the AddOn Manager frame (stAddOnManager or ACP) you have enabled."], 1, 1, 1, 1, 1, 1)
 		GameTooltip:Show()
 	end)

@@ -180,11 +180,11 @@ end

 function UB:MoverSize()
 	if E.db.sle.uibuttons.position == "uib_vert" then
-		UIBFrame.mover:SetWidth(E.db.sle.uibuttons.size + 8)
-		UIBFrame.mover:SetHeight((E.db.sle.uibuttons.size + 5) * 5 + 3)
+		UIBFrame:SetWidth(E.db.sle.uibuttons.size + 8)
+		UIBFrame:SetHeight((E.db.sle.uibuttons.size + 5) * 5 + 3)
 	else
-		UIBFrame.mover:SetWidth((E.db.sle.uibuttons.size + 5) * 5 + 3)
-		UIBFrame.mover:SetHeight(E.db.sle.uibuttons.size + 8)
+		UIBFrame:SetWidth((E.db.sle.uibuttons.size + 5) * 5 + 3)
+		UIBFrame:SetHeight(E.db.sle.uibuttons.size + 8)
 	end
 end

@@ -220,7 +220,7 @@ function UB:Initialize()
 	UB:CreateButtons()
 	UB:Start()

-	E:CreateMover(UIBFrame, "UIBFrameMover", L["UI Buttons"])
+	E:CreateMover(UIBFrame, "UIBFrameMover", L["UI Buttons"], nil, nil, nil, "ALL,S&L")
 	UB:MoverSize()
 end

diff --git a/ElvUI_SLE/modules/unitframes/load_unitframes.xml b/ElvUI_SLE/modules/unitframes/load_unitframes.xml
index af9c528..1b880e0 100644
--- a/ElvUI_SLE/modules/unitframes/load_unitframes.xml
+++ b/ElvUI_SLE/modules/unitframes/load_unitframes.xml
@@ -1,5 +1,6 @@
-<Ui xmlns="http://www.blizzard.com/wow/ui/">
-	<Include file='units\load_units.xml'/>
+<Ui xmlns="http://www.blizzard.com/wow/ui/">
+	<Script file='tags.lua'/>
 	<Script file='update_elements.lua'/>
+	<Include file='units\load_units.xml'/>
 	<Script file='options.lua'/>
 </Ui>
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/unitframes/options.lua b/ElvUI_SLE/modules/unitframes/options.lua
index ad465c7..cc34c2b 100644
--- a/ElvUI_SLE/modules/unitframes/options.lua
+++ b/ElvUI_SLE/modules/unitframes/options.lua
@@ -1,5 +1,6 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local UF = E:GetModule('UnitFrames')
+local CAN_HAVE_CLASSBAR = (E.myclass == "PALADIN" or E.myclass == "DRUID" or E.myclass == "DEATHKNIGHT" or E.myclass == "WARLOCK" or E.myclass == "PRIEST" or E.myclass == "MONK" or E.myclass == 'MAGE')

 local positionValues = {
 	TOPLEFT = 'TOPLEFT',
@@ -28,79 +29,22 @@ E.Options.args.sle.args.unitframes = {
 			type = "description",
 			name = L["Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."],
 		},
-		health = {
-			type = "group",
-			name = L["Health Values"],
-			order = 3,
-			guiInline = true,
-			args = {
-				normal = {
-					order = 1,
-					type = "toggle",
-					name = L["Full value"],
-					desc = L["Enabling this will show exact hp numbers on player, focus, focus target, target of target, party, boss, arena and raid frames."],
-					get = function(info) return E.db.sle.unitframes.normal.health end,
-					set = function(info, value) E.db.sle.unitframes.normal.health = value; UF:Update_AllFrames() end
-				},
-				reverse = {
-					order = 2,
-					type = "toggle",
-					name = L["Target full value"],
-					desc = L["Enabling this will show exact hp numbers on target frame."],
-					get = function(info) return E.db.sle.unitframes.reverse.health end,
-					set = function(info, value) E.db.sle.unitframes.reverse.health = value; UF:Update_AllFrames() end
-				},
-			},
-		},
-		resource = {
-			type = "group",
-			name = L["Power Values"],
-			order = 4,
-			guiInline = true,
-			args = {
-				normal = {
-					order = 1,
-					type = "toggle",
-					name = L["Normal Frames"],
-					desc = L["Enabling this will show exact power numbers on target of target, focus and focus target frames."],
-					get = function(info) return E.db.sle.unitframes.normal.mana end,
-					set = function(info, value) E.db.sle.unitframes.normal.mana = value; UF:Update_AllFrames() end
-				},
-				reverse = {
-					order = 2,
-					type = "toggle",
-					name = L["Reversed Frames"],
-					desc = L["Enabling this will show exact power numbers on player, boss, arena, party and raid frames."],
-					get = function(info) return E.db.sle.unitframes.reverse.mana end,
-					set = function(info, value) E.db.sle.unitframes.reverse.mana = value; UF:Update_AllFrames() end
-				},
-			},
-		},
 		indicators = {
 			order = 5,
 			type = "group",
 			name = L["Player Frame Indicators"],
 			guiInline = true,
 			args = {
-				pvpmouse = {
-					order = 1,
+				combatico = {
+					order = 5,
 					type = "toggle",
-					name = L["PvP text on mouse over"],
-					desc = L["Show PvP text on mouse over player frame."],
-					get = function(info) return E.db.sle.pvp.mouse end,
-					set = function(info, value) E.db.sle.pvp.mouse = value; end,
+					name = L["Combat Icon"],
+					desc = L["Show/Hide combat icon on player frame."],
+					get = function(info) return E.db.sle.combatico.enable end,
+					set = function(info, value) E.db.sle.combatico.enable = value; end,
 				},
-				pvp = {
-					order = 3,
-					type = "select",
-					name = L["PvP Position"],
-					desc = L["Set the point to show pvp text"],
-					get = function(info) return E.db.sle.pvp.pos end,
-					set = function(info, value) E.db.sle.pvp.pos = value; end,
-					values = positionValues
-				},
-				combatico = {
-					order = 4,
+				combaticopos = {
+					order = 6,
 					type = "select",
 					name = L["Combat Position"],
 					desc = L["Set the point to show combat icon"],
@@ -113,26 +57,26 @@ E.Options.args.sle.args.unitframes = {
 	},
 }

-if E.myclass == "DRUID" then
+if E.myclass == "DRUID" or E.myclass == "WARLOCK" then
 E.Options.args.sle.args.unitframes.args.druid = {
 	order = 7,
 	type = 'group',
-	name = L["Balance Power Text"],
+	name = L["Classbar Energy"],
 	guiInline = true,
 	args = {
-		bpenable = {
+		powtext = {
 			order = 1,
 			type = "toggle",
 			name = L["Enable"],
-			desc = L["Show/hide the text with exact number of your Solar/Lunar energy on your Classbar."],
-			get = function(info) return E.db.sle.bpenable end,
-			set = function(info, value) E.db.sle.bpenable = value; end,
+			desc = L["Show/hide the text with exact number of energy (Solar/Lunar or Demonic Fury) on your Classbar."],
+			get = function(info) return E.db.sle.powtext end,
+			set = function(info, value) E.db.sle.powtext = value; UF:ClassbarTextSLE() end,
 		},
 	},
 }
 end

-if E.myclass == "PALADIN" or E.myclass == "WARLOCK" or E.myclass == "DEATHKNIGHT" or E.myclass == "SHAMAN" or E.myclass == "DRUID" then
+if CAN_HAVE_CLASSBAR then
 E.Options.args.sle.args.unitframes.args.classbar = {
 	order = 6,
 	type = "group",
diff --git a/ElvUI_SLE/modules/unitframes/tags.lua b/ElvUI_SLE/modules/unitframes/tags.lua
new file mode 100644
index 0000000..3d09722
--- /dev/null
+++ b/ElvUI_SLE/modules/unitframes/tags.lua
@@ -0,0 +1,117 @@
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
+
+ElvUF.Tags.Events['health:current:sl'] = 'UNIT_HEALTH_FREQUENT UNIT_MAXHEALTH UNIT_CONNECTION'
+ElvUF.Tags.Methods['health:current:sl'] = function(unit)
+	local min, max = UnitHealth(unit), UnitHealthMax(unit)
+	local status = not UnitIsConnected(unit) and L['Offline'] or UnitIsGhost(unit) and L['Ghost'] or UnitIsDead(unit) and DEAD
+
+	if (status) then
+		return status
+	else
+		return E:GetFormattedTextSLE('CURRENT', min, max)
+	end
+end
+
+ElvUF.Tags.Events['health:deficit:sl'] = 'UNIT_HEALTH_FREQUENT UNIT_MAXHEALTH UNIT_CONNECTION'
+ElvUF.Tags.Methods['health:deficit:sl'] = function(unit)
+	local min, max = UnitHealth(unit), UnitHealthMax(unit)
+	local status = not UnitIsConnected(unit) and L['Offline'] or UnitIsGhost(unit) and L['Ghost'] or UnitIsDead(unit) and DEAD
+
+	if (status) then
+		return status
+	else
+		return E:GetFormattedTextSLE('DEFICIT', min, max)
+	end
+end
+
+ElvUF.Tags.Events['health:current-percent:sl'] = 'UNIT_HEALTH_FREQUENT UNIT_MAXHEALTH UNIT_CONNECTION'
+ElvUF.Tags.Methods['health:current-percent:sl'] = function(unit)
+	local min, max = UnitHealth(unit), UnitHealthMax(unit)
+	local status = not UnitIsConnected(unit) and L['Offline'] or UnitIsGhost(unit) and L['Ghost'] or UnitIsDead(unit) and DEAD
+
+	if (status) then
+		return status
+	else
+		return E:GetFormattedTextSLE('CURRENT_PERCENT', min, max)
+	end
+end
+
+ElvUF.Tags.Events['health:current-max:sl'] = 'UNIT_HEALTH_FREQUENT UNIT_MAXHEALTH UNIT_CONNECTION'
+ElvUF.Tags.Methods['health:current-max:sl'] = function(unit)
+	local min, max = UnitHealth(unit), UnitHealthMax(unit)
+	local status = not UnitIsConnected(unit) and L['Offline'] or UnitIsGhost(unit) and L['Ghost'] or UnitIsDead(unit) and DEAD
+
+	if (status) then
+		return status
+	else
+		return E:GetFormattedTextSLE('CURRENT_MAX', min, max)
+	end
+end
+
+ElvUF.Tags.Events['health:current-max-percent:sl'] = 'UNIT_HEALTH_FREQUENT UNIT_MAXHEALTH UNIT_CONNECTION'
+ElvUF.Tags.Methods['health:current-max-percent:sl'] = function(unit)
+	local min, max = UnitHealth(unit), UnitHealthMax(unit)
+	local status = not UnitIsConnected(unit) and L['Offline'] or UnitIsGhost(unit) and L['Ghost'] or UnitIsDead(unit) and DEAD
+
+	if (status) then
+		return status
+	else
+		return E:GetFormattedTextSLE('CURRENT_MAX_PERCENT', min, max)
+	end
+end
+
+ElvUF.Tags.Events['power:current:sl'] = 'UNIT_POWER_FREQUENT UNIT_MAXPOWER'
+ElvUF.Tags.Methods['power:current:sl'] = function(unit)
+	local pType = UnitPowerType(unit)
+	local min, max = UnitPower(unit, pType), UnitPowerMax(unit, pType)
+
+	if min == 0 then
+		return ' '
+	else
+		return E:GetFormattedTextSLE('CURRENT', min, max)
+	end
+end
+
+ElvUF.Tags.Events['power:current-max:sl'] = 'UNIT_POWER_FREQUENT UNIT_MAXPOWER'
+ElvUF.Tags.Methods['power:current-max:sl'] = function(unit)
+	local pType = UnitPowerType(unit)
+	local min, max = UnitPower(unit, pType), UnitPowerMax(unit, pType)
+
+	if min == 0 then
+		return ' '
+	else
+		return E:GetFormattedTextSLE('CURRENT_MAX', min, max)
+	end
+end
+
+ElvUF.Tags.Events['power:current-percent:sl'] = 'UNIT_POWER_FREQUENT UNIT_MAXPOWER'
+ElvUF.Tags.Methods['power:current-percent:sl'] = function(unit)
+	local pType = UnitPowerType(unit)
+	local min, max = UnitPower(unit, pType), UnitPowerMax(unit, pType)
+
+	if min == 0 then
+		return ' '
+	else
+		return E:GetFormattedTextSLE('CURRENT_PERCENT', min, max)
+	end
+end
+
+ElvUF.Tags.Events['power:current-max-percent:sl'] = 'UNIT_POWER_FREQUENT UNIT_MAXPOWER'
+ElvUF.Tags.Methods['power:current-max-percent:sl'] = function(unit)
+	local pType = UnitPowerType(unit)
+	local min, max = UnitPower(unit, pType), UnitPowerMax(unit, pType)
+
+	if min == 0 then
+		return ' '
+	else
+		return E:GetFormattedTextSLE('CURRENT_MAX_PERCENT', min, max)
+	end
+end
+
+ElvUF.Tags.Events['power:deficit:sl'] = 'UNIT_POWER_FREQUENT UNIT_MAXPOWER'
+ElvUF.Tags.Methods['power:deficit:sl'] = function(unit)
+	local pType = UnitPowerType(unit)
+	local min, max = UnitPower(unit, pType), UnitPowerMax(unit, pType)
+
+	return E:GetFormattedTextSLE('DEFICIT', min, max, r, g, b)
+end
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/unitframes/units/arena.lua b/ElvUI_SLE/modules/unitframes/units/arena.lua
index e900ab0..9171d4f 100644
--- a/ElvUI_SLE/modules/unitframes/units/arena.lua
+++ b/ElvUI_SLE/modules/unitframes/units/arena.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local UF = E:GetModule('UnitFrames');
 local LSM = LibStub("LibSharedMedia-3.0");

@@ -13,15 +13,10 @@ function UF:Update_ArenaFrames(frame, db)

 	local power = frame.Power
 	--Text
-	if db.power.text then
-		power.value:Show()
-
-		local x, y = self:GetPositionOffset(db.power.position)
-		power.value:ClearAllPoints()
-		power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
-	else
-		power.value:Hide()
-	end
+	local x, y = self:GetPositionOffset(db.power.position)
+	power.value:ClearAllPoints()
+	power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
+	frame:Tag(power.value, db.power.text_format)

 	frame:UpdateAllElements()
 end
diff --git a/ElvUI_SLE/modules/unitframes/units/boss.lua b/ElvUI_SLE/modules/unitframes/units/boss.lua
index 0dfbc99..2a998b6 100644
--- a/ElvUI_SLE/modules/unitframes/units/boss.lua
+++ b/ElvUI_SLE/modules/unitframes/units/boss.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local UF = E:GetModule('UnitFrames');
 local LSM = LibStub("LibSharedMedia-3.0");

@@ -12,15 +12,10 @@ function UF:Update_BossFrames(frame, db)

 	local power = frame.Power
 	--Text
-	if db.power.text then
-		power.value:Show()
-
-		local x, y = self:GetPositionOffset(db.power.position)
-		power.value:ClearAllPoints()
-		power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
-	else
-		power.value:Hide()
-	end
+	local x, y = self:GetPositionOffset(db.power.position)
+	power.value:ClearAllPoints()
+	power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
+	frame:Tag(power.value, db.power.text_format)

 	frame:UpdateAllElements()
 end
diff --git a/ElvUI_SLE/modules/unitframes/units/focus.lua b/ElvUI_SLE/modules/unitframes/units/focus.lua
index 7af73dc..65ca05a 100644
--- a/ElvUI_SLE/modules/unitframes/units/focus.lua
+++ b/ElvUI_SLE/modules/unitframes/units/focus.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local UF = E:GetModule('UnitFrames');
 local LSM = LibStub("LibSharedMedia-3.0");

@@ -12,15 +12,10 @@ function UF:Update_FocusFrame(frame, db)

 	local power = frame.Power
 	--Text
-			if db.power.text then
-				power.value:Show()
-
-				local x, y = self:GetPositionOffset(db.power.position)
-				power.value:ClearAllPoints()
-				power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
-			else
-				power.value:Hide()
-			end
+	local x, y = self:GetPositionOffset(db.power.position)
+	power.value:ClearAllPoints()
+	power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
+	frame:Tag(power.value, db.power.text_format)

 	frame:UpdateAllElements()
 end
diff --git a/ElvUI_SLE/modules/unitframes/units/player.lua b/ElvUI_SLE/modules/unitframes/units/player.lua
index 0fb028d..e616f08 100644
--- a/ElvUI_SLE/modules/unitframes/units/player.lua
+++ b/ElvUI_SLE/modules/unitframes/units/player.lua
@@ -1,8 +1,7 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local UF = E:GetModule('UnitFrames');
 local LSM = LibStub("LibSharedMedia-3.0");

---The solution for the "default seting launch" problem when no value can be read from profile table.
 function UF:DefOffsetSetting()
 	if E.db.unitframe.units.player.classbar.xOffset == nil then
 		E.db.unitframe.units.player.classbar.xOffset = 0
@@ -17,8 +16,13 @@ function UF:DefOffsetSetting()
 end

 --Setting the variable for using classbar. Elv's function.
-local CAN_HAVE_CLASSBAR = (E.myclass == "PALADIN" or E.myclass == "SHAMAN" or E.myclass == "DRUID" or E.myclass == "DEATHKNIGHT" or E.myclass == "WARLOCK")
+local CAN_HAVE_CLASSBAR = (E.myclass == "PALADIN" or E.myclass == "DRUID" or E.myclass == "DEATHKNIGHT" or E.myclass == "WARLOCK" or E.myclass == "PRIEST" or E.myclass == "MONK" or E.myclass == 'MAGE')

+ElvUF_Player:SetScript("OnUpdate", function()
+	if not E.db.sle.combatico.enable then
+		ElvUF_Player.Combat:Hide()
+	end
+end)
 --Function to move damn combat indicator to topright part of the frame. Maybe i should create an option to make it placeble everywhere.
 function UF:Update_CombatIndicator()
 	local CombatText = ElvUF_Player.Combat
@@ -59,26 +63,10 @@ function UF:Update_PlayerFrame(frame, db)
 	local unit = self.unit

 	--Power Text
-	if db.power.text then
-		power.value:Show()
-
 		local x, y = self:GetPositionOffset(db.power.position)
 		power.value:ClearAllPoints()
-		power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
-	else
-		power.value:Hide()
-	end
-
-	--Testing for druid text
-	if E.myclass == "DRUID" then
-		local eclipseBar = frame.EclipseBar
-		local lunarBar = eclipseBar.LunarBar
-
-		local spower = UnitPower( PlayerFrame.unit, SPELL_POWER_ECLIPSE );
-		eclipseBar.powtext = lunarBar:CreateFontString(nil, 'OVERLAY')
-		eclipseBar.powtext:SetPoint("CENTER", eclipseBar, "CENTER")
-		eclipseBar.powtext:SetFont("Fonts\\FRIZQT__.TTF", 10, "OUTLINE")
-	end
+		power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
+		frame:Tag(power.value, db.power.text_format)

 	if not E.db.unitframe.units.player.classbar.offset then return end --Checking for offset option enabled
 	--All this crap is needed to be copied from Elv's player.lua to avoid graphical bugs
@@ -97,27 +85,15 @@ function UF:Update_PlayerFrame(frame, db)

 		if USE_PORTRAIT then
 			CLASSBAR_WIDTH = math.ceil((UNIT_WIDTH - (BORDER*2)) - PORTRAIT_WIDTH)
-
-			if USE_POWERBAR_OFFSET then
-				CLASSBAR_WIDTH = CLASSBAR_WIDTH - POWERBAR_OFFSET
-			end
 		end

 		if USE_POWERBAR_OFFSET then
 			CLASSBAR_WIDTH = CLASSBAR_WIDTH - POWERBAR_OFFSET
 		end
-
-		if USE_MINI_CLASSBAR then
-			CLASSBAR_WIDTH = CLASSBAR_WIDTH*2/3
-		end
-
-		if USE_MINI_POWERBAR then
-			POWERBAR_WIDTH = POWERBAR_WIDTH / 2
-		end
 	end

 	health:ClearAllPoints()
-		health:Point("TOPRIGHT", frame, "TOPRIGHT", -BORDER, -BORDER)
+	health:Point("TOPRIGHT", frame, "TOPRIGHT", -BORDER, -BORDER)
 		if USE_POWERBAR_OFFSET then
 			health:Point("TOPRIGHT", frame, "TOPRIGHT", -(BORDER+POWERBAR_OFFSET), -BORDER)
 			health:Point("BOTTOMLEFT", frame, "BOTTOMLEFT", BORDER, BORDER+POWERBAR_OFFSET)
@@ -151,92 +127,302 @@ function UF:Update_PlayerFrame(frame, db)
 		if USE_POWERBAR_OFFSET then
 			health:Point("TOPRIGHT", frame, "TOPRIGHT", -(BORDER+POWERBAR_OFFSET), DEPTH)
 		else
-			health:Point("TOPRIGHT", frame, "TOPRIGHT", -BORDER, 0)
+			health:Point("TOPRIGHT", frame, "TOPRIGHT", -BORDER, DEPTH)
 		end

 		health:Point("TOPLEFT", frame, "TOPLEFT", PORTRAIT_WIDTH+BORDER, DEPTH)
 	end

+	if USE_POWERBAR_OFFSET then
+		CLASSBAR_WIDTH = CLASSBAR_WIDTH - POWERBAR_OFFSET
+	end
+
 	--Classbars
 	if E.myclass == "PALADIN" then
-			local bars = frame.HolyPower
-			bars:ClearAllPoints()
-			if USE_MINI_CLASSBAR then
-				bars:Point("CENTER", frame.Health.backdrop, "TOP", db.classbar.xOffset -(BORDER*3 + 6), db.classbar.yOffset -SPACING)
-				bars:SetFrameStrata("MEDIUM")
+		local bars = frame.HolyPower
+		bars:ClearAllPoints()
+
+		local MAX_HOLY_POWER = 5
+
+		if USE_MINI_CLASSBAR then
+			CLASSBAR_WIDTH = CLASSBAR_WIDTH * (MAX_HOLY_POWER - 1) / MAX_HOLY_POWER
+			bars:Point("CENTER", frame.Health.backdrop, "TOP", db.classbar.xOffset -(BORDER*3 + 6), db.classbar.yOffset)
+			bars:SetFrameStrata("MEDIUM")
+		else
+			bars:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER +SPACING)
+			bars:SetFrameStrata("LOW")
+		end
+		bars:Width(CLASSBAR_WIDTH)
+		bars:Height(CLASSBAR_HEIGHT - (BORDER*2))
+	elseif E.myclass == 'PRIEST' then
+		local bars = frame.ShadowOrbs
+		bars:ClearAllPoints()
+		if USE_MINI_CLASSBAR then
+			CLASSBAR_WIDTH = CLASSBAR_WIDTH * (PRIEST_BAR_NUM_ORBS - 1) / PRIEST_BAR_NUM_ORBS
+			bars:Point("CENTER", frame.Health.backdrop, "TOP", db.classbar.xOffset -(BORDER*3 + 6), db.classbar.yOffset)
+			bars:SetFrameStrata("MEDIUM")
+		else
+			bars:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER+SPACING)
+			bars:SetFrameStrata("LOW")
+		end
+
+		bars:Width(CLASSBAR_WIDTH)
+		bars:Height(CLASSBAR_HEIGHT - (BORDER*2))
+			for i = 1, PRIEST_BAR_NUM_ORBS do
+			bars[i]:SetHeight(bars:GetHeight())
+			bars[i]:SetWidth(E:Scale(bars:GetWidth() - 2)/PRIEST_BAR_NUM_ORBS)
+			bars[i]:GetStatusBarTexture():SetHorizTile(false)
+			bars[i]:ClearAllPoints()
+			if i == 1 then
+				bars[i]:SetPoint("LEFT", bars)
 			else
-				bars:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER +SPACING)
-				bars:SetFrameStrata("LOW")
+				if USE_MINI_CLASSBAR then
+					bars[i]:Point("LEFT", bars[i-1], "RIGHT", SPACING+(BORDER*2)+8, 0)
+				else
+					bars[i]:Point("LEFT", bars[i-1], "RIGHT", SPACING, 0)
+				end
 			end
-			bars:Width(CLASSBAR_WIDTH)
-			bars:Height(CLASSBAR_HEIGHT - (BORDER*2))
-		elseif E.myclass == "WARLOCK" then
-			local bars = frame.SoulShards
-			bars:ClearAllPoints()
-			if USE_MINI_CLASSBAR then
-				bars:Point("CENTER", frame.Health.backdrop, "TOP", db.classbar.xOffset -(BORDER*3 + 6), db.classbar.yOffset -SPACING)
-				bars:SetFrameStrata("MEDIUM")
+
+			if not USE_MINI_CLASSBAR then
+				bars[i].backdrop:Hide()
 			else
-				bars:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER +SPACING)
-				bars:SetFrameStrata("LOW")
+				bars[i].backdrop:Show()
 			end
-			bars:Width(CLASSBAR_WIDTH)
-			bars:Height(CLASSBAR_HEIGHT - (BORDER*2))
-		elseif E.myclass == "DEATHKNIGHT" then
-			local runes = frame.Runes
-			runes:ClearAllPoints()
-			if USE_MINI_CLASSBAR then
-				CLASSBAR_WIDTH = CLASSBAR_WIDTH * 3/2 --Multiply by reciprocal to reset previous setting
-				CLASSBAR_WIDTH = CLASSBAR_WIDTH * 4/5
-				runes:Point("CENTER", frame.Health.backdrop, "TOP", db.classbar.xOffset -(BORDER*3 + 8), db.classbar.yOffset -SPACING)
-				runes:SetFrameStrata("MEDIUM")
+		end
+
+		if not USE_MINI_CLASSBAR then
+			bars.backdrop:Show()
+		else
+			bars.backdrop:Hide()
+		end
+
+		if USE_CLASSBAR and not frame:IsElementEnabled('ShadowOrbs') then
+			frame:EnableElement('ShadowOrbs')
+		elseif not USE_CLASSBAR and frame:IsElementEnabled('ShadowOrbs') then
+			frame:DisableElement('ShadowOrbs')
+			bars:Hide()
+		end
+	elseif E.myclass == 'MAGE' then
+		local bars = frame.ArcaneChargeBar
+		bars:ClearAllPoints()
+		if USE_MINI_CLASSBAR then
+			CLASSBAR_WIDTH = CLASSBAR_WIDTH * (UF['classMaxResourceBar'][E.myclass] - 1) / UF['classMaxResourceBar'][E.myclass]
+			bars:Point("CENTER", frame.Health.backdrop, "TOP", db.classbar.xOffset -(BORDER*4 + 10), db.classbar.yOffset)
+			bars:SetFrameStrata("MEDIUM")
+		else
+			bars:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER+SPACING)
+			bars:SetFrameStrata("LOW")
+		end
+
+		bars:Width(CLASSBAR_WIDTH)
+		bars:Height(CLASSBAR_HEIGHT - (BORDER*2))
+			for i = 1, UF['classMaxResourceBar'][E.myclass] do
+			bars[i]:SetHeight(bars:GetHeight())
+			bars[i]:SetWidth(E:Scale(bars:GetWidth() - 2)/UF['classMaxResourceBar'][E.myclass])
+			bars[i]:GetStatusBarTexture():SetHorizTile(false)
+			bars[i]:ClearAllPoints()
+			if i == 1 then
+				bars[i]:SetPoint("LEFT", bars)
 			else
-				runes:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER +SPACING)
-				runes:SetFrameStrata("LOW")
+				if USE_MINI_CLASSBAR then
+					bars[i]:Point("LEFT", bars[i-1], "RIGHT", SPACING+(BORDER*2)+2, 0)
+				else
+					bars[i]:Point("LEFT", bars[i-1], "RIGHT", SPACING, 0)
+				end
 			end
-			runes:Width(CLASSBAR_WIDTH)
-			runes:Height(CLASSBAR_HEIGHT - (BORDER*2))
-		elseif E.myclass == "SHAMAN" then
-			local totems = frame.TotemBar

-			totems:ClearAllPoints()
 			if not USE_MINI_CLASSBAR then
-				totems:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER +SPACING)
-				totems:SetFrameStrata("LOW")
+				bars[i].backdrop:Hide()
 			else
-				CLASSBAR_WIDTH = CLASSBAR_WIDTH * 3/2 --Multiply by reciprocal to reset previous setting
-				CLASSBAR_WIDTH = CLASSBAR_WIDTH * 4/5
-				totems:Point("CENTER", frame.Health.backdrop, "TOP", db.classbar.xOffset -(BORDER*3 + 6), db.classbar.yOffset -SPACING)
-				totems:SetFrameStrata("MEDIUM")
+				bars[i].backdrop:Show()
 			end
-
-			totems:Width(CLASSBAR_WIDTH)
-			totems:Height(CLASSBAR_HEIGHT - (BORDER*2))
-		elseif E.myclass == "DRUID" then
-			local eclipseBar = frame.EclipseBar
-
-			eclipseBar:ClearAllPoints()
+		end
+
+		if not USE_MINI_CLASSBAR then
+			bars.backdrop:Show()
+		else
+			bars.backdrop:Hide()
+		end
+			if USE_CLASSBAR and not frame:IsElementEnabled('ArcaneChargeBar') then
+			frame:EnableElement('ArcaneChargeBar')
+		elseif not USE_CLASSBAR and frame:IsElementEnabled('ArcaneChargeBar') then
+			frame:DisableElement('ArcaneChargeBar')
+		end
+	elseif E.myclass == "WARLOCK" then
+		local bars = frame.ShardBar
+		bars:ClearAllPoints()
+		if USE_MINI_CLASSBAR then
+			CLASSBAR_WIDTH = CLASSBAR_WIDTH * 2 / 3
+			bars:Point("CENTER", frame.Health.backdrop, "TOP", db.classbar.xOffset -(BORDER*3 + 6), db.classbar.yOffset -SPACING)
+			bars:SetFrameStrata("MEDIUM")
+		else
+			bars:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER +SPACING)
+			bars:SetFrameStrata("LOW")
+		end
+		bars:Width(CLASSBAR_WIDTH)
+		bars:Height(CLASSBAR_HEIGHT - (BORDER*2))
 			if not USE_MINI_CLASSBAR then
-				eclipseBar:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER +SPACING)
-				eclipseBar:SetFrameStrata("LOW")
-			else
-				CLASSBAR_WIDTH = CLASSBAR_WIDTH * 3/2 --Multiply by reciprocal to reset previous setting
-				CLASSBAR_WIDTH = CLASSBAR_WIDTH * 2/3
-				eclipseBar:Point("LEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +(BORDER*2 + 4), db.classbar.yOffset)
-				eclipseBar:SetFrameStrata("MEDIUM")
-			end
-
+			bars.backdrop:Show()
+		else
+			bars.backdrop:Hide()
+		end
+	elseif E.myclass == 'MONK' then
+		local bars = frame.Harmony
+		bars:ClearAllPoints()
+		if USE_MINI_CLASSBAR then
+			bars:Point("CENTER", frame.Health.backdrop, "TOP",db.classbar.xOffset -(BORDER*3 + 6), db.classbar.yOffset)
+			bars:SetFrameStrata("MEDIUM")
+		else
+			bars:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER+SPACING)
+			bars:SetFrameStrata("LOW")
+		end
+		bars:Width(CLASSBAR_WIDTH)
+		bars:Height(CLASSBAR_HEIGHT - (BORDER*2))
+
+		if not USE_MINI_CLASSBAR then
+			bars.backdrop:Show()
+		else
+			bars.backdrop:Hide()
+		end
+
+		if USE_CLASSBAR and not frame:IsElementEnabled('Harmony') then
+			frame:EnableElement('Harmony')
+			bars:Show()
+		elseif not USE_CLASSBAR and frame:IsElementEnabled('Harmony') then
+			frame:DisableElement('Harmony')
+			bars:Hide()
+		end
+	elseif E.myclass == "DEATHKNIGHT" then
+		local runes = frame.Runes
+		runes:ClearAllPoints()
+		if USE_MINI_CLASSBAR then
+			CLASSBAR_WIDTH = CLASSBAR_WIDTH * 4/5
+			runes:Point("CENTER", frame.Health.backdrop, "TOP", db.classbar.xOffset -(BORDER*3 + 8), db.classbar.yOffset -SPACING)
+			runes:SetFrameStrata("MEDIUM")
+		else
+			runes:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER +SPACING)
+			runes:SetFrameStrata("LOW")
+		end
+		runes:Width(CLASSBAR_WIDTH)
+		runes:Height(CLASSBAR_HEIGHT - (BORDER*2))
+	elseif E.myclass == "DRUID" then
+		local eclipseBar = frame.EclipseBar
+			eclipseBar:ClearAllPoints()
+		if not USE_MINI_CLASSBAR then
+			eclipseBar:Point("BOTTOMLEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +BORDER, db.classbar.yOffset +BORDER +SPACING)
+			eclipseBar:SetFrameStrata("LOW")
+		else
+			CLASSBAR_WIDTH = CLASSBAR_WIDTH * 3/2 --Multiply by reciprocal to reset previous setting
+			CLASSBAR_WIDTH = CLASSBAR_WIDTH * 2/3
+			eclipseBar:Point("LEFT", frame.Health.backdrop, "TOPLEFT", db.classbar.xOffset +(BORDER*2 + 4), db.classbar.yOffset)
+			eclipseBar:SetFrameStrata("MEDIUM")
+		end
 			eclipseBar:Width(CLASSBAR_WIDTH)
-			eclipseBar:Height(CLASSBAR_HEIGHT - (BORDER*2))
-			--?? Apparent bug fix for the width after in-game settings change
-			eclipseBar.LunarBar:SetMinMaxValues(0, 0)
-			eclipseBar.SolarBar:SetMinMaxValues(0, 0)
-			eclipseBar.LunarBar:Size(CLASSBAR_WIDTH, CLASSBAR_HEIGHT - (BORDER*2))
-			eclipseBar.SolarBar:Size(CLASSBAR_WIDTH, CLASSBAR_HEIGHT - (BORDER*2))
+		eclipseBar:Height(CLASSBAR_HEIGHT - (BORDER*2))
+		--?? Apparent bug fix for the width after in-game settings change
+		eclipseBar.LunarBar:SetMinMaxValues(0, 0)
+		eclipseBar.SolarBar:SetMinMaxValues(0, 0)
+		eclipseBar.LunarBar:Size(CLASSBAR_WIDTH, CLASSBAR_HEIGHT - (BORDER*2))
+		eclipseBar.SolarBar:Size(CLASSBAR_WIDTH, CLASSBAR_HEIGHT - (BORDER*2))
+	end
+
+	frame:UpdateAllElements()
+end
+
+UF.UpdatePlayerFrameAnchorsSLE = UF.UpdatePlayerFrameAnchors
+function UF:UpdatePlayerFrameAnchors(frame, isShown)
+	UF:UpdatePlayerFrameAnchorsSLE(frame, isShown)
+
+	if E.db.sle == nil then E.db.sle = {} end
+
+	local db = E.db['unitframe']['units'].player
+	local health = frame.Health
+	local PORTRAIT_WIDTH = db.portrait.width
+	local CLASSBAR_HEIGHT = db.classbar.height
+	local USE_CLASSBAR = db.classbar.enable
+	local USE_MINI_CLASSBAR = db.classbar.fill == "spaced" and USE_CLASSBAR
+	local USE_PORTRAIT = db.portrait.enable
+	local USE_PORTRAIT_OVERLAY = db.portrait.overlay and USE_PORTRAIT
+
+	if E.db.unitframe.units.player.classbar.offset then
+		local DEPTH
+		if USE_MINI_CLASSBAR then
+			DEPTH = -(E:Scale(2)+(CLASSBAR_HEIGHT/2))
+		else
+			DEPTH = -(E:Scale(2))
 		end
+
+		if not USE_MINI_CLASSBAR and (USE_PORTRAIT and not USE_PORTRAIT_OVERLAY) then
+			health:Point("TOPLEFT", frame, "TOPLEFT", PORTRAIT_WIDTH + 2, DEPTH)
+		end
+	end
+
+	if E.myclass == "DRUID" then
+		UF:EclipseTextSLE()
+	end

-	frame:UpdateAllElements()
+	if E.myclass == "WARLOCK" then
+		UF:DFTextSLE()
+	end
+end
+
+function UF:ClassbarTextSLE()
+	if E.myclass == "DRUID" then
+		UF:EclipseTextSLE()
+	elseif E.myclass == "WARLOCK" then
+		UF:DFTextSLE()
+	end
+end
+
+function UF:EclipseTextSLE()
+	local eclipseBar = ElvUF_Player.EclipseBar
+	local spower = UnitPower( PlayerFrame.unit, SPELL_POWER_ECLIPSE );
+	if E.db.sle.powtext then
+		eclipseBar.powtext:SetText(spower)
+	else
+		eclipseBar.powtext:SetText('')
+	end
+end
+
+function UF:DFTextSLE()
+	local ShardBar = ElvUF_Player.ShardBar
+	local dfpower = UnitPower( PlayerFrame.unit, SPELL_POWER_DEMONIC_FURY );
+	local hasspec = GetSpecialization(false, false)
+	if hasspec == nil then return end
+	local index = select(1, GetSpecializationInfo(GetSpecialization(false, false, active)), false, false)
+	if index == 266 then --This crap is checking the spec.
+		if E.db.sle.powtext then
+			ShardBar.powtext:SetText(dfpower)
+			if E.db.unitframe.units.player.classbar.fill == "spaced" then
+				ShardBar.powtext:ClearAllPoints()
+				ShardBar.powtext:SetPoint("LEFT", ShardBar, "RIGHT")
+			else
+				ShardBar.powtext:ClearAllPoints()
+				ShardBar.powtext:SetPoint("CENTER", ShardBar, "CENTER")
+			end
+		else
+			ShardBar.powtext:SetText('')
+		end
+	else
+		ShardBar.powtext:SetText('')
+	end
 end

+--Text for druid eclipse bar
+if E.myclass == "DRUID" then
+	local eclipseBar = ElvUF_Player.EclipseBar
+	local lunarBar = eclipseBar.LunarBar

+	eclipseBar.powtext = lunarBar:CreateFontString(nil, 'OVERLAY')
+	eclipseBar.powtext:SetPoint("CENTER", eclipseBar, "CENTER")
+	eclipseBar.powtext:SetFont("Fonts\\FRIZQT__.TTF", 10, "OUTLINE")
+end
+
+if E.myclass == "WARLOCK" then
+	local ShardBar = ElvUF_Player.ShardBar
+	local dfbar = select(2, ShardBar:GetChildren())
+
+	ShardBar.powtext = dfbar:CreateFontString(nil, 'OVERLAY')
+	ShardBar.powtext:SetFont("Fonts\\FRIZQT__.TTF", 10, "OUTLINE")
+end
 UF:DefOffsetSetting()
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/unitframes/units/target.lua b/ElvUI_SLE/modules/unitframes/units/target.lua
index 7174300..2a513ea 100644
--- a/ElvUI_SLE/modules/unitframes/units/target.lua
+++ b/ElvUI_SLE/modules/unitframes/units/target.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local UF = E:GetModule('UnitFrames');
 local LSM = LibStub("LibSharedMedia-3.0");

@@ -12,15 +12,10 @@ function UF:Update_TargetFrame(frame, db)

 	local power = frame.Power
 	--Text
-	if db.power.text then
-		power.value:Show()
-
-		local x, y = self:GetPositionOffset(db.power.position)
-		power.value:ClearAllPoints()
-		power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
-	else
-		power.value:Hide()
-	end
+	local x, y = self:GetPositionOffset(db.power.position)
+	power.value:ClearAllPoints()
+	power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
+	frame:Tag(power.value, db.power.text_format)

 	frame:UpdateAllElements()
 end
diff --git a/ElvUI_SLE/modules/unitframes/units/targettarget.lua b/ElvUI_SLE/modules/unitframes/units/targettarget.lua
index 852dfa0..1fff3b7 100644
--- a/ElvUI_SLE/modules/unitframes/units/targettarget.lua
+++ b/ElvUI_SLE/modules/unitframes/units/targettarget.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local UF = E:GetModule('UnitFrames');
 local LSM = LibStub("LibSharedMedia-3.0");

@@ -12,15 +12,10 @@ function UF:Update_TargetTargetFrame(frame, db)

 	local power = frame.Power
 	--Text
-	if db.power.text then
-		power.value:Show()
-
-		local x, y = self:GetPositionOffset(db.power.position)
-		power.value:ClearAllPoints()
-		power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
-	else
-		power.value:Hide()
-	end
+	local x, y = self:GetPositionOffset(db.power.position)
+	power.value:ClearAllPoints()
+	power.value:Point(db.power.position, frame.Power, db.power.position, x, y)
+	frame:Tag(power.value, db.power.text_format)

 	frame:UpdateAllElements()
 end
diff --git a/ElvUI_SLE/modules/unitframes/update_elements.lua b/ElvUI_SLE/modules/unitframes/update_elements.lua
index 45fa844..e2afa0f 100644
--- a/ElvUI_SLE/modules/unitframes/update_elements.lua
+++ b/ElvUI_SLE/modules/unitframes/update_elements.lua
@@ -1,286 +1,93 @@
-local E, L, V, P, G =  unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore
 local UF = E:GetModule('UnitFrames');
 local LSM = LibStub("LibSharedMedia-3.0");

 --Replacement of text formats on unitframes.
-function UF:GetInfoText(frame, unit, r, g, b, min, max, reverse, type)
-	local value
-	local db = frame.db
+local styles = {
+	['CURRENT'] = '%s',
+	['CURRENT_MAX'] = '%s - %s',
+	['CURRENT_PERCENT'] =  '%s - %s%%',
+	['CURRENT_MAX_PERCENT'] = '%s - %s | %s%%',
+	['DEFICIT'] = '-%s'
+}

-	if not db or not db[type] then return '' end
+function E:GetFormattedTextSLE(style, min, max)
+	assert(styles[style], 'Invalid format style: '..style)
+	assert(min, 'You need to provide a current value. Usage: E:GetFormattedText(style, min, max)')
+	assert(max, 'You need to provide a maximum value. Usage: E:GetFormattedText(style, min, max)')

-	if db[type].text_format == 'blank' then
-		return '';
-	end
+	if max == 0 then max = 1 end

-	if reverse then
-		if type == 'health' then --Health for Target frames
-			if db[type].text_format == 'current-percent' then
-				if min ~= max then
-					if E.db.sle.unitframes.reverse.health then
-						value = format("|cff%02x%02x%02x%.2f%%|r |cffD7BEA5-|r |cffAF5050%s|r", r * 255, g * 255, b * 255, format("%.2f", min / max * 100), min)
-					else
-						value = format("|cff%02x%02x%02x%.2f%%|r |cffD7BEA5-|r |cffAF5050%s|r", r * 255, g * 255, b * 255, format("%.2f", min / max * 100), E:ShortValue(min))
-					end
-				else
-					if E.db.sle.unitframes.reverse.health then
-						value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, max)
-					else
-						value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, E:ShortValue(max))
-					end
-				end
-			elseif db[type].text_format == 'current-max' then
-				if min == max then
-					if E.db.sle.unitframes.reverse.health then
-						value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, max)
-					else
-						value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, E:ShortValue(max))
-					end
-				else
-					if E.db.sle.unitframes.reverse.health then
-						value = format("|cff%02x%02x%02x%s|r |cffD7BEA5-|r |cffAF5050%s|r", r * 255, g * 255, b * 255, max, min)
-					else
-						value = format("|cff%02x%02x%02x%s|r |cffD7BEA5-|r |cffAF5050%s|r", r * 255, g * 255, b * 255, E:ShortValue(max), E:ShortValue(min))
-					end
-				end
-			elseif db[type].text_format == 'current' then
-				if E.db.sle.unitframes.reverse.health then
-					value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, min)
-				else
-					value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, E:ShortValue(min))
-				end
-			elseif db[type].text_format == 'percent' then
-				value = format("|cff%02x%02x%02x%.2f%%|r", r * 255, g * 255, b * 255, format("%.2f", min / max * 100))
-			elseif db[type].text_format == 'deficit' then
-				if min == max then
-					value = ""
-				else
-					if E.db.sle.unitframes.reverse.health then
-						value = format("|cffAF5050-|r|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, max - min)
-					else
-						value = format("|cffAF5050-|r|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, E:ShortValue(max - min))
-					end
-				end
-			end
-		else --Mana for Player, Boss, Arena, party, raid frames
-			if db[type].text_format == 'current-percent' then --
-				if min ~= max then
-					if E.db.sle.unitframes.reverse.mana then
-						value = format("%.2f%% |cffD7BEA5-|r %s", format("%.2f", min / max * 100), min)
-					else
-						value = format("%.2f%% |cffD7BEA5-|r %s", format("%.2f", min / max * 100), E:ShortValue(min))
-					end
-				else
-					value = format("%s", max)
-				end
-			elseif db[type].text_format == 'current-max' then --
-				if min == max then
-					if E.db.sle.unitframes.reverse.mana then
-						value = format("%s", max)
-					else
-						value = format("%s", E:ShortValue(max))
-					end
-				else
-					if E.db.sle.unitframes.reverse.mana then
-						value = format("%s |cffD7BEA5-|r %s", max, min)
-					else
-						value = format("%s |cffD7BEA5-|r %s", E:ShortValue(max), E:ShortValue(min))
-					end
-				end
-			elseif db[type].text_format == 'current' then --
-				if E.db.sle.unitframes.reverse.mana then
-					value = format("%s", min)
-				else
-					value = format("%s", E:ShortValue(min))
-				end
-			elseif db[type].text_format == 'percent' then --
-				value = format("%.2f%%", format("%.2f", min / max * 100))
-			elseif db[type].text_format == 'deficit' then --
-				if min == max then
-					value = ""
-				else
-					if E.db.sle.unitframes.reverse.mana then
-						value = format("|cffAF5050-|r%s", max - min)
-					else
-						value = format("|cffAF5050-|r%s", E:ShortValue(max - min))
-					end
-				end
-			end
-		end
-	else
-		if type == 'health' then --Health for player, focus, focus target, target of target, party, boss, arena, raid frames
-			if db[type].text_format == 'current-percent' then
-				if min ~= max then
-					if E.db.sle.unitframes.normal.health then
-						value = format("|cffAF5050%s|r |cffD7BEA5-|r |cff%02x%02x%02x%.2f%%|r", min, r * 255, g * 255, b * 255, format("%.2f", min / max * 100))
-					else
-						value = format("|cffAF5050%s|r |cffD7BEA5-|r |cff%02x%02x%02x%.2f%%|r", E:ShortValue(min), r * 255, g * 255, b * 255, format("%.2f", min / max * 100))
-					end
-				else
-					if E.db.sle.unitframes.normal.health then
-						value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, max)
-					else
-						value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, E:ShortValue(max))
-					end
-				end
-			elseif db[type].text_format == 'current-max' then
-				if min == max then
-					if E.db.sle.unitframes.normal.health then
-						value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, max)
-					else
-						value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, E:ShortValue(max))
-					end
-				else
-					if E.db.sle.unitframes.normal.health then
-						value = format("|cffAF5050%s|r |cffD7BEA5-|r |cff%02x%02x%02x%s|r", min, r * 255, g * 255, b * 255, max)
-					else
-						value = format("|cffAF5050%s|r |cffD7BEA5-|r |cff%02x%02x%02x%s|r", E:ShortValue(min), r * 255, g * 255, b * 255, E:ShortValue(max))
-					end
-				end
-			elseif db[type].text_format == 'current' then
-				if E.db.sle.unitframes.normal.health then
-					value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, min)
-				else
-					value = format("|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, E:ShortValue(min))
-				end
-			elseif db[type].text_format == 'percent' then
-				value = format("|cff%02x%02x%02x%.2f%%|r", r * 255, g * 255, b * 255, format("%.2f", min / max * 100))
-			elseif db[type].text_format == 'deficit' then
-				if min == max then
-					value = ""
-				else
-					if E.db.sle.unitframes.normal.health then
-						value = format("|cffAF5050-|r|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, max - min)
-					else
-						value = format("|cffAF5050-|r|cff%02x%02x%02x%s|r", r * 255, g * 255, b * 255, E:ShortValue(max - min))
-					end
-				end
-			end
-		else --Mana for Target of target, focus, focus target
-			if db[type].text_format == 'current-percent' then
-				if min ~= max then
-					if E.db.sle.unitframes.normal.mana then
-						value = format("%s |cffD7BEA5-|r %.2f%%", min, format("%.2f", min / max * 100))
-					else
-						value = format("%s |cffD7BEA5-|r %.2f%%", E:ShortValue(min), format("%.2f", min / max * 100))
-					end
-				else
-					if E.db.sle.unitframes.normal.mana then
-						value = format("%s", max)
-					else
-						value = format("%s", E:ShortValue(max))
-					end
-				end
-			elseif db[type].text_format == 'current-max' then
-				if min == max then
-					if E.db.sle.unitframes.normal.mana then
-						value = format("%s", max)
-					else
-						value = format("%s", E:ShortValue(max))
-					end
-				else
-					if E.db.sle.unitframes.normal.mana then
-						value = format("%s |cffD7BEA5-|r %s", min, max)
-					else
-						value = format("%s |cffD7BEA5-|r %s", E:ShortValue(min), E:ShortValue(max))
-					end
-				end
-			elseif db[type].text_format == 'current' then
-				if E.db.sle.unitframes.normal.mana then
-					value = format("%s", min)
-				else
-					value = format("%s", E:ShortValue(min))
-				end
-			elseif db[type].text_format == 'percent' then
-				value = format("%.2f%%", format("%.2f", min / max * 100))
-			elseif db[type].text_format == 'deficit' then
-				if min == max then
-					value = ""
-				else
-					if E.db.sle.unitframes.normal.mana then
-						value = format("|cffAF5050-|r%s", max - min)
-					else
-						value = format("|cffAF5050-|r%s", E:ShortValue(max - min))
-					end
-				end
-			end
+	local useStyle = styles[style]
+
+	local percentValue = E:TrimFloatingPoint(min / max * 100)
+
+	if style == 'DEFICIT' then
+		local deficit = max - min
+		if deficit <= 0 then
+			return ''
+		else
+			return string.format(useStyle, deficit)
 		end
+	elseif style == 'CURRENT' or ((style == 'CURRENT_MAX' or style == 'CURRENT_MAX_PERCENT' or style == 'CURRENT_PERCENT') and min == max) then
+			return string.format(styles['CURRENT'], min)
+	elseif style == 'CURRENT_MAX' then
+			return string.format(useStyle, min, max)
+	elseif style == 'CURRENT_PERCENT' then
+			return string.format(useStyle, min, percentValue)
+	elseif style == 'CURRENT_MAX_PERCENT' then
+			return string.format(useStyle, min, max, percentValue)
 	end
-
-	return value
 end

---Replacemant to move pvp indicator
-function UF:UpdatePvPText(frame)
-	local unit = frame.unit
-	local PvPText = frame.PvPText
-	local LowManaText = frame.Power.LowManaText
-	local health = frame.Health
-
-	if E.db.sle.pvp.mouse then
-		if PvPText and frame:IsMouseOver() then
-			PvPText:Show()
-				if LowManaText and LowManaText:IsShown() then LowManaText:Hide() end
+if E.myclass == "WARLOCK" then
+	ElvUF_Player.ShardBar.PostUpdate = function(self, spec)
+		local maxBars = self.number
+		local db = self:GetParent().db
+		local frame = self:GetParent()

-				local time = GetPVPTimer()
-				local min = format("%01.f", floor((time / 1000) / 60))
-				local sec = format("%02.f", floor((time / 1000) - min * 60))
-
-					if(UnitIsPVPFreeForAll(unit)) then
-						if time ~= 301000 and time ~= -1 then
-							PvPText:SetText(PVP.." ".."("..min..":"..sec..")")
-						else
-							PvPText:SetText(PVP)
-						end
-					elseif UnitIsPVP(unit) then
-						if time ~= 301000 and time ~= -1 then
-							PvPText:SetText(PVP.." ".."("..min..":"..sec..")")
-						else
-							PvPText:SetText(PVP)
-						end
-					else
-						PvPText:SetText("")
-					end
-		elseif PvPText then
-			PvPText:Hide()
-			if LowManaText and not LowManaText:IsShown() then LowManaText:Show() end
-		end
-	else
-		PvPText:Show()
-		if LowManaText and LowManaText:IsShown() then LowManaText:Hide() end
-
-		local time = GetPVPTimer()
-		local min = format("%01.f", floor((time / 1000) / 60))
-		local sec = format("%02.f", floor((time / 1000) - min * 60))
-
-		if(UnitIsPVPFreeForAll(unit)) then
-			if time ~= 301000 and time ~= -1 then
-				PvPText:SetText(PVP.." ".."("..min..":"..sec..")")
+		for i=1, UF['classMaxResourceBar'][E.myclass] do
+			if self[i]:IsShown() and db.classbar.fill == 'spaced' then
+				self[i].backdrop:Show()
 			else
-				PvPText:SetText(PVP)
+				self[i].backdrop:Hide()
 			end
-		elseif UnitIsPVP(unit) then
-			if time ~= 301000 and time ~= -1 then
-				PvPText:SetText(PVP.." ".."("..min..":"..sec..")")
-			else
-				PvPText:SetText(PVP)
-			end
-		else
-			PvPText:SetText("")
 		end
-	end
-
-	local x, y = self:GetPositionOffset(E.db.sle.pvp.pos)
-	PvPText:ClearAllPoints()
-	PvPText:Point(E.db.sle.pvp.pos, health, E.db.sle.pvp.pos, x, y)

-	if E.myclass == "DRUID" then
-		local eclipseBar = ElvUF_Player.EclipseBar
-		local spower = UnitPower( PlayerFrame.unit, SPELL_POWER_ECLIPSE );
-		if E.db.sle.bpenable then
-			eclipseBar.powtext:SetText(spower)
+		if not E.db.unitframe.units.player.classbar.offset then
+			if db.classbar.fill == 'spaced' and maxBars == 1 then
+				self:ClearAllPoints()
+				self:Point("LEFT", frame.Health.backdrop, "TOPLEFT", 8, 0)
+			elseif db.classbar.fill == 'spaced' then
+				self:ClearAllPoints()
+				self:Point("CENTER", frame.Health.backdrop, "TOP", -12, -2)
+			end
 		else
-			eclipseBar.powtext:SetText('')
+			if db.classbar.fill == 'spaced' and maxBars == 1 then
+				self:ClearAllPoints()
+				self:Point("CENTER", frame.Health.backdrop, "TOP", db.classbar.xOffset -(E:Scale(2)*3 + 6), db.classbar.yOffset -E:Scale(1))
+			elseif db.classbar.fill == 'spaced' then
+				self:ClearAllPoints()
+				self:Point("CENTER", frame.Health.backdrop, "TOP", db.classbar.xOffset -(E:Scale(2)*3 + 6), db.classbar.yOffset -E:Scale(1))
+			end
 		end
+
+		local SPACING = 1
+		if db.classbar.fill == 'spaced' then
+			SPACING = 13
+		end
+
+		for i = 1, maxBars do
+			self[i]:SetHeight(self:GetHeight())
+			self[i]:SetWidth(E:Scale(self:GetWidth() - 2)/maxBars)
+			self[i]:ClearAllPoints()
+			if i == 1 then
+				self[i]:SetPoint("LEFT", self)
+			else
+				self[i]:Point("LEFT", self[i-1], "RIGHT", SPACING , 0)
+			end
+		end
+
+		UF:UpdatePlayerFrameAnchors(frame, self:IsShown())
 	end
 end
\ No newline at end of file
diff --git a/ToDo.txt b/ToDo.txt
new file mode 100644
index 0000000..402def3
--- /dev/null
+++ b/ToDo.txt
@@ -0,0 +1,8 @@
+==WTF we need to do==
+Steal Hydra's animation code (STOLEN, now to be implemented ;) )
+Rewrite LFR save function to show MoP instances
+Look for more stuff Elv broken after last update (as always lol)
+
+==What we maybe can do==
+Saw an idea about a dot tracker, saw some coding for it will look at it when have time...
+Maybe add the ability to select amount of datatexts on each panel ranging from 1-3 slots
\ No newline at end of file