context menu re-work

AssemblerManiac [02-20-19 - 19:07]
context menu re-work
Filename
FurCContextMenu.lua
FurCControlBridge.lua
FurCData.lua
FurCDataParser.lua
FurCDatabaseQuery.lua
FurCEvents.lua
FurCFilter.lua
FurCGui.lua
FurCMenu.lua
FurCSettingsAdapter.lua
FurCTooltip.lua
FurCUtil.lua
FurnitureCatalogue.txt
FurnitureCatalogue_DevUtility/00_startup.lua
FurnitureCatalogue_DevUtility/Bindings.xml
FurnitureCatalogue_DevUtility/ContextMenu.lua
FurnitureCatalogue_DevUtility/FurnitureCatalogue_DevUtility.txt
FurnitureCatalogue_DevUtility/xml.xml
FurnitureCatalogue_Export/FurCDataExport.lua
FurnitureCatalogue_Export/FurCDataExport_Menu.lua
FurnitureCatalogue_Export/FurnitureCatalogue_Export.txt
data/01_Homestead/H_AchievementVendors.lua
data/01_Homestead/H_Cyrodiil.lua
data/01_Homestead/H_EventItems.lua
data/01_Homestead/H_LuxuryFurnisher.lua
data/01_Homestead/H_Recipes.lua
data/01_Homestead/H_Rolis.lua
data/02_Morrowind/M_AchievementVendors.lua
data/02_Morrowind/M_EventItems.lua
data/02_Morrowind/M_Recipes.lua
data/03_Reach/HotR_AchievementVendors.lua
data/03_Reach/HotR_LuxuryFurnisher.lua
data/03_Reach/HotR_Recipes.lua
data/03_Reach/HotR_Rollis.lua
data/04_Clockwork/CC_AchievementVendors.lua
data/04_Clockwork/CC_LuxuryFurnisher.lua
data/04_Clockwork/CC_Recipes.lua
data/05_Dragonbones/AchievementVendors.lua
data/05_Dragonbones/DragonB_LuxuryFurnisher.lua
data/05_Dragonbones/DragonB_Recipes.lua
data/06_2018/2018_Recipes.lua
data/06_2018/AchievementVendors.lua
data/06_2018/LuxuryFurnisher.lua
data/06_2018/RumourRecipes.lua
data/100025.lua
data/100026.lua
data/AchievementVendors.lua
data/EventItems.lua
data/LuxuryFurnisher.lua
data/MiscItemSources.lua
data/RecipeSources.lua
data/Recipes.lua
data/Rolis.lua
data/RumourRecipes.lua
libs/LibAddonMenu-2.0.txt
libs/LibAddonMenu-2.0/LICENSE
libs/LibAddonMenu-2.0/LibAddonMenu-2.0.lua
libs/LibAddonMenu-2.0/controls/button.lua
libs/LibAddonMenu-2.0/controls/checkbox.lua
libs/LibAddonMenu-2.0/controls/colorpicker.lua
libs/LibAddonMenu-2.0/controls/custom.lua
libs/LibAddonMenu-2.0/controls/description.lua
libs/LibAddonMenu-2.0/controls/divider.lua
libs/LibAddonMenu-2.0/controls/dropdown.lua
libs/LibAddonMenu-2.0/controls/editbox.lua
libs/LibAddonMenu-2.0/controls/header.lua
libs/LibAddonMenu-2.0/controls/iconpicker.lua
libs/LibAddonMenu-2.0/controls/panel.lua
libs/LibAddonMenu-2.0/controls/slider.lua
libs/LibAddonMenu-2.0/controls/submenu.lua
libs/LibAddonMenu-2.0/controls/texture.lua
libs/LibAsync/LibAsync.lua
libs/LibAsync/LibAsync.txt
libs/LibCustomMenu/LibCustomMenu.lua
libs/LibCustomMenu/LibCustomMenu.txt
libs/LibCustomMenu/Unlicense.rtf
libs/LibCustomMenu/libs/LibStub.lua
libs/LibCustomMenu/libs/LibStub.txt
libs/LibCustomMenu/libs/LibVotansAddonList/LibVotansAddonList.txt
libs/LibCustomMenu/libs/LibVotansAddonList/Main.lua
libs/LibCustomMenu/libs/LibVotansAddonList/lang/de.lua
libs/LibCustomMenu/libs/LibVotansAddonList/lang/fr.lua
libs/LibCustomMenu/libs/LibVotansAddonList/lang/strings.lua
libs/LibCustomTitles/LibCustomTitles.lua
libs/LibStub/LibStub.lua
locale/de.lua
locale/en.lua
locale/fr.lua
locale/jp.lua
locale/ru.lua
startup.lua
xml/Bindings.xml
xml/FurnitureCatalogue.xml
xml/FurnitureCatalogue_100025.xml
xml/FurnitureCatalogue_100026.xml
diff --git a/FurCContextMenu.lua b/FurCContextMenu.lua
index 9246463..e435840 100644
--- a/FurCContextMenu.lua
+++ b/FurCContextMenu.lua
@@ -2,17 +2,17 @@ FurC_LinkHandlerBackup_OnLinkMouseUp = nil

 local FURC_S_SHOPPINGLIST_1 = GetString(SI_FURC_ONE_TO_SHOPPINGLIST)
 local FURC_S_SHOPPINGLIST_5 = GetString(SI_FURC_FIVE_TO_SHOPPINGLIST)
-local FURC_S_TOGGLE_SL      = GetString(SI_FURC_TOGGLE_SHOPPINGLIST)
+local FURC_S_TOGGLE_SL		= GetString(SI_FURC_TOGGLE_SHOPPINGLIST)

 function AddFurnitureShoppingListMenuEntry(itemId, calledFromFurC)
-
-    if calledFromFurC then
+
+	if calledFromFurC then
 		if (not FurC.GetEnableShoppingList()) then return end
 		if (nil ==	moc()) or (nil == FurnitureShoppingListAdd) then return end
 		local controlName = moc():GetName() or ""
 		if nil == moc():GetName():match("_ListItem_") then return end
 	end
-
+
 	local itemLink = FurC.GetItemLink(itemId)
 	if nil == FurC.Find(itemLink) then return end
 	AddCustomMenuItem(FURC_S_SHOPPINGLIST_1,
@@ -39,58 +39,58 @@ end

 local cachedItemLink, cachedRecipeArray

-local function toChat()             FurC.ToChat(cachedItemLink) end
-local function fave()               FurC.Fave(cachedItemLink) end
-local function postItemSource()     FurC.ToChat(FurC.GetItemDescription(cachedItemLink, cachedRecipeArray, true, true)) end
-local function postRecipe()         FurC.ToChat(FurC.GetItemLink(cachedRecipeArray.blueprint)) end
-local function postRecipeResult()   FurC.ToChat(GetItemLinkRecipeResultItemLink(cachedItemLink)) end
-local function postMaterial()       FurC.ToChat(FurC.GetMats(cachedItemLink, cachedRecipeArray, true, true)) end
-
+local function toChat()				FurC.ToChat(cachedItemLink) end
+local function fave()				FurC.Fave(cachedItemLink) end
+local function postItemSource()		FurC.ToChat(FurC.GetItemDescription(cachedItemLink, cachedRecipeArray, true, true)) end
+local function postRecipe()			FurC.ToChat(FurC.GetItemLink(cachedRecipeArray.blueprint)) end
+local function postRecipeResult()	FurC.ToChat(GetItemLinkRecipeResultItemLink(cachedItemLink)) end
+local function postMaterial()		FurC.ToChat(FurC.GetMats(cachedItemLink, cachedRecipeArray, true, true))
+end

 local function doNothing() return end

-local S_DIVIDER     = "-"
-local function addMenuItems(itemLink, recipeArray)
-
+local S_DIVIDER = "-"
+local function addMenuItems(itemLink, recipeArray, hideSepBar)
+	hideSepBar = hideSepBar or false
 	recipeArray = recipeArray or FurC.Find(itemLink)
 	if not recipeArray or recipeArray == {} then return end
-
-    cachedItemLink = itemLink
-    cachedRecipeArray = recipeArray
-
-    if not FurC.GetSkipDivider() then
-        AddCustomMenuItem(S_DIVIDER,    doNothing, MENU_ADD_OPTION_LABEL)
-    end
-
+
+	cachedItemLink = itemLink
+	cachedRecipeArray = recipeArray
+
+	if not FurC.GetSkipDivider() and (not hideSepBar) then
+		AddCustomMenuItem(S_DIVIDER, doNothing, MENU_ADD_OPTION_LABEL)
+	end
+
 	AddCustomMenuItem(GetString(SI_FURC_MENU_HEADER), toChat, MENU_ADD_OPTION_LABEL)
-
-
+
 	local faveText = FurC.IsFavorite(itemLink, recipeArray) and GetString(SI_FURC_REMOVE_FAVE) or GetString(SI_FURC_ADD_FAVE)
 	AddCustomMenuItem(faveText, fave, MENU_ADD_OPTION_LABEL)
-
+
 	local isRecipe = IsItemLinkFurnitureRecipe(itemLink)
-
+
 	-- if we hold a recipe: allow posting recipe
 	if not isRecipe and recipeArray.blueprint then
-		AddCustomMenuItem(GetString(SI_FURC_POST_RECIPE),  postRecipe, MENU_ADD_OPTION_LABEL)
-
-    -- if it's a recipe: Allow posting item
+		AddCustomMenuItem(GetString(SI_FURC_POST_RECIPE),	postRecipe, MENU_ADD_OPTION_LABEL)
+
+		-- if it's a recipe: Allow posting item
 	elseif isRecipe then
-		AddCustomMenuItem(GetString(SI_FURC_POST_ITEM),     postRecipeResult, MENU_ADD_OPTION_LABEL)
+		AddCustomMenuItem(GetString(SI_FURC_POST_ITEM),		 postRecipeResult, MENU_ADD_OPTION_LABEL)
 	end
-
+
 	if recipeArray.origin ~= FURC_CRAFTING then
-		AddCustomMenuItem(GetString(SI_FURC_POST_ITEMSOURCE),   postItemSource, MENU_ADD_OPTION_LABEL)
+		AddCustomMenuItem(GetString(SI_FURC_POST_ITEMSOURCE),	 postItemSource, MENU_ADD_OPTION_LABEL)
 	else
-
+
 		-- post material list
-		AddCustomMenuItem(GetString(SI_FURC_POST_MATERIAL),     postMaterial, MENU_ADD_OPTION_LABEL)
-
+		AddCustomMenuItem(GetString(SI_FURC_POST_MATERIAL),		 postMaterial, MENU_ADD_OPTION_LABEL)
+
 		-- will do nothing if preferences not met
 		AddFurnitureShoppingListMenuEntry(itemLink, true)
 	end
 end

+--[[ Original version
 function FurC_HandleClickEvent(itemLink, button, control)		-- button being mouseButton here
 	if (type(itemLink) == 'string' and #itemLink > 0) then
 		local handled = LINK_HANDLER:FireCallbacks(LINK_HANDLER.LINK_MOUSE_UP_EVENT, itemLink, button, ZO_LinkHandler_ParseLink(itemLink))
@@ -100,8 +100,21 @@ function FurC_HandleClickEvent(itemLink, button, control)		-- button being mouse
 				addMenuItems(itemLink, FurC.Find(itemLink))
 			end
 			ShowMenu(control)
-        end
-    end
+		end
+	end
+end
+--]]
+function FurC_HandleClickEvent(itemLink, button, _, _, linkType, ...)    -- button being mouseButton here
+	if button == MOUSE_BUTTON_INDEX_RIGHT and
+		linkType == ITEM_LINK_TYPE and
+		type(itemLink) == 'string' and
+		#itemLink > 0 and
+		itemLink ~= '' then
+        zo_callLater(function()
+			addMenuItems(itemLink, FurC.Find(itemLink))
+			ShowMenu()
+		end)
+	end
 end


@@ -123,20 +136,20 @@ end
 function FurC_HandleInventoryContextMenu(control)

 	local st = ZO_InventorySlot_GetType(control)
-    local itemLink = nil
-    if st == SLOT_TYPE_ITEM
-	or st == SLOT_TYPE_BANK_ITEM
-	or st == SLOT_TYPE_GUILD_BANK_ITEM
-	or st == SLOT_TYPE_TRADING_HOUSE_POST_ITEM then
-        local bagId, slotId = ZO_Inventory_GetBagAndIndex(control)
-        itemLink = GetItemLink(bagId, slotId, linkStyle)
-    elseif st == SLOT_TYPE_STORE_BUY then
-        itemLink = GetStoreItemLink(control.index)
-    elseif st == SLOT_TYPE_TRADING_HOUSE_ITEM_RESULT then
-        itemLink = GetTradingHouseSearchResultItemLink(ZO_Inventory_GetSlotIndex(control), linkStyle)
-    elseif st == SLOT_TYPE_TRADING_HOUSE_ITEM_LISTING then
-        itemLink = GetTradingHouseListingItemLink(ZO_Inventory_GetSlotIndex(control), linkStyle)
-    end
+	local itemLink = nil
+	if st == SLOT_TYPE_ITEM or
+		st == SLOT_TYPE_BANK_ITEM or
+		st == SLOT_TYPE_GUILD_BANK_ITEM or
+		st == SLOT_TYPE_TRADING_HOUSE_POST_ITEM then
+		local bagId, slotId = ZO_Inventory_GetBagAndIndex(control)
+		itemLink = GetItemLink(bagId, slotId, linkStyle)
+	elseif st == SLOT_TYPE_STORE_BUY then
+		itemLink = GetStoreItemLink(control.index)
+	elseif st == SLOT_TYPE_TRADING_HOUSE_ITEM_RESULT then
+		itemLink = GetTradingHouseSearchResultItemLink(ZO_Inventory_GetSlotIndex(control), linkStyle)
+	elseif st == SLOT_TYPE_TRADING_HOUSE_ITEM_LISTING then
+		itemLink = GetTradingHouseListingItemLink(ZO_Inventory_GetSlotIndex(control), linkStyle)
+	end

 	local recipeArray = FurC.Find(itemLink)
 	-- d(recipeArray)
@@ -146,8 +159,6 @@ function FurC_HandleInventoryContextMenu(control)
 		addMenuItems(itemLink, recipeArray)
 		ShowMenu()
 	end, 50)
-
-
 end


@@ -164,15 +175,16 @@ function FurC.OnControlMouseUp(control, button)
 	zo_callLater(function()
 		ItemTooltip:SetHidden(true)
 		ClearMenu()
-		addMenuItems(itemLink, recipeArray)
+		addMenuItems(itemLink, recipeArray, true)
 		ShowMenu()
 	end, 50)

 end

 function FurC.InitRightclickMenu()
-	FurC_LinkHandlerBackup_OnLinkMouseUp = ZO_LinkHandler_OnLinkMouseUp
-	ZO_LinkHandler_OnLinkMouseUp = function(itemLink, button, control) FurC_HandleClickEvent(itemLink, button, control) end
+--	FurC_LinkHandlerBackup_OnLinkMouseUp = ZO_LinkHandler_OnLinkMouseUp
+--	ZO_LinkHandler_OnLinkMouseUp = function(itemLink, button, control) FurC_HandleClickEvent(itemLink, button, control) end
+	LINK_HANDLER:RegisterCallback(LINK_HANDLER.LINK_MOUSE_UP_EVENT, FurC_HandleClickEvent)
 	ZO_PreHook('ZO_InventorySlot_OnMouseEnter', FurC_HandleMouseEnter)
 	ZO_PreHook('ZO_InventorySlot_ShowContextMenu', function(rowControl)
 		FurC_HandleInventoryContextMenu(rowControl)
diff --git a/FurCControlBridge.lua b/FurCControlBridge.lua
index d7e5eef..d8903fe 100644
--- a/FurCControlBridge.lua
+++ b/FurCControlBridge.lua
@@ -1,35 +1,34 @@
-local FurC 		= FurnitureCatalogue
-local control 	= FurnitureCatalogueControl
-FurC.Visible	= false
+local FurC     = FurnitureCatalogue
+local control   = FurnitureCatalogueControl
+FurC.Visible  = false

 local LAM = LibStub:GetLibrary("LibAddonMenu-2.0")

 local function p(output, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
-	FurC.DebugOut(output, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+  FurC.DebugOut(output, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
 end


 function FurC.LoadFrameInfo(calledFrom)
-	local settings = FurC.settings.gui
+  local settings = FurC.settings.gui

-	FurCGui:ClearAnchors()
-	FurCGui:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, settings.lastX, settings.lastY)
+  FurCGui:ClearAnchors()
+  FurCGui:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, settings.lastX, settings.lastY)

-	FurCGui:SetWidth(settings.width)
-	FurCGui:SetHeight(settings.height)
+  FurCGui:SetWidth(settings.width)
+  FurCGui:SetHeight(settings.height)

-	if calledFrom then return end
-	zo_callLater(function() FurC.UpdateInventoryScroll() end, 100)
+  zo_callLater(function() FurC.UpdateInventoryScroll() end, 100)

 end

 function FurC.SaveFrameInfo(calledFrom)
-	local settings = FurC.settings["gui"]
+  local settings = FurC.settings["gui"]

-	settings.lastX	= FurCGui:GetLeft()
-	settings.lastY	= FurCGui:GetTop()
-	settings.width	= FurCGui:GetWidth()
-	settings.height	= FurCGui:GetHeight()
+  settings.lastX  = FurCGui:GetLeft()
+  settings.lastY  = FurCGui:GetTop()
+  settings.width  = FurCGui:GetWidth()
+  settings.height  = FurCGui:GetHeight()

   FurC.UpdateInventoryScroll()

@@ -37,216 +36,227 @@ end

 function FurC.OnResizeStop()

-	FurC.SaveFrameInfo()
-	FurC.UpdateLineVisibility()
-	FurC.UpdateInventoryScroll()
+  FurC.SaveFrameInfo()
+  FurC.UpdateLineVisibility()
+  FurC.UpdateInventoryScroll()

 end

 function FurC.ChangeTemplateFromButton(value)

-	local control = FurCGui_Header_Bar1_TemplateLarge
-	local otherControl = FurCGui_Header_Bar1_TemplateTiny
+  local control = FurCGui_Header_Bar1_TemplateLarge
+  local otherControl = FurCGui_Header_Bar1_TemplateTiny

-	if value then
-		otherControl  = FurCGui_Header_Bar1_TemplateLarge
-		control       = FurCGui_Header_Bar1_TemplateTiny
-	end
-	control:SetHidden(true)
-	otherControl:SetHidden(false)
+  if value then
+    otherControl = FurCGui_Header_Bar1_TemplateLarge
+    control = FurCGui_Header_Bar1_TemplateTiny
+  end
+  control:SetHidden(true)
+  otherControl:SetHidden(false)

-	FurC.SetTinyUi(value)
+  FurC.SetTinyUi(value)
 end

 function FurC.GUIButtonHideOnMouseUp()
-	FurCGui:SetHidden(true)
+  FurCGui:SetHidden(true)
 end

 local function forceRefresh()
-	FurC.WipeDatabase()
+  FurC.WipeDatabase()
 end

 function FurC.GUIButtonRefreshOnMouseUp(control, mouseButton)
-	if mouseButton == 1 then
-		FurC.ScanRecipes(false, true)
-	elseif mouseButton == 2 then
-		FurC.ScanRecipes(true, false)
-	elseif mouseButton == 3 then
-		if LAM and LAM.util then
-			LAM.util.ShowConfirmationDialog(
-				GetString(SI_FURC_DIALOGUE_RESET_DB_HEADER),
-				GetString(SI_FURC_DIALOGUE_RESET_DB_BODY),
-				forceRefresh
-			)
-		end
-	end
+  if mouseButton == 1 then
+    FurC.ScanRecipes(false, true)
+  elseif mouseButton == 2 then
+    FurC.ScanRecipes(true, false)
+  elseif mouseButton == 3 then
+    if LAM and LAM.util then
+      LAM.util.ShowConfirmationDialog(
+        GetString(SI_FURC_DIALOGUE_RESET_DB_HEADER),
+        GetString(SI_FURC_DIALOGUE_RESET_DB_BODY),
+        forceRefresh
+      )
+    end
+  end
 end

 function FurC.GuiShowTooltip(control, tooltiptext, reAnchor)
-	InitializeTooltip(InformationTooltip, control, BOTTOM, 0, 0, 0)
-	InformationTooltip:SetHidden(false)
-	InformationTooltip:ClearLines()
-	InformationTooltip:AddLine(tooltiptext)
-
-	if reAnchor then
-		InformationTooltip:ClearAnchors()
-		InformationTooltip:SetAnchor(TOPRIGHT, control, TOPLEFT, -10)
-	end
+  InitializeTooltip(InformationTooltip, control, BOTTOM, 0, 0, 0)
+  InformationTooltip:SetHidden(false)
+  InformationTooltip:ClearLines()
+  InformationTooltip:AddLine(tooltiptext)
+
+  if reAnchor then
+    InformationTooltip:ClearAnchors()
+    InformationTooltip:SetAnchor(TOPRIGHT, control, TOPLEFT, -10)
+  end
 end
 function FurC.GuiHideTooltip(control)
-	InformationTooltip:ClearLines()
-	InformationTooltip:SetHidden(true)
+  InformationTooltip:ClearLines()
+  InformationTooltip:SetHidden(true)
+end
+
+function FurC.GetRumourTooltip()
+  return GetString((FurC.GetShowRumours() and SI_FURC_HIDE_RUMOUR_TT) or SI_FURC_SHOW_RUMOUR_TT)
 end

 function FurC.GuiOnSearchBoxClick(control, mouseButton, doubleClick)
-	FurC_SearchBoxText:SetText("")
-	if mouseButton == 2 or doubleClick then
-		control:SetText("")
-	end
+  FurC_SearchBoxText:SetText("")
+  if mouseButton == 2 or doubleClick then
+    control:SetText("")
+  end
 end
+
+local FURC_S_FILTERDEFAULT = GetString(SI_FURC_TEXTBOX_FILTER_DEFAULT)
+
 function FurC.GuiOnSearchBoxFocusOut(control)
-    control = control or FurC_SearchBox
-	local text = control:GetText()
+  if control:GetText() and control:GetText() ~= "" then
+        FurC.GuiOnSliderUpdate(FurCGui_ListHolder_Slider, 0)
+    FurC.UpdateGui()
+    end
+    local text = FurC_SearchBox:GetText()
     FurC_SearchBoxText:SetText((#text == 0 and FURC_S_FILTERDEFAULT) or "")
-	FurC.RefreshFilters()
 end

 function FurC.GuiOnScroll(control, delta)
-	if not delta then return end
-	if delta == 0 then return end
+  if not delta then return end
+  if delta == 0 then return end
+
+  local slider = FurCGui_ListHolder_Slider
+--  slider.locked = true
+  -- negative delta means scrolling down

-	local slider = FurCGui_ListHolder_Slider
-	-- negative delta means scrolling down
+  local value = (FurCGui_ListHolder.dataOffset - delta)
+  local total = #FurCGui_ListHolder.dataLines - FurCGui_ListHolder.maxLines

-	local value = (FurCGui_ListHolder.dataOffset - delta)
-	local total = #FurCGui_ListHolder.dataLines - FurCGui_ListHolder.maxLines
+  if value < 0 then value = 0 end
+  if value > total then value = total end
+  FurCGui_ListHolder.dataOffset  = value

-	if value < 0 then value = 0 end
-	if value > total then value = total end
-	FurCGui_ListHolder.dataOffset  = value
+  FurC.UpdateInventoryScroll()

-	FurC.UpdateInventoryScroll()

-	slider:SetValue(FurCGui_ListHolder.dataOffset)
+  slider:SetValue(FurCGui_ListHolder.dataOffset)

-	FurC.GuiLineOnMouseEnter(moc())
+  FurC.GuiLineOnMouseEnter(moc())
 end

 function FurC.GuiOnSliderUpdate(slider, value)
-	if not value or slider and slider.locked then return end
-	local relativeValue = math.floor(FurCGui_ListHolder.dataOffset - value)
-	FurC.GuiOnScroll(slider, relativeValue)
+  if not value or slider and slider.locked then return end
+  local relativeValue = math.floor(FurCGui_ListHolder.dataOffset - value)
+  FurC.GuiOnScroll(slider, relativeValue)
 end

 function FurC.GuiShowFilterTooltip(control, label)
-	label = control.tooltip or label
-	FurC.GuiShowTooltip(control, label)
+  label = control.tooltip or label
+  FurC.GuiShowTooltip(control, label)
 end
 local currentLink, currentId


 function FurC.GuiLineOnMouseEnter(lineControl)
-	currentLink, currentId = nil
+  currentLink, currentId = nil

-	if not lineControl or not lineControl.itemLink or lineControl.itemLink == "" then return end
-	currentLink = lineControl.itemLink
-	currentId = lineControl.itemId
+  if not lineControl or not lineControl.itemLink or lineControl.itemLink == "" then return end
+  currentLink = lineControl.itemLink
+  currentId = lineControl.itemId

-	if nil == currentLink then return end
+  if nil == currentLink then return end

-	InitializeTooltip(ItemTooltip, lineControl, LEFT, 0, 0, 0)
-	ItemTooltip:SetLink(currentLink)
+  InitializeTooltip(ItemTooltip, lineControl, LEFT, 0, 0, 0)
+  ItemTooltip:SetLink(currentLink)
 end
 function FurC.GuiLineOnMouseExit(lineControl)
-	ItemTooltip:SetHidden(true)
+  ItemTooltip:SetHidden(true)
 end

 function FurC.Donate(control, mouseButton)

-	local amount = 2000
-	if mouseButton == 2 then
-		amount = 10000
-	elseif mouseButton == 3 then
-		amount = 25000
-	end
-
-	SCENE_MANAGER:Show('mailSend')
-	zo_callLater(function()
-	ZO_MailSendToField:SetText("@manavortex")
-	ZO_MailSendSubjectField:SetText("Thank you for Furniture Catalogue!")
-	QueueMoneyAttachment(amount)
-	ZO_MailSendBodyField:TakeFocus() end, 200)
+  local amount = 2000
+  if mouseButton == 2 then
+    amount = 10000
+  elseif mouseButton == 3 then
+    amount = 25000
+  end
+
+  SCENE_MANAGER:Show('mailSend')
+  zo_callLater(function()
+  ZO_MailSendToField:SetText("@manavortex")
+  ZO_MailSendSubjectField:SetText("Thank you for Furniture Catalogue!")
+  QueueMoneyAttachment(amount)
+  ZO_MailSendBodyField:TakeFocus() end, 200)
 end

 function FurC.OnControlDoubleClick(control)
-	FurC.ToChat(control.itemLink)
+  FurC.ToChat(control.itemLink)
 end


 function FurC.GuiVirtualMouseOver(control)
-	FurC.GuiShowTooltip(control, control.tooltip)
+  FurC.GuiShowTooltip(control, control.tooltip)
 end
 function FurC.GuiVirtualMouseOut(control)
-	FurC.GuiHideTooltip(control)
+  FurC.GuiHideTooltip(control)
 end


 function FurC.GuiQualityMouseUp(control, button)
 if button == 2 then FurC.SetFilterQuality(0) end
-	FurC.SetFilterQuality(control.quality)
+  FurC.SetFilterQuality(control.quality)
 end
 function FurC.GuiCraftingTypeMouseUp(control)
-	FurC.SetFilterCraftingType(control.craftingType)
+  FurC.SetFilterCraftingType(control.craftingType)
 end


-local sortBy		= nil
+local sortBy    = nil
 local sortDirection = "down"

 local function getButtonTex(key)
-	if key ~= sortBy then
-		return "esoui/art/miscellaneous/list_sortheader_icon_neutral.dds"
-	end
-	return "esoui/art/miscellaneous/list_sortheader_icon_sort" .. sortDirection .. ".dds"
+  if key ~= sortBy then
+    return "esoui/art/miscellaneous/list_sortheader_icon_neutral.dds"
+  end
+  return "esoui/art/miscellaneous/list_sortheader_icon_sort" .. sortDirection .. ".dds"
 end

 function FurC.GetSortParams()
-	return sortBy, sortDirection
+  return sortBy, sortDirection
 end

 function FurC.GuiOnSort(key)

-	-- set icon texture
-	if sortBy and sortBy == key then
-		sortDirection = ((sortDirection == "up" and "down") or "up")
-	else
-		sortBy = key
-		sortDirection = "up"
-	end
+  -- set icon texture
+  if sortBy and sortBy == key then
+    sortDirection = ((sortDirection == "up" and "down") or "up")
+  else
+    sortBy = key
+    sortDirection = "up"
+  end

-	FurCGui_Header_SortBar_Name_Button:SetNormalTexture(getButtonTex("itemName"))
-	FurCGui_Header_SortBar_Quality_Button:SetNormalTexture(getButtonTex("itemQuality"))
+  FurCGui_Header_SortBar_Name_Button:SetNormalTexture(getButtonTex("itemName"))
+  FurCGui_Header_SortBar_Quality_Button:SetNormalTexture(getButtonTex("itemQuality"))

-	FurC.UpdateGui()
+  FurC.UpdateGui()
 end


 function FurC.UpdateDropdownChoice(dropdownName, value)
-	if nil == dropdownName then
-		FurC.UpdateDropdownChoice("Version", value)
-		FurC.UpdateDropdownChoice("Character", value)
-		FurC.UpdateDropdownChoice("Source", value)
-		return
-	end
-	InformationTooltip:SetHidden(true)
-	value = value or FurC.GetDropdownChoiceTextual(dropdownName)
-
-	local controlName 	= "FurC_Dropdown"..dropdownName
-	local control 		= _G[controlName]
-	if nil == control then return end
-	control:GetNamedChild("SelectedItemText"):SetText(value)
+  if nil == dropdownName then
+    FurC.UpdateDropdownChoice("Version", value)
+    FurC.UpdateDropdownChoice("Character", value)
+    FurC.UpdateDropdownChoice("Source", value)
+    return
+  end
+  InformationTooltip:SetHidden(true)
+  value = value or FurC.GetDropdownChoiceTextual(dropdownName)
+
+  local controlName   = "FurC_Dropdown"..dropdownName
+  local control     = _G[controlName]
+  if nil == control then return end
+  control:GetNamedChild("SelectedItemText"):SetText(value)
 end

 function FurC.RefreshCounter()
-	FurC_RecipeCount:SetText(#FurCGui_ListHolder.dataLines)
+  FurC_RecipeCount:SetText(#FurCGui_ListHolder.dataLines)
 end
diff --git a/FurCData.lua b/FurCData.lua
index c7d4c41..454b6f1 100644
--- a/FurCData.lua
+++ b/FurCData.lua
@@ -1,556 +1,548 @@
-local currentChar				= FurnitureCatalogue.CharacterName
-local task 						= LibStub("LibAsync"):Create("FurnitureCatalogue_ScanDataFiles")
-local task2 					= LibStub("LibAsync"):Create("FurnitureCatalogue_ScanCharacterKnowledge")
-local characterAlliance 		= GetUnitAlliance('player')
+local currentChar        = FurnitureCatalogue.CharacterName
+local task             = LibStub("LibAsync"):Create("FurnitureCatalogue_ScanDataFiles")
+local task2           = LibStub("LibAsync"):Create("FurnitureCatalogue_ScanCharacterKnowledge")
+local characterAlliance     = GetUnitAlliance('player')

-local NUMBER_TYPE 				= "number"
-local STRING_TYPE 				= "string"
-local STRING_EMPTY 				= ""
+local NUMBER_TYPE         = "number"
+local STRING_TYPE         = "string"
+local STRING_EMPTY         = ""

-local lastLink 					= nil
-local recipeArray 				= nil
+local lastLink           = nil
+local recipeArray         = nil

 local FURC_STRING_TRADINGHOUSE = "Seen in trading house"

 local function getCurrentChar()
-	if nil == currentChar then currentChar = zo_strformat(GetUnitName("player")) end
-	return currentChar
+  if nil == currentChar then currentChar = zo_strformat(GetUnitName("player")) end
+  return currentChar
 end

 local p = FurC.DebugOut

 local function startupMessage(text)
-	if FurC.GetStartupSilently() then return end
-	d(text)
+  if FurC.GetStartupSilently() then return end
+  d(text)
 end

 local function getItemId(itemLink)
-	if nil == itemLink or STRING_EMPTY == itemLink then return end
-	if type(itemLink) == NUMBER_TYPE and itemLink > 9999 then return itemLink end
-	local _, _, _, itemId = ZO_LinkHandler_ParseLink(itemLink)
-	return tonumber(itemId)
+  if nil == itemLink or STRING_EMPTY == itemLink then return end
+  if type(itemLink) == NUMBER_TYPE and itemLink > 9999 then return itemLink end
+  local _, _, _, itemId = ZO_LinkHandler_ParseLink(itemLink)
+  return tonumber(itemId)
 end
 FurC.GetItemId = getItemId

 local function getItemLink(itemId)
     if nil == itemId then return end
-	itemId = tostring(itemId)
-	if #itemId > 55 then return itemId end
-	if #itemId < 4 then return end
-	return zo_strformat("|H1:item:<<1>>:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0|h|h", itemId)
+  itemId = tostring(itemId)
+  if #itemId > 55 then return itemId end
+  if #itemId < 4 then return end
+  return zo_strformat("|H1:item:<<1>>:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0|h|h", itemId)
 end
 FurC.GetItemLink = getItemLink

 local function printItemLink(itemId)
     if nil == itemId then return end
-	itemId = tostring(itemId)
+  itemId = tostring(itemId)
     local itemLink = nil
-	if #itemId > 55 then
+  if #itemId > 55 then
         itemLink = itemId
     end
     itemLink = itemLink or zo_strformat("|H1:item:<<1>>:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0|h|h", itemId)
-	d(zo_strformat("[<<1>>] = '',\t\t-- <<2>>", itemId, GetItemLinkName(itemLink)))
+  d(zo_strformat("[<<1>>] = '',\t\t-- <<2>>", itemId, GetItemLinkName(itemLink)))
 end
 FurC.PrintItemLink = printItemLink



 local function addDatabaseEntry(recipeKey, recipeArray)
-	if recipeKey and recipeArray and {} ~= recipeArray then
-		if tonumber(recipeKey) == 10 or tonumber(recipeKey) == 125 or tonumber(recipeKey) == 500 then
-			error(debug.traceback())
-		end
-		FurC.settings.data[recipeKey] = recipeArray
-	end
+  if recipeKey and recipeArray and {} ~= recipeArray then
+    FurC.settings.data[recipeKey] = recipeArray
+  end
 end


 local function makeMaterial(recipeKey, recipeArray, tryPlaintext, forcePlaintext)

-	if nil == recipeArray or (nil == recipeArray.blueprint and nil == recipeArray.recipeIndex and nil == recipeArray.recipeListIndex) then
-		return "couldn't get material list, please re-scan character knowledge"
-	end
-	local ret = ""
-	local ingredients = FurC.GetIngredients(recipeKey, recipeArray)
-	forcePlaintext = forcePlaintext or tryPlaintext and NonContiguousCount(ingredients) > 4
-	for ingredientLink, qty in pairs(ingredients) do
-		-- auto-capitalize because for some reason the ZOS API doesn't
-		local itemText = (forcePlaintext and string.gsub(" "..GetItemLinkName(ingredientLink), "%W%l", string.upper):sub(2)) or ingredientLink
-		 ret = zo_strformat("<<1>> <<2>>x <<3>>, ", ret, qty, itemText)
-	end
-	return ret:sub(0, -3)
+  if nil == recipeArray or (nil == recipeArray.blueprint and nil == recipeArray.recipeIndex and nil == recipeArray.recipeListIndex) then
+    return "couldn't get material list, please re-scan character knowledge"
+  end
+  local ret = ""
+  local ingredients = FurC.GetIngredients(recipeKey, recipeArray)
+  forcePlaintext = forcePlaintext or tryPlaintext and NonContiguousCount(ingredients) > 4
+  for ingredientLink, qty in pairs(ingredients) do
+    -- auto-capitalize because for some reason the ZOS API doesn't
+    local itemText = (forcePlaintext and string.gsub(" "..GetItemLinkName(ingredientLink), "%W%l", string.upper):sub(2)) or ingredientLink
+     ret = zo_strformat("<<1>> <<2>>x <<3>>, ", ret, qty, itemText)
+  end
+  return ret:sub(0, -3)

 end
 FurC.GetMats = makeMaterial

 function FurC.GetIngredients(itemLink, recipeArray)
-	recipeArray = recipeArray or FurC.Find(itemLink)
-	local ingredients = {}
-	if recipeArray.blueprint then
-		local blueprintLink = FurC.GetItemLink(recipeArray.blueprint)
-		numIngredients = GetItemLinkRecipeNumIngredients(blueprintLink)
-		for ingredientIndex=1, numIngredients do
-			name, _, qty 				= GetItemLinkRecipeIngredientInfo(blueprintLink, ingredientIndex)
-			ingredientLink 				= GetItemLinkRecipeIngredientItemLink(blueprintLink, ingredientIndex)
-			ingredients[ingredientLink]	= qty
-		end
-	else
-		_, name, numIngredients = GetRecipeInfo(recipeArray.recipeListIndex, recipeArray.recipeIndex)
-		for ingredientIndex=1, numIngredients do
-			name, _, qty 					= GetRecipeIngredientItemInfo(recipeArray.recipeListIndex, recipeArray.recipeIndex, ingredientIndex)
-			ingredientLink 					= GetRecipeIngredientItemLink(recipeArray.recipeListIndex, recipeArray.recipeIndex, ingredientIndex)
-			ingredients[ingredientLink]		= qty
-		end
-	end
-	return ingredients
+  recipeArray = recipeArray or FurC.Find(itemLink)
+  local ingredients = {}
+  if recipeArray.blueprint then
+    local blueprintLink = FurC.GetItemLink(recipeArray.blueprint)
+    numIngredients = GetItemLinkRecipeNumIngredients(blueprintLink)
+    for ingredientIndex=1, numIngredients do
+      name, _, qty         = GetItemLinkRecipeIngredientInfo(blueprintLink, ingredientIndex)
+      ingredientLink         = GetItemLinkRecipeIngredientItemLink(blueprintLink, ingredientIndex)
+      ingredients[ingredientLink]  = qty
+    end
+  else
+    _, name, numIngredients = GetRecipeInfo(recipeArray.recipeListIndex, recipeArray.recipeIndex)
+    for ingredientIndex=1, numIngredients do
+      name, _, qty           = GetRecipeIngredientItemInfo(recipeArray.recipeListIndex, recipeArray.recipeIndex, ingredientIndex)
+      ingredientLink           = GetRecipeIngredientItemLink(recipeArray.recipeListIndex, recipeArray.recipeIndex, ingredientIndex)
+      ingredients[ingredientLink]    = qty
+    end
+  end
+  return ingredients
 end

-local function parseFurnitureItem(itemLink, override)					-- saves to DB, returns recipeArray
+local function parseFurnitureItem(itemLink, override)          -- saves to DB, returns recipeArray
+
+  if not (
+  override or IsItemLinkPlaceableFurniture(itemLink)
+  or  GetItemLinkItemType(itemLink) == ITEMTYPE_FURNITURE
+  ) then return end
+
+  local recipeKey           = getItemId(itemLink)
+  local recipeArray           = FurC.settings.data[recipeKey]
+  if nil ~= recipeArray then return recipeArray end

-	if not (
-		override or IsItemLinkPlaceableFurniture(itemLink)
-		or  GetItemLinkItemType(itemLink) == ITEMTYPE_FURNITURE
-	) then return end
+  recipeArray = {}

-	local recipeKey 					= getItemId(itemLink)
-	local recipeArray 					= FurC.settings.data[recipeKey]
-	if nil ~= recipeArray then return recipeArray end
+  addDatabaseEntry(recipeKey, recipeArray)

-	return {}
+  return recipeArray
 end
-FurC.ParseFurnitureItem = parseFurnitureItem

-local function parseBlueprint(blueprintLink)				-- saves to DB, returns recipeArray
+local function parseBlueprint(blueprintLink)        -- saves to DB, returns recipeArray

-	local itemLink 		= GetItemLinkRecipeResultItemLink(blueprintLink, LINK_STYLE_BRACKETS)
-	local blueprintId 	= getItemId(blueprintLink)
-	local recipeKey 	= getItemId(itemLink)
-	if nil == recipeKey or -- we don't have a key to access the database
-		nil == itemLink or -- we don't have an item link to parse
-		nil == GetItemLinkName(itemLink) -- we didn't find an item result for our recipe
-	then return end
+  local itemLink     = GetItemLinkRecipeResultItemLink(blueprintLink, LINK_STYLE_BRACKETS)
+  local blueprintId   = getItemId(blueprintLink)
+  local recipeKey   = getItemId(itemLink)
+  if nil == recipeKey or -- we don't have a key to access the database
+    nil == itemLink or -- we don't have an item link to parse
+    nil == GetItemLinkName(itemLink) -- we didn't find an item result for our recipe
+  then return end

-	local recipeArray 			= FurC.settings.data[recipeKey] or {}
-	recipeArray.origin			= recipeArray.origin			or FURC_CRAFTING
-	recipeArray.characters		= recipeArray.characters		or {}
-	recipeArray.craftingSkill	= recipeArray.craftingSkill		or GetItemLinkCraftingSkillType(blueprintLink)
-	recipeArray.blueprint 		= recipeArray.blueprint 		or getItemId(blueprintLink)
+  local recipeArray       = FurC.settings.data[recipeKey] or {}
+  recipeArray.origin      = recipeArray.origin      or FURC_CRAFTING
+  recipeArray.characters    = recipeArray.characters    or {}
+  recipeArray.craftingSkill  = recipeArray.craftingSkill    or GetItemLinkCraftingSkillType(blueprintLink)
+  recipeArray.blueprint     = recipeArray.blueprint     or getItemId(blueprintLink)


-	if (IsItemLinkRecipeKnown(blueprintLink)) then
-		recipeArray.characters[getCurrentChar()] 	= true
-	end
-	addDatabaseEntry(recipeKey, recipeArray)
-	return recipeArray
+  if (IsItemLinkRecipeKnown(blueprintLink)) then
+    recipeArray.characters[getCurrentChar()]   = true
+  end
+  addDatabaseEntry(recipeKey, recipeArray)
+  return recipeArray

 end


-function FurC.Find(itemOrBlueprintLink)						-- sets recipeArray, returns it - calls scanItemLink
+function FurC.Find(itemOrBlueprintLink)            -- sets recipeArray, returns it - calls scanItemLink


-	if tonumber(itemOrBlueprintLink) == itemOrBlueprintLink then itemOrBlueprintLink = FurC.GetItemLink(itemOrBlueprintLink) end
-	if nil == itemOrBlueprintLink or #itemOrBlueprintLink == 0 then return end
-	-- p("scanItemLink(<<1>>)...", itemOrBlueprintLink)		-- do not return empty arrays. If this returns nil, abort!
+  if tonumber(itemOrBlueprintLink) == itemOrBlueprintLink then itemOrBlueprintLink = FurC.GetItemLink(itemOrBlueprintLink) end
+  if nil == itemOrBlueprintLink or #itemOrBlueprintLink == 0 then return end
+  -- p("scanItemLink(<<1>>)...", itemOrBlueprintLink)    -- do not return empty arrays. If this returns nil, abort!

-	if itemOrBlueprintLink == lastLink and nil ~= recipeArray then
-		return recipeArray
-	else
-		recipeArray = nil
-		lastLink = itemOrBlueprintLink
-	end
+  if itemOrBlueprintLink == lastLink and nil ~= recipeArray then
+    return recipeArray
+  else
+    recipeArray = nil
+    lastLink = itemOrBlueprintLink
+  end

-	if IsItemLinkFurnitureRecipe(itemOrBlueprintLink) then
-		recipeArray = parseBlueprint(itemOrBlueprintLink)
-	elseif IsItemLinkPlaceableFurniture(itemOrBlueprintLink) then
-		recipeArray = parseFurnitureItem(itemOrBlueprintLink)
-	end
+  if IsItemLinkFurnitureRecipe(itemOrBlueprintLink) then
+    recipeArray = parseBlueprint(itemOrBlueprintLink)
+  elseif IsItemLinkPlaceableFurniture(itemOrBlueprintLink) then
+    recipeArray = parseFurnitureItem(itemOrBlueprintLink)
+  end

-	return recipeArray
+  return recipeArray
 end

-function FurC.Delete(itemOrBlueprintLink)						-- sets recipeArray, returns it - calls scanItemLink
-	local recipeArray = scanItemLink(itemOrBlueprintLink)
-	if nil == recipeArray then return end
-	local itemLink = recipeArray.itemId
-	local itemKey = getItemId(itemLink)
-	FurC.settings.data[itemKey] = nil
+function FurC.Delete(itemOrBlueprintLink)            -- sets recipeArray, returns it - calls scanItemLink
+  local recipeArray = scanItemLink(itemOrBlueprintLink)
+  if nil == recipeArray then return end
+  local itemLink = recipeArray.itemId
+  local itemKey = getItemId(itemLink)
+  FurC.settings.data[itemKey] = nil
 end

 function FurC.GetEntry(itemOrBlueprintLink)
-	local itemLink =  (IsItemLinkFurnitureRecipe(itemOrBlueprintLink) and GetRecipeResultItemLink(itemOrBlueprintLink)) or itemOrBlueprintLink
-	local recipeArray = FurC.Find(itemLink)
-	-- d(string.format("Trying to get entry for %s: %s", itemLink, recipeArray))
-	if not recipeArray then return end
-	local itemId = getItemId(itemOrBlueprintLink)
-	if recipeArray.blueprint then
-		itemId = getItemId(GetItemLinkRecipeResultItemLink(blueprintLink))
-	end
-	return itemId, recipeArray
+  local itemLink =  (IsItemLinkFurnitureRecipe(itemOrBlueprintLink) and GetRecipeResultItemLink(itemOrBlueprintLink)) or itemOrBlueprintLink
+  local recipeArray = FurC.Find(itemLink)
+  -- d(string.format("Trying to get entry for %s: %s", itemLink, recipeArray))
+  if not recipeArray then return end
+  local itemId = getItemId(itemOrBlueprintLink)
+  if recipeArray.blueprint then
+    itemId = getItemId(GetItemLinkRecipeResultItemLink(blueprintLink))
+  end
+  return itemId, recipeArray

 end

 function FurC.IsFavorite(itemLink, recipeArray)
-	recipeArray = recipeArray or FurC.Find(itemLink)
-	return recipeArray.favorite
+  recipeArray = recipeArray or FurC.Find(itemLink)
+  return recipeArray.favorite
 end
 function FurC.Fave(itemLink, recipeArray)
-	recipeArray = recipeArray or FurC.Find(itemLink)
-	recipeArray.favorite = not recipeArray.favorite
-	if not recipeArray.favorite then
-		recipeArray.favorite = nil
-	end
+  recipeArray = recipeArray or FurC.Find(itemLink)
+  recipeArray.favorite = not recipeArray.favorite
+  if not recipeArray.favorite then
+    recipeArray.favorite = nil
+  end

-	FurC.UpdateGui()
+  FurC.UpdateGui()
 end

-local isPts = "PTS" == GetWorldName()
-local function scanRecipeIndices(recipeListIndex, recipeIndex)		-- returns recipeArray or nil, initialises
+local function scanRecipeIndices(recipeListIndex, recipeIndex)    -- returns recipeArray or nil, initialises

-	local itemLink = GetRecipeResultItemLink(recipeListIndex, recipeIndex, LINK_STYLE_BRACKETS)
-	if nil == itemLink or #itemLink == 0 or not IsItemLinkPlaceableFurniture(itemLink) then return end
+  local itemLink = GetRecipeResultItemLink(recipeListIndex, recipeIndex, LINK_STYLE_BRACKETS)
+  if nil == itemLink or #itemLink == 0 or not IsItemLinkPlaceableFurniture(itemLink) then return end

-	local recipeKey = getItemId(itemLink)
+  local recipeKey = getItemId(itemLink)

-	local recipeArray 			= FurC.settings.data[recipeKey] or {}
-
-	if not isPts and {} ~= recipeArray and recipeArray.origin == FURC_RUMOUR then
-		p("overwriting rumour recipe <<1>> (<<2>>)", recipeArray.blueprint, itemLink)
-	end
-
-	recipeArray.origin 			= FURC_CRAFTING
-	recipeArray.version			= recipeArray.version or 2
-	recipeArray.recipeListIndex = recipeArray.recipeListIndex or recipeListIndex
-	recipeArray.recipeIndex 	= recipeArray.recipeIndex or recipeIndex
+  local recipeArray       = FurC.settings.data[recipeKey] or {}
+  recipeArray.origin       = FURC_CRAFTING
+  recipeArray.version      = recipeArray.version or 2
+  recipeArray.recipeListIndex = recipeArray.recipeListIndex or recipeListIndex
+  recipeArray.recipeIndex   = recipeArray.recipeIndex or recipeIndex

-	recipeArray.characters		= recipeArray.characters or {}
+  recipeArray.characters    = recipeArray.characters or {}



-	if GetRecipeInfo(recipeListIndex, recipeIndex) then
-		recipeArray.characters[getCurrentChar()] 	= true
-		FurC.settings.accountCharacters = FurC.settings.accountCharacters or {}
-		FurC.settings.accountCharacters[getCurrentChar()] = FurC.settings.accountCharacters[getCurrentChar()] or true
-	end
+  if GetRecipeInfo(recipeListIndex, recipeIndex) then
+    recipeArray.characters[getCurrentChar()]   = true
+    FurC.settings.accountCharacters = FurC.settings.accountCharacters or {}
+    FurC.settings.accountCharacters[getCurrentChar()] = FurC.settings.accountCharacters[getCurrentChar()] or true
+  end


-	addDatabaseEntry(recipeKey, recipeArray)
-	return recipeArray
+  addDatabaseEntry(recipeKey, recipeArray)
+  return recipeArray

 end

-function FurC.TryCreateRecipeEntry(recipeListIndex, recipeIndex)	-- returns scanRecipeIndices, called from Events.lua
-	return scanRecipeIndices(recipeListIndex, recipeIndex)
+function FurC.TryCreateRecipeEntry(recipeListIndex, recipeIndex)  -- returns scanRecipeIndices, called from Events.lua
+  return scanRecipeIndices(recipeListIndex, recipeIndex)
 end

 function FurC.IsAccountKnown(recipeKey, recipeArray)
-	if recipeKey == nil and recipeArray == nil then return false end
-	recipeArray = recipeArray or FurC.settings.data[recipeKey]
-	return not (nil == recipeArray or nil == recipeArray.characters or NonContiguousCount(recipeArray.characters) == 0)
+  if recipeKey == nil and recipeArray == nil then return false end
+  recipeArray = recipeArray or FurC.settings.data[recipeKey]
+  return not (nil == recipeArray or nil == recipeArray.characters or NonContiguousCount(recipeArray.characters) == 0)
 end

 function FurC.CanCraft(recipeKey, recipeArray)
-	if recipeKey == nil  and recipeArray == nil then return false end
-	recipeArray = recipeArray or FurC.settings.data[recipeKey]
-	if FurC.IsAccountKnown(recipeKey, recipeArray) then
-		return recipeArray.characters[getCurrentChar()]
-	end
-	return false
+  if recipeKey == nil  and recipeArray == nil then return false end
+  recipeArray = recipeArray or FurC.settings.data[recipeKey]
+  if FurC.IsAccountKnown(recipeKey, recipeArray) then
+    return recipeArray.characters[getCurrentChar()]
+  end
+  return false
 end

 function FurC.GetCraftingSkillType(recipeKey, recipeArray)

-	local itemLink 			= FurC.GetItemLink(recipeKey)
-	local craftingSkillType	= GetItemLinkCraftingSkillType(itemLink)
+  local itemLink       = FurC.GetItemLink(recipeKey)
+  local craftingSkillType  = GetItemLinkCraftingSkillType(itemLink)

-	if 0 == craftingSkillType and recipeArray.blueprint then
-		craftingSkillType = GetItemLinkRecipeCraftingSkillType(FurC.GetItemLink(recipeArray.blueprint))
-	elseif 0 == craftingSkillType and recipeArray.recipeListIndex and recipeArray.recipeIndex then
-		_, _, _, _, _, _, craftingSkillType = GetRecipeInfo(recipeArray.recipeListIndex, recipeArray.recipeIndex)
-	end
+  if 0 == craftingSkillType and recipeArray.blueprint then
+    craftingSkillType = GetItemLinkRecipeCraftingSkillType(FurC.GetItemLink(recipeArray.blueprint))
+  elseif 0 == craftingSkillType and recipeArray.recipeListIndex and recipeArray.recipeIndex then
+    _, _, _, _, _, _, craftingSkillType = GetRecipeInfo(recipeArray.recipeListIndex, recipeArray.recipeIndex)
+  end

-	return craftingSkillType
+  return craftingSkillType
 end


 local function scanCharacter()
-	local listName, numRecipes
-	for recipeListIndex=1, GetNumRecipeLists() do
-		listName, numRecipes = GetRecipeListInfo(recipeListIndex)
-		for recipeIndex=1, numRecipes do
-			scanRecipeIndices(recipeListIndex, recipeIndex) --	returns true on success
-		end
-	end
-	p((GetString(SI_FURC_DEBUG_CHARSCANCOMPLETE)))
+  local listName, numRecipes
+  for recipeListIndex=1, GetNumRecipeLists() do
+    listName, numRecipes = GetRecipeListInfo(recipeListIndex)
+    for recipeIndex=1, numRecipes do
+      scanRecipeIndices(recipeListIndex, recipeIndex) --  returns true on success
+    end
+  end
+  p((GetString(SI_FURC_DEBUG_CHARSCANCOMPLETE)))
 end
 FurC.ScanCharacter = scanCharacter

 function FurC.RescanRumourRecipes()

-	local function rescan()
-		for itemId, recipeArray in pairs(FurC.settings.data) do
-			if recipeArray.source == FURC_RUMOUR then
-				local itemLink = recipeArray[itemLink]
-				if not FurC.RumourRecipes[itemLink] then
-					recipeArray.source = FURC_CRAFTING
-					recipeArray.origin = nil
-				end
-			end
-		end
-	end
-
-	task:Call(rescan)
-	:Then(FurC.UpdateGui)
+  local function rescan()
+    for itemId, recipeArray in pairs(FurC.settings.data) do
+      if recipeArray.source == FURC_RUMOUR then
+        local itemLink = recipeArray[itemLink]
+        if not FurC.RumourRecipes[itemLink] then
+          recipeArray.source = FURC_CRAFTING
+          recipeArray.origin = nil
+        end
+      end
+    end
+  end
+
+  task:Call(rescan)
+  :Then(FurC.UpdateGui)
 end

 local recipeArray
 local function scanFromFiles(shouldScanCharacter)
-	local function parseZoneData(zoneName, zoneData, versionNumber, origin)
-		for vendorName, vendorData in pairs(zoneData) do
-			for itemId, itemData in pairs(vendorData) do
-
-				recipeArray = parseFurnitureItem(FurC.GetItemLink(itemId), true)
-				if not recipeArray or itemId < 10 then
-						p("parseZoneData: Error when scanning <<1>>", itemId)
-					else
-
-					recipeArray.origin			= origin
-					recipeArray.version			= versionNumber
-					addDatabaseEntry(itemId, recipeArray)
-				end
-
-			end
-		end
-	end
-
-	local function scanRecipeFile()
-		local recipeKey, recipeArray
-		local function scanArray(ary, versionNumber, origin, itemIdIsKey)
-			if nil == ary then return end
-
-			for key, recipeId in pairs(ary) do
-				if itemIdIsKey then recipeId = key end
-				local recipeLink = FurC.GetItemLink(recipeId)
-				local itemLink = GetItemLinkRecipeResultItemLink(recipeLink) or FurC.GetItemLink(recipeId)
-				recipeArray = FurC.Find(itemLink) or parseBlueprint(recipeLink) or parseFurnitureItem(itemLink)
-				if nil == recipeArray then
-					p("scanRecipeFile: error for <<1>> (<<2>>)", recipeId, recipeLink)
-				else
-					local recipeListIndex, recipeIndex = GetItemLinkGrantedRecipeIndices(recipeLink)
-					recipeKey 					= getItemId(itemLink)
-					recipeArray.version 	 	= versionNumber
-					recipeArray.origin 			= origin
-					recipeArray.blueprint		= recipeId
-					recipeArray.recipeListIndex = recipeArray.recipeListIndex or recipeListIndex
-					recipeArray.recipeIndex 	= recipeArray.recipeIndex or recipeIndex
-					addDatabaseEntry(recipeKey, recipeArray)
-				end
-			end
-		end
-
-		for versionNumber, versionData in pairs(FurC.Recipes) do
-			scanArray(versionData, versionNumber, FURC_CRAFTING)
-		end
-		for versionNumber, versionData in pairs(FurC.RolisRecipes) do
-			scanArray(versionData, versionNumber, FURC_CRAFTING, true)
-		end
-		for versionNumber, versionData in pairs(FurC.FaustinaRecipes) do
-			scanArray(versionData, versionNumber, FURC_CRAFTING, true)
-		end
-	end
-
-	local function scanRolis()
-		for versionNumber, versionData in pairs(FurC.Rolis) do
-			for itemId, itemPrice in pairs(versionData) do
-				recipeArray = parseFurnitureItem(FurC.GetItemLink(itemId), true)
-				if nil ~= recipeArray then
-					recipeArray.version = versionNumber
-					recipeArray.origin = FURC_ROLIS
-					addDatabaseEntry(itemId, recipeArray)
-				end
-			end
-		end
-		for versionNumber, versionData in pairs(FurC.Faustina) do
-			for itemId, itemPrice in pairs(versionData) do
-				recipeArray = parseFurnitureItem(FurC.GetItemLink(itemId), true)
-				if nil ~= recipeArray then
-					recipeArray.version = versionNumber
-					recipeArray.origin = FURC_ROLIS
-					addDatabaseEntry(itemId, recipeArray)
-				end
-			end
-		end
-	end
-
-	local function scanFestivalFiles()
-		for versionNumber, versionData in pairs(FurC.EventItems) do
-			for eventName, eventData in pairs(versionData) do
-				for eventItemSource, eventItemData in pairs(eventData) do
-					for itemId, _ in pairs(eventItemData) do
-						recipeArray             = {}
-						recipeArray.craftable 	= false
-						recipeArray.version 	= versionNumber
-						recipeArray.origin 		= FURC_FESTIVAL_DROP
-						addDatabaseEntry(itemId, recipeArray)
-					end
-				end
-			end
-		end
-	end
-
-	local function scanMiscItemFile()
-		for versionNumber, versionData in pairs(FurC.MiscItemSources) do
-			for origin, originData in pairs(versionData) do
-				for itemId, itemSource in pairs(originData) do
-					local itemLink = FurC.GetItemLink(itemId)
-					recipeArray = parseFurnitureItem(FurC.GetItemLink(itemId))
-					if not recipeArray or itemId < 10 then
-						p("scanMiscItemFile: Error when scanning <<1>> (origin <<2>>) -> <<3>>", itemId, origin, itemLink)
-					else
-						recipeArray.version = versionNumber
-						recipeArray.origin  = origin
-						addDatabaseEntry(itemId, recipeArray)
-					end
-				end
-			end
-		end
-	end
-
-	local function scanVendorFiles()
-
-		FurC.InitAchievementVendorList()
-		local recipeKey, recipeArray, itemSource
-
-		for versionNumber, versionData in pairs(FurC.AchievementVendors) do
-			for zoneName, zoneData in pairs(versionData) do
-				parseZoneData(zoneName, zoneData, versionNumber, FURC_VENDOR)
-			end
-		end
-
-		for versionNumber, vendorData in pairs(FurC.LuxuryFurnisher) do
-			for itemId, itemData in pairs(vendorData) do
-					local recipeArray 			= {}
-					recipeArray.origin			= FURC_LUXURY
-					recipeArray.version			= versionNumber
-					addDatabaseEntry(itemId, recipeArray)
-			end
-		end
-
-		for versionNumber, versionData in pairs(FurC.PVP) do
-			for zoneName, zoneData in pairs(versionData) do
-				parseZoneData(zoneName, zoneData, versionNumber, FURC_PVP)
-			end
-		end
-	end
-
-	local function scanRumourRecipes()
-		for index, blueprintId in pairs(FurC.RumourRecipes) do
-			local blueprintLink = FurC.GetItemLink(blueprintId)
-			local itemLink = GetItemLinkRecipeResultItemLink(blueprintLink, LINK_STYLE_BRACKETS)
-			if #itemLink == 0 then itemLink = blueprintLink end
-			local itemId = getItemId(itemLink)
-			recipeArray = parseBlueprint(blueprintLink) or parseFurnitureItem(itemLink) or {}
-			if blueprintId ~= itemId then
-				recipeArray.blueprint = blueprintId
-			end
-			recipeArray.recipeListIndex, recipeArray.recipeIndex =  GetItemLinkGrantedRecipeIndices(blueprintLink)
-			recipeArray.origin = FURC_RUMOUR
-			recipeArray.verion = FURC_HOMESTEAD
-			addDatabaseEntry(itemId, recipeArray)
-		end
-	end
+  local function parseZoneData(zoneName, zoneData, versionNumber, origin)
+    for vendorName, vendorData in pairs(zoneData) do
+      for itemId, itemData in pairs(vendorData) do
+
+        recipeArray = parseFurnitureItem(FurC.GetItemLink(itemId), true)
+        if not recipeArray then
+            p("Error when scanning <<1>>", itemId)
+          else
+
+          recipeArray.origin      = origin
+          recipeArray.version      = versionNumber
+          addDatabaseEntry(itemId, recipeArray)
+        end
+
+      end
+    end
+  end
+
+  local function scanRecipeFile()
+    local recipeKey, recipeArray
+    local function scanArray(ary, versionNumber, origin)
+      if nil == ary then return end
+
+      for key, recipeId in ipairs(ary) do
+        local recipeLink = FurC.GetItemLink(recipeId)
+        local itemLink = GetItemLinkRecipeResultItemLink(recipeLink) or FurC.GetItemLink(recipeId)
+        recipeArray = FurC.Find(itemLink) or parseBlueprint(recipeLink) or parseFurnitureItem(itemLink)
+        local recipeListIndex, recipeIndex = GetItemLinkGrantedRecipeIndices(recipeLink)
+        if nil == recipeArray then
+          p("scanRecipeFile: error for <<1>> (ID was <<2>>)", recipeLink, recipeId)
+        else
+          recipeKey           = getItemId(itemLink)
+          recipeArray.version      = versionNumber
+          recipeArray.origin       = origin
+          recipeArray.blueprint    = recipeId
+          addDatabaseEntry(recipeKey, recipeArray)
+        end
+      end
+    end
+
+    for versionNumber, versionData in pairs(FurC.Recipes) do
+      scanArray(versionData, versionNumber, FURC_CRAFTING)
+    end
+    for versionNumber, versionData in pairs(FurC.RolisRecipes) do
+      scanArray(versionData, versionNumber, FURC_CRAFTING)
+    end
+    for versionNumber, versionData in pairs(FurC.FaustinaRecipes) do
+      scanArray(versionData, versionNumber, FURC_CRAFTING)
+    end
+  end
+
+  local function scanRolis()
+    for versionNumber, versionData in pairs(FurC.Rolis) do
+      for itemId, itemSource in pairs(versionData) do
+        recipeArray = parseFurnitureItem(FurC.GetItemLink(itemId), true)
+        if nil ~= recipeArray then
+          recipeArray.version = versionNumber
+          recipeArray.origin = FURC_ROLIS
+          addDatabaseEntry(itemId, recipeArray)
+        end
+      end
+    end
+    for versionNumber, versionData in pairs(FurC.Faustina) do
+      for itemId, itemSource in pairs(versionData) do
+        recipeArray = parseFurnitureItem(FurC.GetItemLink(itemId), true)
+        if nil ~= recipeArray then
+          recipeArray.version = versionNumber
+          recipeArray.origin = FURC_ROLIS
+          addDatabaseEntry(itemId, recipeArray)
+        end
+      end
+    end
+  end
+
+  local function scanFestivalFiles()
+    for versionNumber, versionData in pairs(FurC.EventItems) do
+      for eventName, eventData in pairs(versionData) do
+        for eventItemSource, eventItemData in pairs(eventData) do
+          for itemId, _ in pairs(eventItemData) do
+            recipeArray             = {}
+            recipeArray.craftable   = false
+            recipeArray.version   = versionNumber
+            recipeArray.origin     = FURC_FESTIVAL_DROP
+            addDatabaseEntry(itemId, recipeArray)
+          end
+        end
+      end
+    end
+  end
+
+  local function scanMiscItemFile()
+    for versionNumber, versionData in pairs(FurC.MiscItemSources) do
+      for origin, originData in pairs(versionData) do
+        for itemId, itemSource in pairs(originData) do
+          local itemLink = FurC.GetItemLink(itemId)
+          recipeArray = parseFurnitureItem(FurC.GetItemLink(itemId))
+          if nil ~= recipeArray then
+            recipeArray.version = versionNumber
+            recipeArray.origin  = origin
+            addDatabaseEntry(itemId, recipeArray)
+          else
+            p("scanMiscItemFile: Error when scanning <<1>> (<<2>>) -> <<3>>", itemLink, itemId, origin)
+          end
+        end
+      end
+    end
+  end
+
+  local function scanVendorFiles()
+
+    FurC.InitAchievementVendorList()
+    local recipeKey, recipeArray, itemSource
+
+    for versionNumber, versionData in pairs(FurC.AchievementVendors) do
+      for zoneName, zoneData in pairs(versionData) do
+        parseZoneData(zoneName, zoneData, versionNumber, FURC_VENDOR)
+      end
+    end
+
+    for versionNumber, vendorData in pairs(FurC.LuxuryFurnisher) do
+      for itemId, itemData in pairs(vendorData) do
+           local recipeArray       = {}
+
+          recipeArray.origin      = FURC_LUXURY
+          recipeArray.version      = versionNumber
+          addDatabaseEntry(itemId, recipeArray)
+      end
+    end
+
+    for versionNumber, versionData in pairs(FurC.PVP) do
+      for zoneName, zoneData in pairs(versionData) do
+        parseZoneData(zoneName, zoneData, versionNumber, FURC_PVP)
+      end
+    end
+  end
+
+  local function scanRumourRecipes()
+    for index, blueprintId in pairs(FurC.RumourRecipes) do
+      local blueprintLink = FurC.GetItemLink(blueprintId)
+      local itemLink = GetItemLinkRecipeResultItemLink(blueprintLink, LINK_STYLE_BRACKETS)
+      if #itemLink == 0 then itemLink = blueprintLink end
+      local itemId = getItemId(itemLink)
+      recipeArray = parseBlueprint(blueprintLink) or parseFurnitureItem(itemLink) or {}
+      if blueprintId ~= itemId then
+        recipeArray.blueprint = blueprintId
+      end
+      recipeArray.recipeListIndex, recipeArray.recipeIndex =  GetItemLinkGrantedRecipeIndices(blueprintLink)
+      recipeArray.origin = FURC_RUMOUR
+      recipeArray.verion = FURC_HOMESTEAD
+      addDatabaseEntry(itemId, recipeArray)
+    end
+  end
     local function scanCharacterOrMaybeNot()
         if shouldScanCharacter then
-			scanCharacter()
-		else
-			startupMessage(GetString(SI_FURC_VERBOSE_STARTUP))
-		end
+      scanCharacter()
+    else
+      startupMessage(GetString(SI_FURC_VERBOSE_STARTUP))
+    end
+    end
+  local function rescanRumourRecipes()
+    -- make sure that all rumour items
+    for recipeKey, recipeArray in pairs(FurC.settings.data) do
+      if FurC.RumourRecipes[recipeKey] or recipeArray.blueprint and FurC.RumourRecipes[recipeArray.blueprint] then
+
+      end
     end
-	local function rescanRumourRecipes()
-		-- make sure that all rumour items
-		for recipeKey, recipeArray in pairs(FurC.settings.data) do
-			if FurC.RumourRecipes[recipeKey] or recipeArray.blueprint and FurC.RumourRecipes[recipeArray.blueprint] then
-
-			end
-		end
-	end
+  end

-	FurC.IsLoading(true)
-
-	-- task:Call(scanMiscItemFile)
-	-- :Then(scanRecipeFile)
-
-	task:Call(scanRecipeFile)
-	:Then(scanMiscItemFile)
-	:Then(scanVendorFiles)
-	:Then(scanRolis)
-	:Then(scanFestivalFiles)
-	:Then(scanCharacterOrMaybeNot)
-	:Then(scanRumourRecipes)
-	:Then(FurC.UpdateGui)
-	startupMessage(GetString(SI_FURC_VERBOSE_DB_UPTODATE))
+  FurC.IsLoading(true)
+
+  -- task:Call(scanMiscItemFile)
+  -- :Then(scanRecipeFile)
+
+  task:Call(scanRecipeFile)
+  :Then(scanMiscItemFile)
+  :Then(scanVendorFiles)
+  :Then(scanRolis)
+  :Then(scanFestivalFiles)
+  :Then(scanCharacterOrMaybeNot)
+  :Then(scanRumourRecipes)
+  :Then(FurC.UpdateGui)
+  startupMessage(GetString(SI_FURC_VERBOSE_DB_UPTODATE))

 end
 FurC.ScanFromFiles = scanFromFiles

 local function getScanFromFiles()

-	if (FurC.settings.version < FurC.version) then
-		FurC.settings.version = FurC.version
-		return true
-	end
+  if (FurC.settings.version < FurC.version) then
+    FurC.settings.version = FurC.version
+    return true
+  end

-	return FurC.settings.data == {}
+  return FurC.settings.data == {}
 end

 local function getScanCharacter()
-	if nil == FurC.settings.accountCharacters[FurC.CharacterName] then
-		FurC.settings.accountCharacters[FurC.CharacterName] = false
-		return true
-	end
+  if nil == FurC.settings.accountCharacters[FurC.CharacterName] then
+    FurC.settings.accountCharacters[FurC.CharacterName] = false
+    return true
+  end
 end

-function FurC.ScanRecipes(shouldScanFiles, shouldScanCharacter)								-- returns database
-
-	shouldScanFiles = shouldScanFiles or getScanFromFiles()
-	shouldScanCharacter = (shouldScanCharacter or getScanCharacter())
-	if (shouldScanFiles) then
-		p(GetString(SI_FURC_VERBOSE_SCANNING_DATA_FILE))
-		scanFromFiles(shouldScanCharacter)
-	elseif (shouldScanCharacter) then
-		p(GetString(SI_FURC_VERBOSE_SCANNING_CHARS))
-		scanCharacter()
-	end
+function FurC.ScanRecipes(shouldScanFiles, shouldScanCharacter)                -- returns database
+
+  shouldScanFiles = shouldScanFiles or getScanFromFiles()
+  shouldScanCharacter = (shouldScanCharacter or getScanCharacter())
+  if (shouldScanFiles) then
+    p(GetString(SI_FURC_VERBOSE_SCANNING_DATA_FILE))
+    scanFromFiles(shouldScanCharacter)
+  elseif (shouldScanCharacter) then
+    p(GetString(SI_FURC_VERBOSE_SCANNING_CHARS))
+    scanCharacter()
+  end
 end

 function FurC.GetItemDescription(recipeKey, recipeArray, stripColor, attachItemLink)
     recipeKey = FurC.GetItemId(recipeKey)
     FurC.settings.emptyItemSources =  FurC.settings.emptyItemSources or {}
-	recipeArray = recipeArray or FurC.Find(recipeKey, recipeArray)
-	if not recipeArray then return "" end
-	local origin = recipeArray.origin
-	if origin == FURC_CRAFTING or origin == FURC_WRIT_VENDOR then
-		return FurC.GetMats(recipeKey, recipeArray, stripColor, attachItemLink)
-	elseif origin == FURC_ROLIS then
-		return FurC.getRolisSource(recipeKey, recipeArray, stripColor, attachItemLink)
-	elseif origin == FURC_LUXURY then
-		return FurC.getLuxurySource(recipeKey, recipeArray, stripColor, attachItemLink)
-	elseif origin == FURC_GUILDSTORE then
-		return GetString(SI_FURC_SEEN_IN_GUILDSTORE)
-	elseif origin == FURC_VENDOR then
-		return FurC.getAchievementVendorSource(recipeKey, recipeArray, stripColor, attachItemLink)
-	elseif origin == FURC_FESTIVAL_DROP then
-		return FurC.getEventDropSource(recipeKey, recipeArray, stripColor, attachItemLink)
-	elseif origin == FURC_PVP then
-		return FurC.getPvpSource(recipeKey, recipeArray, stripColor, attachItemLink)
-	elseif origin == FURC_RUMOUR then
-		return FurC.getRumourSource(recipeKey, recipeArray, stripColor, attachItemLink)
-	else
-		itemSource = FurC.GetMiscItemSource(recipeKey, recipeArray, stripColor, attachItemLink)
-	end
+  recipeArray = recipeArray or FurC.Find(recipeKey, recipeArray)
+  if not recipeArray then return "" end
+  local origin = recipeArray.origin
+  if origin == FURC_CRAFTING or origin == FURC_WRIT_VENDOR then
+    return FurC.GetMats(recipeKey, recipeArray, stripColor, attachItemLink)
+  elseif origin == FURC_ROLIS then
+    return FurC.getRolisSource(recipeKey, recipeArray, stripColor, attachItemLink)
+  elseif origin == FURC_LUXURY then
+    return FurC.getLuxurySource(recipeKey, recipeArray, stripColor, attachItemLink)
+  elseif origin == FURC_GUILDSTORE then
+    return GetString(SI_FURC_SEEN_IN_GUILDSTORE)
+  elseif origin == FURC_VENDOR then
+    return FurC.getAchievementVendorSource(recipeKey, recipeArray, stripColor, attachItemLink)
+  elseif origin == FURC_FESTIVAL_DROP then
+    return FurC.getEventDropSource(recipeKey, recipeArray, stripColor, attachItemLink)
+  elseif origin == FURC_PVP then
+    return FurC.getPvpSource(recipeKey, recipeArray, stripColor, attachItemLink)
+  elseif origin == FURC_RUMOUR then
+    return FurC.getRumourSource(recipeKey, recipeArray, stripColor, attachItemLink)
+  else
+    itemSource = FurC.GetMiscItemSource(recipeKey, recipeArray, stripColor, attachItemLink)
+  end
     if not itemSource then
         FurC.settings.emptyItemSources[recipeKey] = ", --" .. GetItemLinkName(FurC.GetItemLink(recipeKey))
     end
-	return itemSource or GetString(SI_FURC_ITEMSOURCE_EMPTY)
+  return itemSource or GetString(SI_FURC_ITEMSOURCE_EMPTY)
 end

diff --git a/FurCDataParser.lua b/FurCDataParser.lua
index dc765b3..6a248c5 100644
--- a/FurCDataParser.lua
+++ b/FurCDataParser.lua
@@ -1,82 +1,82 @@
-local db		= FurnitureCatalogue.settings["data"]
+local db    = FurnitureCatalogue.settings["data"]

-local p 		= FurC.DebugOut -- debug function calling zo_strformat with up to 10 args
+local p     = FurC.DebugOut -- debug function calling zo_strformat with up to 10 args


 function FurC.PrintCraftingStation(itemId, recipeArray)
-	local craftingType = FurC.GetCraftingSkillType(itemId, recipeArray)
-	if not craftingType or not GetCraftingSkillName(craftingType) then return "" end
-	return string.format(" (%s)", GetCraftingSkillName(craftingType))
+  local craftingType = FurC.GetCraftingSkillType(itemId, recipeArray)
+  if not craftingType or not GetCraftingSkillName(craftingType) then return "" end
+  return string.format(" (%s)", GetCraftingSkillName(craftingType))
 end

 local function prefillChatBox(output, refresh)

-	output = zo_strformat(output)
-	if nil == output or FURC_EMPTY_STRING == output then return end
-	local editControl = CHAT_SYSTEM.textEntry.editControl
-
-	if not refresh then
-		output = editControl:GetText() .. output
-	elseif CHAT_SYSTEM.textEntry.editControl:HasFocus() then
-		editControl:Clear()
-	end
-
-	-- trying to get rid of that double click error...
-	if IsProtectedFunction("StartChatInput") then
-		CallSecureProtected("StartChatInput", output)
-	else
-		StartChatInput(output)
-	end
+  output = zo_strformat(output)
+  if nil == output or FURC_EMPTY_STRING == output then return end
+  local editControl = CHAT_SYSTEM.textEntry.editControl
+
+  if not refresh then
+    output = editControl:GetText() .. output
+  elseif CHAT_SYSTEM.textEntry.editControl:HasFocus() then
+    editControl:Clear()
+  end
+
+  -- trying to get rid of that double click error...
+  if IsProtectedFunction("StartChatInput") then
+    CallSecureProtected("StartChatInput", output)
+  else
+    StartChatInput(output)
+  end
 end

 function FurC.ToChat(output, refresh)
-	if type(output) == "number" then
-		output = FurC.GetItemLink(output)
-	end
-	prefillChatBox(output, refresh)
+  if type(output) == "number" then
+    output = FurC.GetItemLink(output)
+  end
+  prefillChatBox(output, refresh)
 end

 local function stripColor(aString)
-	if nil == aString then return "" end
-	return aString:gsub("|%l%l%d%d%d%d%d", ""):gsub("|%l%l%d%l%l%d%d", ""):gsub("|c25C31E", ""):gsub("|r", "")
+  if nil == aString then return "" end
+  return aString:gsub("|%l%l%d%d%d%d%d", ""):gsub("|%l%l%d%l%l%d%d", ""):gsub("|c25C31E", ""):gsub("|r", "")
 end

 local function getNameFromEntry(recipeArray)
-	if nil == recipeArray then return "" end
-	if nil == recipeArray.itemName and nil ~= recipeArray.itemId then
-		recipeArray.itemName = GetItemLinkName(recipeArray.itemId)
-	end
-	return recipeArray.itemName or ""
+  if nil == recipeArray then return "" end
+  if nil == recipeArray.itemName and nil ~= recipeArray.itemId then
+    recipeArray.itemName = GetItemLinkName(recipeArray.itemId)
+  end
+  return recipeArray.itemName or ""
 end

 function FurC.PrintSource(itemLink, recipeArray)
-	if nil == recipeArray then recipeArray = FurC.Find(itemLink) end
-	if nil == recipeArray then return end
+  if nil == recipeArray then recipeArray = FurC.Find(itemLink) end
+  if nil == recipeArray then return end

-	local source = FurC.GetItemDescription(FurC.GetItemId(itemLink), recipeArray, true)
-	local output = string.format("%s: %s", itemLink, source)
-	if recipeArray.achievement and recipeArray.achievement ~= "" then
-		output = string.format("%s, requires %s", output, recipeArray.achievement)
-	end
+  local source = FurC.GetItemDescription(FurC.GetItemId(itemLink), recipeArray, true)
+  local output = string.format("%s: %s", itemLink, source)
+  if recipeArray.achievement and recipeArray.achievement ~= "" then
+    output = string.format("%s, requires %s", output, recipeArray.achievement)
+  end

-	FurC.ToChat(output, true)
+  FurC.ToChat(output, true)
 end

 function FurC.FindByName(namePart)
-	local ret = {}
-	local itemName = ""
-	-- d(zo_strformat("Looking for <<1>>... \n", namePart))
-	for itemId, recipeArray in pairs(FurC.settings["data"]) do
-		-- d(zo_strformat("<<1>>: <<2>> (<<3>>)", recipeArray.itemId, getNameFromEntry(recipeArray), string.match(string.lower(getNameFromEntry(recipeArray)), string.lower(namePart))))
-		if nil ~= string.match(string.lower(getNameFromEntry(recipeArray)), string.lower(namePart)) then
-			table.insert(ret, recipeArray)
-		end
-	end
-	return ret
+  local ret = {}
+  local itemName = ""
+  -- d(zo_strformat("Looking for <<1>>... \n", namePart))
+  for itemId, recipeArray in pairs(FurC.settings["data"]) do
+    -- d(zo_strformat("<<1>>: <<2>> (<<3>>)", recipeArray.itemId, getNameFromEntry(recipeArray), string.match(string.lower(getNameFromEntry(recipeArray)), string.lower(namePart))))
+    if nil ~= string.match(string.lower(getNameFromEntry(recipeArray)), string.lower(namePart)) then
+      table.insert(ret, recipeArray)
+    end
+  end
+  return ret
 end

 local function capitalise(str)
-	str = str:gsub("^(%l)(%w*)", function(a,b) return string.upper(a)..b end)
-	return str
+  str = str:gsub("^(%l)(%w*)", function(a,b) return string.upper(a)..b end)
+  return str
 end

diff --git a/FurCDatabaseQuery.lua b/FurCDatabaseQuery.lua
index 2d52eb3..7c9bd26 100644
--- a/FurCDatabaseQuery.lua
+++ b/FurCDatabaseQuery.lua
@@ -1,17 +1,17 @@
 local FurC = FurC

-local vendorColor 	= "d68957"
-local goldColor 	= "e5da40"
-local apColor 		= "25C31E"
-local tvColor		= "5EA4FF"
-local voucherColor	= "82BCFF"
-local p 			= FurC.DebugOut -- debug function calling zo_strformat with up to 10 args
+local vendorColor   = "d68957"
+local goldColor   = "e5da40"
+local apColor     = "25C31E"
+local tvColor    = "5EA4FF"
+local voucherColor  = "82BCFF"
+local p       = FurC.DebugOut -- debug function calling zo_strformat with up to 10 args

 local function colorise(str, col, ret)
-	str = tostring(str)
-	if str:find("%d000$") then str = str:gsub("000$", "k") end
-	if ret then return str end
-	return string.format("|c%s%s|r", col, str)
+  str = tostring(str)
+  if str:find("%d000$") then str = str:gsub("000$", "k") end
+  if ret then return str end
+  return string.format("|c%s%s|r", col, str)
 end

 local function makeAchievementLink(achievementId)
@@ -21,184 +21,183 @@ local function makeAchievementLink(achievementId)
 end

 local function getRolisSource(recipeKey, recipeArray)
-	recipeArray = recipeArray or FurC.Find(recipeKey)
-	if not recipeArray then return end
+  recipeArray = recipeArray or FurC.Find(recipeKey)
+  if not recipeArray then return end

-	local versionData = FurC.Rolis[recipeArray.version]
+  local versionData = FurC.Rolis[recipeArray.version]

-	if nil ~= versionData and nil ~= versionData[recipeKey] then
-		local itemPrice = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), colorise(versionData[recipeKey], voucherColor))
-		return zo_strformat(GetString(SI_FURC_STRING_Rolis), itemPrice)
-	end
+  if nil ~= versionData and nil ~= versionData[recipeKey] then
+    local itemPrice = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), colorise(versionData[recipeKey], voucherColor))
+    return zo_strformat(GetString(SI_FURC_STRING_Rolis), itemPrice)
+  end

-	versionData = FurC.Faustina[recipeArray.version]
-	if nil ~= versionData and nil ~= versionData[recipeKey] then
-		local itemPrice = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), colorise(versionData[recipeKey], voucherColor))
-		return zo_strformat(GetString(SI_FURC_STRING_FAUSTINA), itemPrice)
-	end
+  versionData = FurC.Faustina[recipeArray.version]
+  if nil ~= versionData and nil ~= versionData[recipeKey] then
+    local itemPrice = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), colorise(versionData[recipeKey], voucherColor))
+    return zo_strformat(GetString(SI_FURC_STRING_FAUSTINA), itemPrice)
+  end

-	return GetString(SI_FURC_STRING_VOUCHER_VENDOR)
+  return GetString(SI_FURC_STRING_VOUCHER_VENDOR)
 end
 FurC.getRolisSource = getRolisSource


 local function getLuxurySource(recipeKey, recipeArray, stripColor)
-	recipeArray = recipeArray or FurC.Find(recipeKey)
-	if not recipeArray then return end
-	local versionData = FurC.LuxuryFurnisher[recipeArray.version]
-	if not versionData then return GetString(SI_FURC_STRING_FETCHER) end
-
-	local itemData = versionData[recipeKey]
-
-	if nil ~= itemData then
-		local weekendString = (nil == itemData.itemDate and "") or zo_strformat(GetString(SI_FURC_STRING_WEEKEND_AROUND), itemData.itemDate)
-		return zo_strformat(
-			GetString(SI_FURC_STRING_WASSOLDBY),
-			colorise(GetString(SI_FURC_STRING_ASSHOLE), vendorColor, stripColor),
-			colorise(GetString(SI_FURC_STRING_HC), vendorColor, stripColor),
-			colorise(itemData.itemPrice, goldColor, stripColor),
-			weekendString
-		)
-	end
-	return GetString(SI_FURC_STRING_FETCHER)
+  recipeArray = recipeArray or FurC.Find(recipeKey)
+  if not recipeArray then return end
+  local versionData = FurC.LuxuryFurnisher[recipeArray.version]
+  if not versionData then return GetString(SI_FURC_STRING_FETCHER) end
+
+  local itemData = versionData[recipeKey]
+
+  if nil ~= itemData then
+    local weekendString = (nil == itemData.itemDate and "") or zo_strformat(GetString(SI_FURC_STRING_WEEKEND_AROUND), itemData.itemDate)
+    return zo_strformat(
+      GetString(SI_FURC_STRING_WASSOLDBY),
+      colorise(GetString(SI_FURC_STRING_ASSHOLE), vendorColor, stripColor),
+      colorise(GetString(SI_FURC_STRING_HC), vendorColor, stripColor),
+      colorise(itemData.itemPrice, goldColor, stripColor),
+      weekendString
+    )
+  end
+  return GetString(SI_FURC_STRING_FETCHER)
 end
 FurC.getLuxurySource = getLuxurySource

 local function getPvpSource(recipeKey, recipeArray, stripColor)

-	recipeArray = recipeArray or FurC.Find(recipeKey)
-	if not recipeArray then return end
-	local versionData = FurC.PVP[recipeArray.version]
-	if not versionData then return "getPvpSource: nil" end
-
-	for vendorName, vendorData in pairs(versionData) do
-		for locationName, locationData in pairs(vendorData) do
-			if nil ~= locationData[recipeKey] then
-				return zo_strformat(
-					GetString(SI_FURC_STRING_VENDOR),
-					colorise(vendorName, 	vendorColor, stripColor),
-					colorise(locationName, 	vendorColor, stripColor),
-					colorise(locationData[recipeKey].itemPrice, 	apColor, stripColor),
-					GetString(SI_FURC_STRING_AP)
-				)
-			end
-		end
-	end
-
-	return "getPvpSource"
+  recipeArray = recipeArray or FurC.Find(recipeKey)
+  if not recipeArray then return end
+  local versionData = FurC.PVP[recipeArray.version]
+  if not versionData then return "getPvpSource: nil" end
+
+  for vendorName, vendorData in pairs(versionData) do
+    for locationName, locationData in pairs(vendorData) do
+      if nil ~= locationData[recipeKey] then
+        return zo_strformat(
+          GetString(SI_FURC_STRING_VENDOR),
+          colorise(vendorName,   vendorColor, stripColor),
+          colorise(locationName,   vendorColor, stripColor),
+          colorise(locationData[recipeKey].itemPrice,   apColor, stripColor),
+          GetString(SI_FURC_STRING_AP)
+        )
+      end
+    end
+  end
+
+  return "getPvpSource"

 end
 FurC.getPvpSource = getPvpSource
 local typeTable = "table"
 local function getAchievementVendorSource(recipeKey, recipeArray, stripColor)

-	recipeArray = recipeArray or FurC.Find(recipeKey)
-	if not recipeArray then return end
-	local versionData = FurC.AchievementVendors[recipeArray.version]
-	if not versionData then
-		return zo_strformat("getAchievementVendorSource: failed version lookup for ID <<1>> [<<2>>]", recipeKey, recipeArray.version)
-	end
-
-	local databaseEntry
-
-	for zoneName, zoneData in pairs(versionData) do
-		for vendorName, vendorData in pairs(zoneData) do
-			databaseEntry = vendorData[recipeKey]
-			if nil ~= databaseEntry then
-				return zo_strformat(
-					GetString(SI_FURC_STRING_VENDOR),
-					colorise(vendorName, 				vendorColor, stripColor),
-					colorise(zoneName, 					vendorColor, stripColor),
-					colorise(databaseEntry.itemPrice, 	goldColor, 	 stripColor),
+  recipeArray = recipeArray or FurC.Find(recipeKey)
+  if not recipeArray then return end
+  local versionData = FurC.AchievementVendors[recipeArray.version]
+  if not versionData then
+    return zo_strformat("getAchievementVendorSource: failed version lookup for ID <<1>> [<<2>>]", recipeKey, recipeArray.version)
+  end
+
+  local databaseEntry
+
+  for zoneName, zoneData in pairs(versionData) do
+    for vendorName, vendorData in pairs(zoneData) do
+      databaseEntry = vendorData[recipeKey]
+      if nil ~= databaseEntry then
+        return zo_strformat(
+          GetString(SI_FURC_STRING_VENDOR),
+          colorise(vendorName,         vendorColor, stripColor),
+          colorise(zoneName,           vendorColor, stripColor),
+          colorise(databaseEntry.itemPrice,   goldColor,    stripColor),
                     makeAchievementLink(databaseEntry.achievement)
-				)
-			end
-		end
-	end
-	return zo_strformat("getAchievementVendorSource, found version data but no item data for <<1>> ", recipeKey)
+        )
+      end
+    end
+  end
+  return zo_strformat("getAchievementVendorSource, found version data but no item data for <<1>> ", recipeKey)
 end
 FurC.getAchievementVendorSource = getAchievementVendorSource

 local function getEventDropSource(recipeKey, recipeArray, stripColor)

-	recipeArray = recipeArray or FurC.Find(recipeKey)
-	if not recipeArray then return end
-	local versionData = FurC.EventItems[recipeArray.version]
-	local itemPriceString = "getEventDropSource: couldn't find " .. tostring(recipeKey)
-	if not versionData then
-		return itemPriceString
-	end
-	for versionNumber, versionData in pairs(FurC.EventItems) do
-			for eventName, eventData in pairs(versionData) do
-				for eventItemSource, eventSourceData in pairs(eventData) do
-					if eventSourceData[recipeKey] then
-						itemPriceString = zo_strformat(
-							GetString(SI_FURC_FESTIVAL_DROP),
-							colorise(eventName, 			vendorColor, stripColor),
-							colorise(eventItemSource, 		vendorColor, stripColor)
-						)
-						local additionalsource = tostring(eventSourceData[recipeKey]) or ""
-						if #additionalsource > 4 then
-							itemPriceString = itemPriceString .. "\n" .. additionalsource
-						end
-						return itemPriceString
-					end
-				end
-			end
-		end
-
-	return itemPriceString
+  recipeArray = recipeArray or FurC.Find(recipeKey)
+  if not recipeArray then return end
+  local versionData = FurC.EventItems[recipeArray.version]
+  local itemPriceString = "getEventDropSource: couldn't find " .. tostring(recipeKey)
+  if not versionData then
+    return itemPriceString
+  end
+  for versionNumber, versionData in pairs(FurC.EventItems) do
+      for eventName, eventData in pairs(versionData) do
+        for eventItemSource, eventSourceData in pairs(eventData) do
+          if eventSourceData[recipeKey] then
+            itemPriceString = zo_strformat(
+              GetString(SI_FURC_FESTIVAL_DROP),
+              colorise(eventName,       vendorColor, stripColor),
+              colorise(eventItemSource,     vendorColor, stripColor)
+            )
+            local additionalsource = tostring(eventSourceData[recipeKey]) or ""
+            if #additionalsource > 4 then
+              itemPriceString = itemPriceString .. "\n" .. additionalsource
+            end
+            return itemPriceString
+          end
+        end
+      end
+    end
+
+  return itemPriceString
 end
 FurC.getEventDropSource = getEventDropSource

 function FurC.GetMiscItemSource(recipeKey, recipeArray, attachItemLink)
-	if not recipeArray or not recipeArray.version or not recipeArray.origin then return end
+  if not recipeArray or not recipeArray.version or not recipeArray.origin then return end

-	if recipeArray.origin == FURC_RUMOUR then
-		return FurC.getRumourSource(recipeKey, recipeArray)
-	end
+  if recipeArray.origin == FURC_RUMOUR then
+    return FurC.getRumourSource(recipeKey, recipeArray)
+  end

-	local versionFiles = FurC.MiscItemSources[recipeArray.version]
-	if not versionFiles then return end
-	local originData = versionFiles[recipeArray.origin]
-	if nil == originData then return end
-	return (not attachItemLink and originData[recipeKey]) or string.format("%s: %s", FurC.GetItemLink(recipeKey), originData[recipeKey])
+  local versionFiles = FurC.MiscItemSources[recipeArray.version]
+  if not versionFiles then return end
+  local originData = versionFiles[recipeArray.origin]
+  if nil == originData then return end
+  return (not attachItemLink and originData[recipeKey]) or string.format("%s: %s", FurC.GetItemLink(recipeKey), originData[recipeKey])
 end

-
-function FurC.getRumourSource(recipeKey, recipeArray)
-	return (recipeArray.blueprint and GetString(SI_FURC_RUMOUR_SOURCE_RECIPE)) or GetString(SI_FURC_RUMOUR_SOURCE_ITEM)
-end
-
-
 local function getRecipeSource(recipeKey, recipeArray)
-	if nil == recipeKey or nil == FurC.RecipeSources then return end
-
+  if nil == recipeKey and nil == recipeArray then return end
+  if nil == FurC.RecipeSources then return end
     if nil ~= FurC.RecipeSources[recipeKey] then return FurC.RecipeSources[recipeKey] end
+
     recipeArray = recipeArray or FurC.Find(recipeKey)
-
-	if nil == recipeArray then return end

-	if recipeArray.origin == FURC_RUMOUR then return FurC.getRumourSource(recipeKey, recipeArray) end
-
-	return FurC.RecipeSources[recipeArray.blueprint or recipeKey]
+  recipeKey = recipeArray.blueprint or recipeKey
+
+    -- d(recipeKey)
+  return (recipeArray.origin == FURC_RUMOUR and FurC.getRumourSource(recipeKey, recipeArray))
+        or FurC.RecipeSources[recipeKey]
 end
 FurC.getRecipeSource = getRecipeSource

+function FurC.getRumourSource(recipeKey, recipeArray)
+  return (recipeArray.blueprint and GetString(SI_FURC_RUMOUR_SOURCE_RECIPE)) or GetString(SI_FURC_RUMOUR_SOURCE_ITEM)
+end
+
 function FurC.GetCrafterList(itemLink, recipeArray)
-	if nil == recipeArray and nil == itemLink then return end
-	recipeArray = recipeArray or FurC.Find(itemLink)
-	if nil == recipeArray then
-		return zo_strformat("FurC.GetCrafterList called for a non-craftable")
-	end
-
-	if nil == recipeArray.characters or NonContiguousCount(recipeArray.characters) == 0 then
-		return GetString(SI_FURC_STRING_CANNOT_CRAFT)
-	end
-	local ret = GetString(SI_FURC_STRING_CRAFTABLE_BY)
-	for characterName, characterKnowledge in pairs(recipeArray.characters) do
-		ret = string.format("%s %s, ", ret, characterName)
-	end
-	return ret:sub(0, -3)
+  if nil == recipeArray and nil == itemLink then return end
+  recipeArray = recipeArray or FurC.Find(itemLink)
+  if nil == recipeArray then
+    return zo_strformat("FurC.GetCrafterList called for a non-craftable")
+  end
+
+  if nil == recipeArray.characters or NonContiguousCount(recipeArray.characters) == 0 then
+    return GetString(SI_FURC_STRING_CANNOT_CRAFT)
+  end
+  local ret = GetString(SI_FURC_STRING_CRAFTABLE_BY)
+  for characterName, characterKnowledge in pairs(recipeArray.characters) do
+    ret = string.format("%s %s, ", ret, characterName)
+  end
+  return ret:sub(0, -3)
 end

diff --git a/FurCEvents.lua b/FurCEvents.lua
index f7b42fd..06c0201 100644
--- a/FurCEvents.lua
+++ b/FurCEvents.lua
@@ -1,97 +1,95 @@
-local em	= EVENT_MANAGER
-local p 	= FurC.DebugOut -- debug function calling zo_strformat with up to 10 args
+local em  = EVENT_MANAGER
+local p   = FurC.DebugOut -- debug function calling zo_strformat with up to 10 args

-
-local function executeRecipeScan()
-	FurC.ScanCharacter()
-	em:RegisterForEvent("FurnitureCatalogue", EVENT_RECIPE_LEARNED, onRecipeLearned)
-end
-local function onRecipeLearned(eventCode, recipeListIndex, recipeIndex)
-	em:UnregisterForEvent("FurnitureCatalogue", EVENT_RECIPE_LEARNED)
-	zo_callLater(executeRecipeScan, 500)
+local function onRecipeLearned(eventCode, recipeListIndex, recipeIndex)
+  p(FURC_STRING_RECIPELEARNED, GetRecipeResultItemLink(recipeListIndex, recipeIndex, LINK_STYLE_BRACKETS), recipeListIndex, recipeIndex)
+  FurC.TryCreateRecipeEntry(recipeListIndex, recipeIndex)
+  FurC.UpdateGui()
 end

 local wm = WINDOW_MANAGER
+
 local function createIcon(control)
-	local icon = wm:CreateControlFromVirtual(control:GetName().."FurCIcon", control, "FurC_SlotIconKnownYes")
-	local showLeft = FurC.settings.showIconOnLeft
-	if showLeft or nil == showLeft then
-		icon:SetAnchor(BOTTOMLEFT, control:GetNamedChild("Button"), BOTTOMLEFT, -15, -10)
-	else
-		icon:SetAnchor(TOPLEFT, control:GetNamedChild("TraitInfo"), TOPLEFT, 0, 0)
-	end
-	icon:SetHidden(true)
-	control.icon = icon
-	return icon
+  local icon
+  icon = wm:CreateControlFromVirtual(control:GetName().."FurCIcon", control, "FurC_SlotIconKnownYes")
+  if FurC.settings["showIconOnLeft"] == nil or
+     FurC.settings["showIconOnLeft"] == true then
+    icon:SetAnchor(BOTTOMLEFT, control:GetNamedChild("Button"), BOTTOMLEFT, -15, -10)
+  else
+    icon:SetAnchor(TOPLEFT, control:GetNamedChild("TraitInfo"), TOPLEFT, 0, 0)
+  end
+  icon:SetHidden(true)
+  control.icon = icon
+  return icon
 end

 local function getItemKnowledge(itemLink)
-	local recipeArray = FurC.Find(itemLink)
-	if FurC.GetUseInventoryIconsOnChar() then
-		return FurC.CanCraft(itemId, recipeArray)
-	end
-	return FurC.IsAccountKnown(itemId, recipeArray)
+  local recipeArray = FurC.Find(itemLink)
+  if FurC.GetUseInventoryIconsOnChar() then
+    return FurC.CanCraft(itemId, recipeArray)
+  end
+  return FurC.IsAccountKnown(itemId, recipeArray)

 end

 local function updateItemInInventory(control)
-	if 'listSlot' ~= control.slotControlType then return end
-	local icon = control.icon or createIcon(control)
-	local data = control.dataEntry.data
+  if 'listSlot' ~= control.slotControlType then return end
+  local icon = control.icon or createIcon(control)
+  local data = control.dataEntry.data

-	local bagId = data.bagId
-	local slotId = data.slotIndex
-	local itemLink = GetItemLink(bagId, slotId)
+  local bagId = data.bagId
+  local slotId = data.slotIndex
+  local itemLink = GetItemLink(bagId, slotId)

-	if not IsItemLinkFurnitureRecipe(itemLink) then
-		icon:SetHidden(true)
-		return
-	end
-	local known = getItemKnowledge(itemLink)
+  if not IsItemLinkFurnitureRecipe(itemLink) then
+    icon:SetHidden(true)
+    return
+  end
+  local known = getItemKnowledge(itemLink)

-	local hidden = known and FurC.GetHideKnownInventoryIcons() or (not FurC.GetUseInventoryIcons())
-	icon:SetHidden(hidden)
+  local hidden = known and FurC.GetHideKnownInventoryIcons() or (not FurC.GetUseInventoryIcons())
+  icon:SetHidden(hidden)

-	local templateName = "FurC_SlotIconKnown" .. ((known and "Yes") or "No")
+  local templateName = "FurC_SlotIconKnown" .. ((known and "Yes") or "No")

-	WINDOW_MANAGER:ApplyTemplateToControl(icon, templateName)
+  WINDOW_MANAGER:ApplyTemplateToControl(icon, templateName)

-	icon.data = {tooltipText = ((known and GetString(SI_FURC_CRAFTING_KNOWN)) or GetString(SI_FURC_CRAFTING_UNKNOWN))}
+  icon.data = {tooltipText = ((known and GetString(SI_FURC_CRAFTING_KNOWN)) or GetString(SI_FURC_CRAFTING_UNKNOWN))}
     icon:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter)
     icon:SetHandler("OnMouseExit", ZO_Options_OnMouseExit)

 end

 function FurC.SetupInventoryRecipeIcons(calledRecursively)
-	local function isValidBag(bagId, inventory)
-		if bagId == BAG_WORN 				then return false end
-		if bagId == BAG_VIRTUAL 			then return false end
-		local listView = inventory.listView
-		if not listView 					then return false end
-		if not listView.dataTypes 			then return false end
-		if not listView.dataTypes[1] 		then return false end
-		return nil ~= listView.dataTypes[1].setupCallback
-	end
-
-	local inventories = PLAYER_INVENTORY.inventories
-	if not inventories and not calledRecursively then
-		return zo_callLater(function() FurC.SetupInventoryRecipeIcons(true) end, 1000)
-	end
-	-- ruthlessly stolen from Dryzler's Inventory, then tweaked
-	for bagId, inventory in pairs(inventories) do
-		if isValidBag(bagId, inventory) then
-
-			ZO_PreHook( inventory.listView.dataTypes[1], "setupCallback",
-				function(control, slot) updateItemInInventory(control) end
-			)
-
-		end
-	end
+  local function isValidBag(bagId, inventory)
+    if bagId == BAG_WORN         then return false end
+    if bagId == BAG_VIRTUAL       then return false end
+    local listView = inventory.listView
+    if not listView           then return false end
+    if not listView.dataTypes       then return false end
+    if not listView.dataTypes[1]     then return false end
+    return nil ~= listView.dataTypes[1].setupCallback
+  end
+
+  local inventories = PLAYER_INVENTORY.inventories
+  if not inventories and not calledRecursively then
+    return zo_callLater(function() FurC.SetupInventoryRecipeIcons(true) end, 1000)
+  end
+  -- ruthlessly stolen from Dryzler's Inventory, then tweaked
+  for bagId, inventory in pairs(inventories) do
+    if isValidBag(bagId, inventory) then
+
+      ZO_PreHook( inventory.listView.dataTypes[1], "setupCallback",
+        function(control, slot) updateItemInInventory(control) end
+      )
+
+    end
+  end
 end



 function FurC.RegisterEvents()
-	em:RegisterForEvent("FurnitureCatalogue", EVENT_RECIPE_LEARNED, onRecipeLearned)
+  em:RegisterForEvent("FurnitureCatalogue", EVENT_RECIPE_LEARNED, onRecipeLearned)
 end

diff --git a/FurCFilter.lua b/FurCFilter.lua
index 9aa265f..8b5cd8e 100644
--- a/FurCFilter.lua
+++ b/FurCFilter.lua
@@ -1,95 +1,91 @@
-local p 						= FurC.DebugOut -- debug function calling zo_strformat with up to 10 args
-
-local searchString              = ""
-local dropdownChoiceVersion     = 1
-local dropdownTextVersion		    = "All"
-local ddSource					        = 1
-local dropdownTextSource        = "All"
-local dropdownChoiceCharacter	  = 1
-local ddTextCharacter           = "Accountwide"
-local qualityFilter             = {}
-local craftingTypeFilter        = {}
-
-local hideBooks 				        = false
-local hideRumours				        = false
-local hideCrownStore            = false
-local mergeLuxuryAndSales       = false
-local filterAllOnTextSearch     = false
+local p             = FurC.DebugOut -- debug function calling zo_strformat with up to 10 args
+
+local searchString         = ""
+local dropdownChoiceVersion    = 1
+local dropdownTextVersion    = "All"
+local ddSource    = 1
+local dropdownTextSource    = "All"
+local dropdownChoiceCharacter  = 1
+local ddTextCharacter      = "Accountwide"
+local qualityFilter       = {}
+local craftingTypeFilter     = {}
+
+local hideBooks         = false
+local hideRumours        = false
+local hideCrownStore      = false
+local mergeLuxuryAndSales    = false
+local filterAllOnTextSearch    = false

 local sourceIndices

 local recipeArray, itemId, itemLink, itemType, sItemType, itemName, recipeIndex, recipeListIndex

-local useDefaults
-local filterTask = FurC.FilterTask
-function FurC.RefreshFilters(filterUseDefaults, skipRefresh)
-	useDefaults = filterUseDefaults
-	filterTask:Cancel()
-	filterTask:Call(FurC.SetFilter)
-	if skipRefresh then return end
-	filterTask:Then(FurC.UpdateGui)
+function FurC.SetFilter(useDefaults, skipRefresh)
+
+    ClearTooltip(InformationTooltip)
+  sourceIndices           = FurC.SourceIndices
+  searchString           = FurC.GetSearchFilter()
+
+  if useDefaults then
+    dropdownChoiceVersion    = tonumber(FurC.GetDefaultDropdownChoice("Version"))
+    ddSource          = FurC.GetDefaultDropdownChoice("Source")
+    dropdownChoiceCharacter   = FurC.GetDefaultDropdownChoice("Character")
+  else
+    dropdownChoiceVersion    = tonumber(FurC.GetDropdownChoice("Version"))
+    ddSource          = FurC.GetDropdownChoice("Source")
+    dropdownChoiceCharacter   = FurC.GetDropdownChoice("Character")
+  end
+
+  -- we need to hold the text here, in case it's not "All"
+  ddTextCharacter        = FurC.GetDropdownChoiceTextual("Character")
+
+  qualityFilter           = FurC.GetFilterQuality()
+  craftingTypeFilter      = FurC.GetFilterCraftingType()
+  hideBooks               = FurC.GetHideBooks()
+  hideRumours             = not FurC.GetShowRumours() and FurC.GetHideRumourRecipes()
+  mergeLuxuryAndSales     = FurC.GetMergeLuxuryAndSales()
+  hideCrownStore          = FurC.GetHideCrownStoreItems()
+
+    -- ignore filtered items when no dropdown filter is set and there's a text search?
+    filterAllOnTextSearch       = FurC.GetFilterAllOnText() and #searchString > 0 and
+                                    FURC_NONE == ddSource and
+                                    FURC_NONE == dropdownChoiceVersion and
+                                    FURC_NONE == dropdownChoiceCharacter
+
+  if not skipRefresh then
+    zo_callLater(FurC.UpdateLineVisibility, 200)
+  end
 end

-function FurC.SetFilter()
-
---	p("FurC.SetFilter(<<1>>)")
-
-  ClearTooltip(InformationTooltip)
-	searchString 					= FurC.GetSearchFilter()
-
-	if useDefaults then
-		dropdownChoiceVersion      = tonumber(FurC.GetDefaultDropdownChoice("Version"))
-		ddSource                   = FurC.GetDefaultDropdownChoice("Source")
-		dropdownChoiceCharacter    = FurC.GetDefaultDropdownChoice("Character")
-	else
-		dropdownChoiceVersion      = tonumber(FurC.GetDropdownChoice("Version"))
-		ddSource                   = FurC.GetDropdownChoice("Source")
-		dropdownChoiceCharacter 	 = FurC.GetDropdownChoice("Character")
-	end
-
-	-- we need to hold the text here, in case it's not "All"
-	ddTextCharacter				       = FurC.GetDropdownChoiceTextual("Character")
-
-	qualityFilter                = FurC.GetFilterQuality()
-	craftingTypeFilter			     = FurC.GetFilterCraftingType()
-	hideBooks					           = FurC.GetHideBooks()
-	mergeLuxuryAndSales 		     = FurC.GetMergeLuxuryAndSales()
-
-	-- p("Version: <<1>>, Source: <<2>>, Character: <<3>>, qualityFilter: <<4>>, ",
-	-- dropdownChoiceVersion, ddSource, dropdownChoiceCharacter, qualityFilter)
-
-
-  -- ignore filtered items when there's a text search?
-	-- TODO this is broken
-	showRumoursOnTextSearch, showCrownStoreOnTextSearch = false, false
-
-	if #searchString > 0 and FurC.GetFilterAllOnText() then
-		hideBooks                   = not FurC.GetFilterAllOnTextNoBooks()
-		showRumoursOnTextSearch     = not FurC.GetFilterAllOnTextNoRumour() and FurC.GetHideRumourRecipes() and ddSource ~= FURC_RUMOUR
-		showCrownStoreOnTextSearch  = not FurC.GetFilterAllOnTextNoCrown() and FurC.GetHideCrownStoreItems() and ddSource ~= FURC_CROWN
-	end
-
---	p("showRumours: <<1>>, showCrownStore: <<2>>", tostring(showRumoursOnTextSearch), tostring(showCrownStoreOnTextSearch))
-
+function FurC.InitFilters()
+  FurC.SetFilterCraftingType(0)
+  FurC.SetFilterQuality(0)
+  FurC.SetDropdownChoice("Source", FurC.GetDefaultDropdownChoiceText("Source"), FurC.GetDefaultDropdownChoice("Source"))
+  FurC.SetDropdownChoice("Character", FurC.GetDefaultDropdownChoiceText("Character"), FurC.GetDefaultDropdownChoice("Character"))
+  FurC.SetDropdownChoice("Version", FurC.GetDefaultDropdownChoiceText("Version"), FurC.GetDefaultDropdownChoice("Version"))
 end

 local function isRecipeArrayKnown()

-	if nil == recipeArray or nil == recipeArray.characters then return end
-	 if dropdownChoiceCharacter == 1 then
-		for name, value in pairs(recipeArray.characters) do
-			if (value) then return true end
-		end
-	 else
-		return recipeArray.characters[ddTextCharacter]
-	end
+  if nil == recipeArray or nil == recipeArray.characters then return end
+   if dropdownChoiceCharacter == 1 then
+    for name, value in pairs(recipeArray.characters) do
+      if (value) then return true end
+    end
+   else
+    return recipeArray.characters[ddTextCharacter]
+  end
 end

 -- Version: All, Homestead, Morrowind
 local function matchVersionDropdown()
-	return dropdownChoiceVersion == 1 or recipeArray.version == dropdownChoiceVersion
+  return dropdownChoiceVersion == 1 or recipeArray.version == dropdownChoiceVersion
 end

+local function shouldBeHidden()
+  return (ddSource ~= FURC_RUMOUR and recipeArray.origin == FURC_RUMOUR and hideRumours) or
+  (ddSource ~= FURC_CROWN and recipeArray.origin == FURC_CROWN and hideCrownStore)
+end

 local validSourcesForOther = {
     [FURC_FESTIVAL_DROP]    = true,
@@ -102,9 +98,11 @@ local validSourcesForOther = {
 -- Source: All, All (craftable), Craftable (known), craftable (unknown), purchaseable
 local function matchSourceDropdown()

-	-- "All", don't care
-	if FURC_NONE					== ddSource then return true end
-  if FURC_FAVE              == ddSource then
+  -- "All", don't care
+  if FURC_NONE          == ddSource then
+    return true
+  end
+  if FURC_FAVE               == ddSource then
     return recipeArray.favorite
   end
   if recipeArray.origin == FURC_CRAFTING then
@@ -112,79 +110,80 @@ local function matchSourceDropdown()
       local matchingDropdownSource = (isRecipeArrayKnown(recipeArray) and FURC_CRAFTING_KNOWN) or FURC_CRAFTING_UNKNOWN
       return matchingDropdownSource == ddSource
   end
-	if FURC_VENDOR 					    == ddSource then
-		return (recipeArray.origin 		== FURC_VENDOR or (mergeLuxuryAndSales and recipeArray.origin == FURC_LUXURY))
-  end
-	if FURC_WRIT_VENDOR 			    == ddSource then
-		return recipeArray.origin 		== FURC_ROLIS
-  end
-	if FURC_OTHER					    == ddSource then
-		return validSourcesForOther[recipeArray.origin]
-  end
-
-	-- we're checking character knowledge
-	return recipeArray.origin  == ddSource
+  if FURC_VENDOR               == ddSource then
+    return (recipeArray.origin     == FURC_VENDOR or (mergeLuxuryAndSales and recipeArray.origin == FURC_LUXURY))
+    end
+  if FURC_WRIT_VENDOR           == ddSource then
+    return recipeArray.origin     == FURC_ROLIS
+    end
+  if FURC_OTHER              == ddSource then
+    return validSourcesForOther[recipeArray.origin]
+    end
+  -- we're checking character knowledge
+  return recipeArray.origin  == ddSource
+

 end

 local function matchDropdownFilter()
-	return matchVersionDropdown() and matchSourceDropdown()
+  return matchVersionDropdown() and matchSourceDropdown()
 end

 local function matchSearchString()
-	if #searchString == 0 then return true end
-  local caseSensitive = nil ~= string.match(searchString, "%u")
-  local itemName = GetItemLinkName(itemLink)
-  local matchme = (caseSensitive and itemName) or string.lower(itemName)
-  return string.match(matchme, searchString)
+  if #searchString == 0 then return true end
+    local caseSensitive = nil ~= string.match(searchString, "%u")
+    local itemName = GetItemLinkName(itemLink)
+    local matchme = (caseSensitive and itemName) or string.lower(itemName)
+    return string.match(matchme, searchString)
 end

 local function matchCraftingTypeFilter()
-	if not recipeArray.origin == FURC_CRAFTING then return false end
-	local filterType = FurC.GetCraftingSkillType(itemId, recipeArray)
-	return filterType and filterType > 0 and craftingTypeFilter[filterType]
+  if not recipeArray.origin == FURC_CRAFTING then return false end
+  local filterType = FurC.GetCraftingSkillType(itemId, recipeArray)
+  return filterType and filterType > 0 and craftingTypeFilter[filterType]
 end
 local function matchQualityFilter()
-	return qualityFilter[GetItemLinkQuality(itemLink)]
+  return qualityFilter[GetItemLinkQuality(itemLink)]
 end

-local function shouldBeHidden()
-	if recipeArray.origin == FURC_RUMOUR then
-		return not (showRumoursOnTextSearch   or ddSource == FURC_RUMOUR)
-	end
-	if recipeArray.origin == FURC_CROWN then
-		return not (showCrownStoreOnTextSearch or ddSource == FURC_CROWN)
-	end
-	if not hideBooks then return false end
-	local versionData = FurC.Books[recipeArray.version]
-	if nil == versionData then return end
-	return nil ~= versionData[itemId]
+local function filterBooks(itemId, recipeArray)
+  if not (hideBooks or filterAllOnTextSearch and FurC.GetFilterAllOnTextNoBooks()) then return false end
+  local versionData = FurC.Books[recipeArray.version]
+  if nil == versionData then return end
+  return nil ~= versionData[itemId]
 end

 function FurC.MatchFilter(currentItemId, currentRecipeArray)

-	itemId = currentItemId
-	itemLink = FurC.GetItemLink(itemId)
-	recipeArray = currentRecipeArray or FurC.Find(itemLink)
-
-	-- hide rumour, crown store items and books?
-	if shouldBeHidden(itemId, recipeArray) then return false end
-
-  if not matchSearchString() then
-    return false
-  end
-
-	itemType, sItemType = GetItemLinkItemType(itemLink)
+  itemId = currentItemId
+  itemLink = FurC.GetItemLink(itemId)
+  recipeArray = currentRecipeArray or FurC.Find(itemLink)
+  itemType, sItemType = GetItemLinkItemType(itemLink)
     if 0 == itemType and 0 == sItemType then
-        p("invalid item type for <<1>> (<<2>>)", currentItemId, FurC.GetItemLink(currentItemId))
+        p("invalid item type for <<1>>", currentItemId)
         return false
     end
+    if  filterBooks(itemId, recipeArray)                              then return false end
+
+
+    if recipeArray.origin == FURC_RUMOUR then
+        if filterAllOnTextSearch and not FurC.GetFilterAllOnTextNoRumour() then
+            return false
+        end
+        if hideRumours and ddSource ~= FURC_RUMOUR then return false end
+    end
+
+    if recipeArray.origin == FURC_CROWN then
+        if filterAllOnTextSearch and FurC.GetFilterAllOnTextNoCrown() then return false end
+        if hideCrownStore and ddSource ~= FURC_CROWN then return false end
+    end

-	if not matchDropdownFilter() then return false end
+    if not (filterAllOnTextSearch  or  matchDropdownFilter()) then return false end


-	if not (FurC.settings.filterCraftingTypeAll or matchCraftingTypeFilter())	 then return false end
-	if not (FurC.settings.filterQualityAll 		or matchQualityFilter())		     then return false end
+    if not matchSearchString()                             then return false end
+  if not (FurC.settings.filterCraftingTypeAll or matchCraftingTypeFilter())  then return false end
+  if not (FurC.settings.filterQualityAll     or matchQualityFilter())    then return false end

-	return true
+  return true
 end
diff --git a/FurCGui.lua b/FurCGui.lua
index 7568ca0..d2b376b 100644
--- a/FurCGui.lua
+++ b/FurCGui.lua
@@ -1,131 +1,132 @@
-FurC.SlotTemplate     = "FurC_SlotTemplate"
-FurC.KnowledgeFilter  = "All (Accountwide)"
+FurC.SlotTemplate    = "FurC_SlotTemplate"
+FurC.KnowledgeFilter   = "All (Accountwide)"
 FurC.SearchString     = ""
 FurC.ScrollSortUp     = true
-local checkWasUpdated = false
-local task            = LibStub("LibAsync"):Create("FurnitureCatalogue_updateLineVisibility")
-local otherTask       = LibStub("LibAsync"):Create("FurnitureCatalogue_ToggleGui")
+local checkWasUpdated  = false
+local task         = LibStub("LibAsync"):Create("FurnitureCatalogue_updateLineVisibility")
+local otherTask     = LibStub("LibAsync"):Create("FurnitureCatalogue_ToggleGui")
+local async       = LibStub("LibAsync"):Create("FurnitureCatalogue_forLoop")


-local p 		= FurC.DebugOut -- debug function calling zo_strformat with up to 10 args
+local p     = FurC.DebugOut -- debug function calling zo_strformat with up to 10 args
 local sortTable = FurC.SortTable

 local function sort(myTable)
-	local sortName, sortDirection = FurC.GetSortParams()
-	sortName = sortName or "itemName"
-	local sortUp = ((ZO_SORT_ORDER_UP and sortDirection == "up") or ZO_SORT_ORDER_DOWN)
-	return sortTable(myTable, sortName, sortUp)
+  local sortName, sortDirection = FurC.GetSortParams()
+  sortName = sortName or "itemName"
+  local sortUp = ((ZO_SORT_ORDER_UP and sortDirection == "up") or ZO_SORT_ORDER_DOWN)
+  return sortTable(myTable, sortName, sortUp)
 end

 local headerHeight = FurCGui_Header:GetHeight()

 function FurC.CalculateMaxLines()
-	FurCGui_ListHolder:SetHeight(FurCGui:GetHeight() - headerHeight)
-	FurCGui_ListHolder.maxLines = math.floor((FurCGui_ListHolder:GetHeight()) / FurCGui_ListHolder.lines[1]:GetHeight() )
-	return FurCGui_ListHolder.maxLines
+  FurCGui_ListHolder:SetHeight(FurCGui:GetHeight() - headerHeight)
+  FurCGui_ListHolder.maxLines = math.floor((FurCGui_ListHolder:GetHeight()) / FurCGui_ListHolder.lines[1]:GetHeight() )
+  return FurCGui_ListHolder.maxLines
 end

 local function updateLineVisibility()


-	local function fillLine(curLine, curData, lineIndex)
-		if nil == curLine then return end
-
-		local dataLines = FurCGui_ListHolder.dataLines
-		local maxLines = FurCGui_ListHolder.maxLines
-
-		local hidden = lineIndex > #dataLines or lineIndex > maxLines
-		curLine:SetHidden(hidden)
-		if nil == curData or curLine:IsHidden() then
-			curLine.itemLink = ""
-			curLine.itemId 	 = 0
-			curLine.icon:SetTexture(nil)
-			curLine.icon:SetAlpha(0)
-			curLine.text:SetText("")
-			curLine.mats:SetText("")
-		else
-			curLine.itemLink 	= curData.itemLink
-			curLine.itemId 	 	= curData.itemId
-			curLine.icon:SetTexture(GetItemLinkIcon(curData.itemLink))
-			curLine.icon:SetAlpha(1)
-			local text 			=  curData.itemLink:gsub("H1", "H0")
-			curLine.text:SetText(((curData.favorite and "* ") or "").. text)
-			local mats = FurC.GetItemDescription(curData.itemId, curData)
-			curLine.mats:SetText(mats)
-		end
-	end
-
-	local isEmpty = #FurCGui_ListHolder.dataLines == 0
-
-	FurCGui_ListHolder:SetHidden(	isEmpty)
-	FurCGui_Empty:SetHidden(		not	isEmpty)
-
-	if isEmpty then return end
-
-	FurC.CalculateMaxLines()
-
-	task:Call(function()
-		local maxLines = FurCGui_ListHolder.maxLines
-		local dataLines = FurCGui_ListHolder.dataLines
-
-		local offset =	FurCGui_ListHolder_Slider:GetValue()
-		if offset > #dataLines then offset = 0 end
-		FurCGui_ListHolder_Slider:SetValue(offset)
-
-		local curLine, curData
-
-		for i=1, FurCGui_ListHolder:GetNumChildren() do
-			curLine = FurCGui_ListHolder.lines[i]
-			curData = FurCGui_ListHolder.dataLines[offset + i]
-			fillLine(curLine, curData, i)
-		end
-		FurCGui_ListHolder_Slider:SetMinMax(0, #dataLines)
-
-	end)
+  local function fillLine(curLine, curData, lineIndex)
+    if nil == curLine then return end
+
+    local dataLines = FurCGui_ListHolder.dataLines
+    local maxLines = FurCGui_ListHolder.maxLines
+
+    local hidden = lineIndex > #dataLines or lineIndex > maxLines
+    curLine:SetHidden(hidden)
+    if nil == curData or curLine:IsHidden() then
+      curLine.itemLink = ""
+      curLine.itemId    = 0
+      curLine.icon:SetTexture(nil)
+      curLine.icon:SetAlpha(0)
+      curLine.text:SetText("")
+      curLine.mats:SetText("")
+    else
+      curLine.itemLink   = curData.itemLink
+      curLine.itemId      = curData.itemId
+      curLine.icon:SetTexture(GetItemLinkIcon(curData.itemLink))
+      curLine.icon:SetAlpha(1)
+      local text       =  curData.itemLink:gsub("H1", "H0")
+      curLine.text:SetText(((curData.favorite and "* ") or "").. text)
+      local mats = FurC.GetItemDescription(curData.itemId, curData)
+      curLine.mats:SetText(mats)
+    end
+  end
+
+  local isEmpty = #FurCGui_ListHolder.dataLines == 0
+
+  FurCGui_ListHolder:SetHidden(  isEmpty)
+  FurCGui_Empty:SetHidden(    not  isEmpty)
+
+  if isEmpty then return end
+
+  FurC.CalculateMaxLines()
+
+  task:Call(function()
+    local maxLines = FurCGui_ListHolder.maxLines
+    local dataLines = FurCGui_ListHolder.dataLines
+
+    local offset =  FurCGui_ListHolder_Slider:GetValue()
+    if offset > #dataLines then offset = 0 end
+    FurCGui_ListHolder_Slider:SetValue(offset)
+
+    local curLine, curData
+
+    for i=1, FurCGui_ListHolder:GetNumChildren() do
+      curLine = FurCGui_ListHolder.lines[i]
+      curData = FurCGui_ListHolder.dataLines[offset + i]
+      fillLine(curLine, curData, i)
+    end
+    FurCGui_ListHolder_Slider:SetMinMax(0, #dataLines)
+
+  end)
 end
-FurC.UpdateLineVisibility =	updateLineVisibility
+FurC.UpdateLineVisibility =  updateLineVisibility

 function FurC.IsLoading(isBuffering)

-	FurCGui_Wait:SetHidden(not isBuffering)
+  FurCGui_Wait:SetHidden(not isBuffering)

-	local isEmpty = #FurCGui_ListHolder.dataLines == 0
+  local isEmpty = #FurCGui_ListHolder.dataLines == 0

-	FurCGui_ListHolder:SetHidden(isBuffering or isEmpty)
-	FurCGui_Empty:SetHidden(isBuffering or not isEmpty)
+  FurCGui_ListHolder:SetHidden(isBuffering or isEmpty)
+  FurCGui_Empty:SetHidden(isBuffering or not isEmpty)

 end

 -- fill the shown item list with items that match current filter(s)
 local function updateScrollDataLinesData()
-	local dataLines = {}
-	task:Call(function()
-		local index = 0
-
-		data = FurC.settings.data
-
-		local itemLink
-		 -- async:For(pairs(data)):Do( function(itemId, recipeArray)
-		for itemId, recipeArray in pairs(data) do
-			if FurC.MatchFilter(itemId, recipeArray) then
-				itemLink = FurC.GetItemLink(itemId)
-				if itemLink then
-					tempDataLine 			= ZO_DeepTableCopy({}, recipeArray)
-					tempDataLine.itemId		= itemId
-					tempDataLine.itemLink	= itemLink
-					tempDataLine.itemName	= GetItemLinkName(itemLink)
-					table.insert(dataLines, tempDataLine)
-				end
-			end
-		 end
-		 -- end)
-
-		end)
-	:Then(function()
-		dataLines = sort(dataLines)
-		FurCGui_ListHolder.dataLines = dataLines
-		FurC_RecipeCount:SetText(#dataLines)
-	end)
+  local dataLines = {}
+  task:Call(function()
+    local index = 0
+
+    data = FurC.settings.data
+
+    local itemLink
+     -- async:For(pairs(data)):Do( function(itemId, recipeArray)
+    for itemId, recipeArray in pairs(data) do
+      if FurC.MatchFilter(itemId, recipeArray) then
+        itemLink = FurC.GetItemLink(itemId)
+        if itemLink then
+          tempDataLine       = ZO_DeepTableCopy({}, recipeArray)
+          tempDataLine.itemId    = itemId
+          tempDataLine.itemLink  = itemLink
+          tempDataLine.itemName  = GetItemLinkName(itemLink)
+          table.insert(dataLines, tempDataLine)
+        end
+      end
+     end
+     -- end)
+
+    end)
+  :Then(function()
+    dataLines = sort(dataLines)
+    FurCGui_ListHolder.dataLines = dataLines
+    FurC_RecipeCount:SetText(#dataLines)
+  end)

 end
 local FURC_S_FILTERDEFAULT = GetString(SI_FURC_TEXTBOX_FILTER_DEFAULT)
@@ -135,7 +136,7 @@ local function startLoading()
     local text = FurC_SearchBox:GetText()
     FurC_SearchBoxText:SetText((#text == 0 and FURC_S_FILTERDEFAULT) or "")
     FurC.LastFilter = useDefaults
-    FurC.RefreshFilters(useDefaults, true)
+    FurC.SetFilter(useDefaults, true)
 end
 local function stopLoading()
     FurC.IsLoading(false)
@@ -146,340 +147,343 @@ local function stopLoadingWithDelay()
 end

 function FurC.UpdateGui(useDefaults)
-	if FurCGui:IsHidden() then return end
-  cachedDefaults = useDefaults
-	otherTask:Call(startLoading)
-	:Then(updateScrollDataLinesData)
-	:Then(stopLoadingWithDelay)
+  if FurCGui:IsHidden() then return end
+    cachedDefaults = useDefaults
+  otherTask:Call(startLoading)
+  :Then(updateScrollDataLinesData)
+  :Then(stopLoadingWithDelay)
 end

 function FurC.UpdateInventoryScroll()
-	local index = 0
-	FurCGui_ListHolder.dataOffset = FurCGui_ListHolder.dataOffset or 0
-	FurCGui_ListHolder.dataOffset = math.max(FurCGui_ListHolder.dataOffset, 0)
+  local index = 0
+  FurCGui_ListHolder.dataOffset = FurCGui_ListHolder.dataOffset or 0
+  FurCGui_ListHolder.dataOffset = math.max(FurCGui_ListHolder.dataOffset, 0)

-	FurC.CalculateMaxLines()
+  FurC.CalculateMaxLines()

-	local total = #FurCGui_ListHolder.dataLines - FurCGui_ListHolder.maxLines
-	if total > 0 then
-		FurCGui_ListHolder_Slider:SetMinMax(0, total)
-	end
+  local total = #FurCGui_ListHolder.dataLines - FurCGui_ListHolder.maxLines
+  if total > 0 then
+    FurCGui_ListHolder_Slider:SetMinMax(0, total)
+  end

-	updateLineVisibility()
+  updateLineVisibility()
 end

 function FurC.SetLineHeight(applyTemplate)
-	local curLine
-	local size = FurC.GetFontSize()
-
-	local nameFont = string.format("$(%s)|$(KB_%s)|soft-shadow-thin", (FurC.GetTinyUi() and "MEDIUM_FONT") or "BOLD_FONT", size)
-	local matsFont = string.format("$(MEDIUM_FONT)|$(KB_%s)|soft-shadow-thin", size)
-
-	for i = 1, #FurCGui_ListHolder.lines do
-		curLine = FurCGui_ListHolder.lines[i]
-		if applyTemplate then
-			WINDOW_MANAGER:ApplyTemplateToControl(curLine, FurC.SlotTemplate)
-		end
-		curLine:GetNamedChild("Name"):SetFont(nameFont)
-		curLine:GetNamedChild("Mats"):SetFont(matsFont)
-		curLine:SetHeight( size + (FurC.GetTinyUi() and 8 or 20))
-	end
-	FurC.CalculateMaxLines()
+  local curLine
+  local size = FurC.GetFontSize()
+
+  local nameFont = string.format("$(%s)|$(KB_%s)|soft-shadow-thin", (FurC.GetTinyUi() and "MEDIUM_FONT") or "BOLD_FONT", size)
+  local matsFont = string.format("$(MEDIUM_FONT)|$(KB_%s)|soft-shadow-thin", size)
+
+  for i = 1, #FurCGui_ListHolder.lines do
+    curLine = FurCGui_ListHolder.lines[i]
+    if applyTemplate then
+      WINDOW_MANAGER:ApplyTemplateToControl(curLine, FurC.SlotTemplate)
+    end
+    curLine:GetNamedChild("Name"):SetFont(nameFont)
+    curLine:GetNamedChild("Mats"):SetFont(matsFont)
+    curLine:SetHeight( size + (FurC.GetTinyUi() and 8 or 20))
+  end
+  FurC.CalculateMaxLines()
 end

 function FurC.ApplyLineTemplate()

-	local function resizeDropdowns(controlSize)
-		local contRolist = {
-			[1] = FurC_DropdownSource,
-			[2] = FurC_DropdownCharacter,
-			[3] = FurC_DropdownVersion
-		}
-		for _, control in pairs(contRolist) do
-			control:SetWidth(controlSize)
-		end
-		FurC_Search:SetWidth(controlSize-19)
-	end
-	if FurC.GetTinyUi() then
-		FurC.SlotTemplate = "FurC_SlotTemplateTiny"
-		resizeDropdowns(230) -- first column width: 230
-		FurCGui_Header_SortBar_Quality:ClearAnchors()
-		FurCGui_Header_SortBar_Quality:SetAnchor(TOPLEFT, FurCGui_Header_SortBar_Name, TOPRIGHT, -82)
-	else
-		FurC.SlotTemplate = "FurC_SlotTemplate"
-		resizeDropdowns(300) -- first column width: 280
-		FurCGui_Header_SortBar_Quality:ClearAnchors()
-		FurCGui_Header_SortBar_Quality:SetAnchor(TOPLEFT, FurCGui_Header_SortBar_Name, TOPRIGHT, 0)
-	end
-
-	FurC.SetLineHeight(true)
-
-	local minWidth 	= 2*(FurC_DropdownCharacter:GetWidth()) + FurC_TypeFilter:GetWidth() + 40
-	local minHeight = 2*FurCGui_Header:GetHeight()
-	FurCGui:SetDimensionConstraints(minWidth, minHeight)
-
-	task:Call(function() updateLineVisibility() end)
+  local function resizeDropdowns(controlSize)
+    local contRolist = {
+      [1] = FurC_DropdownSource,
+      [2] = FurC_DropdownCharacter,
+      [3] = FurC_DropdownVersion
+    }
+    for _, control in pairs(contRolist) do
+      control:SetWidth(controlSize)
+    end
+    FurC_Search:SetWidth(controlSize-40)
+  end
+  if FurC.GetTinyUi() then
+    FurC.SlotTemplate = "FurC_SlotTemplateTiny"
+    resizeDropdowns(230) -- first column width: 230
+    FurCGui_Header_SortBar_Quality:ClearAnchors()
+    FurCGui_Header_SortBar_Quality:SetAnchor(TOPLEFT, FurCGui_Header_SortBar_Name, TOPRIGHT, -82)
+  else
+    FurC.SlotTemplate = "FurC_SlotTemplate"
+    resizeDropdowns(300) -- first column width: 280
+    FurCGui_Header_SortBar_Quality:ClearAnchors()
+    FurCGui_Header_SortBar_Quality:SetAnchor(TOPLEFT, FurCGui_Header_SortBar_Name, TOPRIGHT, 0)
+  end
+
+  FurC.SetLineHeight(true)
+
+  local minWidth   = 2*(FurC_DropdownCharacter:GetWidth()) + FurC_TypeFilter:GetWidth() + 40
+  local minHeight = 2*FurCGui_Header:GetHeight()
+  FurCGui:SetDimensionConstraints(minWidth, minHeight)
+
+  task:Call(function() updateLineVisibility() end)
 end

 local addedDropdownCharacterNames = {}

 local function createGui()

-	local function createInventoryScroll()
-		-- FurC.DebugOut("CreateInventoryScroll")
+  local function createInventoryScroll()
+    -- FurC.DebugOut("CreateInventoryScroll")

-		local function createLine(i, predecessor)
+    local function createLine(i, predecessor)

-			predecessor = predecessor or FurCGui_ListHolder
+      predecessor = predecessor or FurCGui_ListHolder

-			local line = WINDOW_MANAGER:CreateControlFromVirtual("FurC_ListItem_".. i, FurCGui_ListHolder, FurC.SlotTemplate)
-			line.icon 	= line:GetNamedChild("Button"):GetNamedChild("Icon")
-			line.text 	= line:GetNamedChild("Name")
-			line.mats 	= line:GetNamedChild("Mats")
+      local line = WINDOW_MANAGER:CreateControlFromVirtual("FurC_ListItem_".. i, FurCGui_ListHolder, FurC.SlotTemplate)
+      line.icon   = line:GetNamedChild("Button"):GetNamedChild("Icon")
+      line.text   = line:GetNamedChild("Name")
+      line.mats   = line:GetNamedChild("Mats")

-			line:SetHidden(false)
-			line:SetMouseEnabled(true)
+      line:SetHidden(false)
+      line:SetMouseEnabled(true)

-			if i == 1 then
-				line:SetAnchor(TOPLEFT, FurCGui_ListHolder, TOPLEFT, 0, 4)
-				line:SetAnchor(TOPRIGHT, FurCGui_ListHolder, TOPRIGHT, 0, 0)
-			else
-				line:SetAnchor(TOPLEFT, predecessor, BOTTOMLEFT, 	0, 0)
-				line:SetAnchor(TOPRIGHT, predecessor, BOTTOMRIGHT, 	0, 0)
-			end
-			return line
-		end
+      if i == 1 then
+        line:SetAnchor(TOPLEFT, FurCGui_ListHolder, TOPLEFT, 0, 4)
+        line:SetAnchor(TOPRIGHT, FurCGui_ListHolder, TOPRIGHT, 0, 0)
+      else
+        line:SetAnchor(TOPLEFT, predecessor, BOTTOMLEFT,   0, 0)
+        line:SetAnchor(TOPRIGHT, predecessor, BOTTOMRIGHT,   0, 0)
+      end
+      return line
+    end

-		FurCGui_ListHolder.dataOffset = 0
-		FurCGui_ListHolder.maxLines = 60
-		FurCGui_ListHolder.dataLines = {}
-		FurCGui_ListHolder.lines = {}
-		FurCGui_ListHolder.NameSort = FurCGui_Header_SortBar:GetNamedChild("_Name")
-		FurCGui_ListHolder.NameSort.icon = FurCGui_ListHolder.NameSort:GetNamedChild("_Button")
-		FurCGui_ListHolder.QualitySort = FurCGui_Header_SortBar:GetNamedChild("_Quality")
-		FurCGui_ListHolder.QualitySort.icon = FurCGui_ListHolder.QualitySort:GetNamedChild("_Button")
+    FurCGui_ListHolder.dataOffset = 0
+    FurCGui_ListHolder.maxLines = 60
+    FurCGui_ListHolder.dataLines = {}
+    FurCGui_ListHolder.lines = {}
+    FurCGui_ListHolder.NameSort = FurCGui_Header_SortBar:GetNamedChild("_Name")
+    FurCGui_ListHolder.NameSort.icon = FurCGui_ListHolder.NameSort:GetNamedChild("_Button")
+    FurCGui_ListHolder.QualitySort = FurCGui_Header_SortBar:GetNamedChild("_Quality")
+    FurCGui_ListHolder.QualitySort.icon = FurCGui_ListHolder.QualitySort:GetNamedChild("_Button")

-		--local width = 250 -- FurCGui_ListHolder:GetWidth()
-		local text = "       No Collected Data"
+    --local width = 250 -- FurCGui_ListHolder:GetWidth()
+    local text = "       No Collected Data"

-		for i=1, FurCGui_ListHolder.maxLines do
-			FurCGui_ListHolder.lines[i] = createLine(i, predecessor)
-			predecessor = FurCGui_ListHolder.lines[i]
-		end
+    for i=1, FurCGui_ListHolder.maxLines do
+      FurCGui_ListHolder.lines[i] = createLine(i, predecessor)
+      predecessor = FurCGui_ListHolder.lines[i]
+    end

-		-- setup slider
-		FurCGui_ListHolder_Slider:SetMinMax(0, #FurCGui_ListHolder.dataLines - FurCGui_ListHolder.maxLines)
+    -- setup slider
+    FurCGui_ListHolder_Slider:SetMinMax(0, #FurCGui_ListHolder.dataLines - FurCGui_ListHolder.maxLines)

-		return FurCGui_ListHolder.lines
-	end
+    return FurCGui_ListHolder.lines
+  end

-	local function createQualityFilters()
-		local buttons = {}
-		local quality = 0
-		local function createQualityFilter(name, color, tooltip)
-			local parent 		= FurC_QualityFilter
+  local function createQualityFilters()
+    local buttons = {}
+    local quality = 0
+    local function createQualityFilter(name, color, tooltip)
+      local parent     = FurC_QualityFilter

-			local predecessor 	= buttons[#buttons] or parent
-			local controlType	= "FurC_QualityFilterButton"
+      local predecessor   = buttons[#buttons] or parent
+      local controlType  = "FurC_QualityFilterButton"

-			local button 		= WINDOW_MANAGER:CreateControlFromVirtual(parent:GetName()..name, parent, controlType)
-			local ctrlName		= string.lower(name)
-			button:SetNormalTexture(	string.format("FurnitureCatalogue/textures/%s_up.dds", 		ctrlName))
-			button:SetNormalTexture(	string.format("FurnitureCatalogue/textures/%s_over.dds", 	ctrlName))
-			button:SetNormalTexture(	string.format("FurnitureCatalogue/textures/%s_down.dds", 	ctrlName))
-			button.quality 		= quality
-			button.tooltip 		= tooltip
+      local button     = WINDOW_MANAGER:CreateControlFromVirtual(parent:GetName()..name, parent, controlType)
+      local ctrlName    = string.lower(name)
+      button:SetNormalTexture(  string.format("FurnitureCatalogue/textures/%s_up.dds",     ctrlName))
+      button:SetNormalTexture(  string.format("FurnitureCatalogue/textures/%s_over.dds",   ctrlName))
+      button:SetNormalTexture(  string.format("FurnitureCatalogue/textures/%s_down.dds",   ctrlName))
+      button.quality     = quality
+      button.tooltip     = tooltip


-			local otherAnchor 		= ((predecessor == parent) and LEFT) or RIGHT
-			local xOffset		= ((predecessor == parent) and 0) or 6
-			button:SetAnchor(LEFT, predecessor, otherAnchor, xOffset)
-			quality = quality +1
+      local otherAnchor     = ((predecessor == parent) and LEFT) or RIGHT
+      local xOffset    = ((predecessor == parent) and 0) or 6
+      button:SetAnchor(LEFT, predecessor, otherAnchor, xOffset)
+      quality = quality +1

-			return button
+      return button

-		end
+    end


-		buttons[quality+1]	= createQualityFilter("All", 		nil, 					"All Items")
+    buttons[quality+1]  = createQualityFilter("All",     nil,           "All Items")

-		buttons[quality+1]	= createQualityFilter("White", 		ITEM_QUALITY_NORMAL, 	"White quality")
-		buttons[quality+1]	= createQualityFilter("Magic", 		ITEM_QUALITY_MAGIC, 	"Magic quality")
-		buttons[quality+1]	= createQualityFilter("Arcane", 	ITEM_QUALITY_ARCANE, 	"Superior quality")
-		buttons[quality+1]	= createQualityFilter("Artifact",	ITEM_QUALITY_ARTIFACT, 	"Epic quality")
-		buttons[quality+1]	= createQualityFilter("Legendary",  ITEM_QUALITY_LEGENDARY, "Legendary quality")
-
-		FurC.GuiElements.qualityButtons = buttons
-
-	end
-
-	local function createCraftingTypeFilters()
-		local buttons = {}
-
-		local function createCraftingTypeFilter(craftingType, textureName)
-			local parent 				= FurC_TypeFilter
-			local predecessor 			= buttons[#buttons] or parent
-
-			local name 					= parent:GetName() .. "Button" .. tostring(craftingType)
-
-			local button 				= WINDOW_MANAGER:CreateControlFromVirtual(name, parent, "FurC_CraftingTypeFilterButton")
-
-			button:SetNormalTexture(	string.format("%s%s", textureName, "_up.dds"))
-			button:SetMouseOverTexture(	string.format("%s%s", textureName, "_over.dds"))
-			button:SetPressedTexture(	string.format("%s%s", textureName,"_down.dds"))
-			button.craftingType 		= craftingType
-			button.tooltip 				= (craftingType > 0 and GetCraftingSkillName(craftingType)) or GetString("SI_ITEMFILTERTYPE", ITEMFILTERTYPE_ALL)
-
-			local otherAnchor 			= ((predecessor == parent) and TOPLEFT) or TOPRIGHT
-			button:SetAnchor(TOPLEFT, predecessor, otherAnchor, 0)
-
-			return button
-
-		end
-
-		buttons[CRAFTING_TYPE_INVALID]			= createCraftingTypeFilter(CRAFTING_TYPE_INVALID, 			"esoui/art/inventory/inventory_tabicon_all")
-		buttons[CRAFTING_TYPE_BLACKSMITHING]	= createCraftingTypeFilter(CRAFTING_TYPE_BLACKSMITHING, 	"esoui/art/inventory/inventory_tabicon_craftbag_blacksmithing")
-		buttons[CRAFTING_TYPE_CLOTHIER]			= createCraftingTypeFilter(CRAFTING_TYPE_CLOTHIER, 			"esoui/art/inventory/inventory_tabicon_craftbag_clothing")
-		buttons[CRAFTING_TYPE_ENCHANTING]		= createCraftingTypeFilter(CRAFTING_TYPE_ENCHANTING,		"esoui/art/inventory/inventory_tabicon_craftbag_enchanting")
-		buttons[CRAFTING_TYPE_ALCHEMY]			= createCraftingTypeFilter(CRAFTING_TYPE_ALCHEMY, 			"esoui/art/inventory/inventory_tabicon_craftbag_alchemy")
-		buttons[CRAFTING_TYPE_WOODWORKING]		= createCraftingTypeFilter(CRAFTING_TYPE_WOODWORKING, 		"esoui/art/inventory/inventory_tabicon_craftbag_woodworking")
-		buttons[CRAFTING_TYPE_PROVISIONING]		= createCraftingTypeFilter(CRAFTING_TYPE_PROVISIONING, 		"esoui/art/inventory/inventory_tabicon_craftbag_provisioning")
-
-		FurC.GuiElements.craftingTypeFilters 	= buttons
-
-	end
-
-	local function createInventoryDropdown(dropdownName)
-		local controlName 		= string.format("%s%s", "FurC_Dropdown", dropdownName)
-		local control 			= _G[controlName]
-		local dropdownData 		= FurnitureCatalogue.DropdownData
-		local validChoices 		= dropdownData[string.format("%s%s", "Choices", dropdownName)]
-		local choicesTooltips 	= dropdownData[string.format("%s%s", "Tooltips", dropdownName)]
-		local comboBox
-
-
-		control.comboBox = control.comboBox or ZO_ComboBox_ObjectFromContainer(control)
-		comboBox = control.comboBox
-
-		local function HideTooltip(control)
-			ClearTooltip(InformationTooltip)
-		end
-
-		-- ruthlessly stolen from LAM
-		local function SetupTooltips(comboBox, choicesTooltips)
-			local function ShowTooltip(control)
-				InitializeTooltip(InformationTooltip, control, TOPRIGHT, -10, 0, TOPLEFT)
-				SetTooltipText(InformationTooltip, control.tooltip)
-				InformationTooltipTopLevel:BringWindowToTop()
-			end
-
-
-			-- allow for tooltips on the drop down entries
-			local originalShow = comboBox.ShowDropdownInternal
-			comboBox.ShowDropdownInternal = function(comboBox)
-				originalShow(comboBox)
-				local entries = ZO_Menu.items
-				for i = 1, #entries do
-
-					local entry = entries[i]
-					local control = entries[i].item
-					control.tooltip = choicesTooltips[i]
-					if control.tooltip then
-						entry.onMouseEnter = control:GetHandler("OnMouseEnter")
-						entry.onMouseExit = control:GetHandler("OnMouseExit")
-						ZO_PreHookHandler(control, "OnMouseEnter", ShowTooltip)
-						ZO_PreHookHandler(control, "OnMouseExit", HideTooltip)
-					end
-
-				end
-			end
-
-			local originalHide = comboBox.HideDropdownInternal
-			comboBox.HideDropdownInternal = function(self)
-				local entries = ZO_Menu.items
-				for i = 1, #entries do
-					local entry = entries[i]
-					local control = entries[i].item
-					control:SetHandler("OnMouseEnter", entry.onMouseEnter)
-					control:SetHandler("OnMouseExit", entry.onMouseExit)
-					control.tooltip = nil
-				end
-				HideTooltip(self)
-				originalHide(self)
-			end
-		end
-
-		function OnItemSelect(control, choiceText, somethingElse)
-			local dropdownName = tostring(control.m_name):gsub("FurC_Dropdown", "")
-			FurC.SetDropdownChoice(dropdownName, choiceText)
-			HideTooltip(control)
-			PlaySound(SOUNDS.POSITIVE_CLICK)
-		end
-
-		comboBox:SetSortsItems(false)
-		local originalShow = comboBox.ShowDropdownInternal
-
-		if dropdownName == "Character" then
-			for _, characterName in ipairs(FurC.GetAccountCrafters()) do
-				addedDropdownCharacterNames[characterName] = true
-				table.insert(validChoices, characterName)
-				table.insert(dropdownData["Tooltips"..dropdownName], zo_strformat(GetString(SI_FURC_STRING_RECIPESFORCHAR), characterName))
-			end
-		end
-
-		for i = 1, #validChoices do
-			entry = comboBox:CreateItemEntry(validChoices[i], OnItemSelect)
-			comboBox:AddItem(entry)
-			if validChoices[i] == FurC.GetDropdownChoiceTextual(dropdownName) then
-				comboBox:SetSelectedItem(validChoices[i])
-			end
-		end
-
-		SetupTooltips(comboBox, dropdownData["Tooltips"..dropdownName])
-
-		return control
-	end
-
-	createInventoryScroll()
-	createQualityFilters()
-	createCraftingTypeFilters()
-	createInventoryDropdown("Source")
-	createInventoryDropdown("Version")
-	createInventoryDropdown("Character")
-	FurC.ChangeTemplateFromButton(FurC.GetTinyUi())
-	FurC.SetFontSize(FurC.GetFontSize())
-	FurC.LoadFrameInfo()
+    buttons[quality+1]  = createQualityFilter("White",     ITEM_QUALITY_NORMAL,   "White quality")
+    buttons[quality+1]  = createQualityFilter("Magic",     ITEM_QUALITY_MAGIC,   "Magic quality")
+    buttons[quality+1]  = createQualityFilter("Arcane",   ITEM_QUALITY_ARCANE,   "Superior quality")
+    buttons[quality+1]  = createQualityFilter("Artifact",  ITEM_QUALITY_ARTIFACT,   "Epic quality")
+    buttons[quality+1]  = createQualityFilter("Legendary",  ITEM_QUALITY_LEGENDARY, "Legendary quality")
+
+    FurC.GuiElements.qualityButtons = buttons
+
+  end
+
+  local function createCraftingTypeFilters()
+    local buttons = {}
+
+    local function createCraftingTypeFilter(craftingType, textureName)
+      local parent         = FurC_TypeFilter
+      local predecessor       = buttons[#buttons] or parent
+
+      local name           = parent:GetName() .. "Button" .. tostring(craftingType)
+
+      local button         = WINDOW_MANAGER:CreateControlFromVirtual(name, parent, "FurC_CraftingTypeFilterButton")
+
+      button:SetNormalTexture(  string.format("%s%s", textureName, "_up.dds"))
+      button:SetMouseOverTexture(  string.format("%s%s", textureName, "_over.dds"))
+      button:SetPressedTexture(  string.format("%s%s", textureName,"_down.dds"))
+      button.craftingType     = craftingType
+      button.tooltip         = (craftingType > 0 and GetCraftingSkillName(craftingType)) or GetString("SI_ITEMFILTERTYPE", ITEMFILTERTYPE_ALL)
+
+      local otherAnchor       = ((predecessor == parent) and TOPLEFT) or TOPRIGHT
+      button:SetAnchor(TOPLEFT, predecessor, otherAnchor, 0)
+
+      return button
+
+    end
+
+    buttons[CRAFTING_TYPE_INVALID]      = createCraftingTypeFilter(CRAFTING_TYPE_INVALID,       "esoui/art/inventory/inventory_tabicon_all")
+    buttons[CRAFTING_TYPE_BLACKSMITHING]  = createCraftingTypeFilter(CRAFTING_TYPE_BLACKSMITHING,   "esoui/art/inventory/inventory_tabicon_craftbag_blacksmithing")
+    buttons[CRAFTING_TYPE_CLOTHIER]      = createCraftingTypeFilter(CRAFTING_TYPE_CLOTHIER,       "esoui/art/inventory/inventory_tabicon_craftbag_clothing")
+    buttons[CRAFTING_TYPE_ENCHANTING]    = createCraftingTypeFilter(CRAFTING_TYPE_ENCHANTING,    "esoui/art/inventory/inventory_tabicon_craftbag_enchanting")
+    buttons[CRAFTING_TYPE_ALCHEMY]      = createCraftingTypeFilter(CRAFTING_TYPE_ALCHEMY,       "esoui/art/inventory/inventory_tabicon_craftbag_alchemy")
+    buttons[CRAFTING_TYPE_WOODWORKING]    = createCraftingTypeFilter(CRAFTING_TYPE_WOODWORKING,     "esoui/art/inventory/inventory_tabicon_craftbag_woodworking")
+    buttons[CRAFTING_TYPE_PROVISIONING]    = createCraftingTypeFilter(CRAFTING_TYPE_PROVISIONING,     "esoui/art/inventory/inventory_tabicon_craftbag_provisioning")
+
+    FurC.GuiElements.craftingTypeFilters   = buttons
+
+  end
+
+  local function createInventoryDropdown(dropdownName)
+    local controlName     = string.format("%s%s", "FurC_Dropdown", dropdownName)
+    local control       = _G[controlName]
+    local dropdownData     = FurnitureCatalogue.DropdownData
+    local validChoices     = dropdownData[string.format("%s%s", "Choices", dropdownName)]
+    local choicesTooltips   = dropdownData[string.format("%s%s", "Tooltips", dropdownName)]
+    local comboBox
+
+
+    control.comboBox = control.comboBox or ZO_ComboBox_ObjectFromContainer(control)
+    comboBox = control.comboBox
+
+    local function HideTooltip(control)
+      ClearTooltip(InformationTooltip)
+    end
+
+    -- ruthlessly stolen from LAM
+    local function SetupTooltips(comboBox, choicesTooltips)
+      local function ShowTooltip(control)
+        InitializeTooltip(InformationTooltip, control, TOPRIGHT, -10, 0, TOPLEFT)
+        SetTooltipText(InformationTooltip, control.tooltip)
+        InformationTooltipTopLevel:BringWindowToTop()
+      end
+
+
+      -- allow for tooltips on the drop down entries
+      local originalShow = comboBox.ShowDropdownInternal
+      comboBox.ShowDropdownInternal = function(comboBox)
+        originalShow(comboBox)
+        local entries = ZO_Menu.items
+        for i = 1, #entries do
+
+          local entry = entries[i]
+          local control = entries[i].item
+          control.tooltip = choicesTooltips[i]
+          if control.tooltip then
+            entry.onMouseEnter = control:GetHandler("OnMouseEnter")
+            entry.onMouseExit = control:GetHandler("OnMouseExit")
+            ZO_PreHookHandler(control, "OnMouseEnter", ShowTooltip)
+            ZO_PreHookHandler(control, "OnMouseExit", HideTooltip)
+          end
+
+        end
+      end
+
+      local originalHide = comboBox.HideDropdownInternal
+      comboBox.HideDropdownInternal = function(self)
+        local entries = ZO_Menu.items
+        for i = 1, #entries do
+          local entry = entries[i]
+          local control = entries[i].item
+          control:SetHandler("OnMouseEnter", entry.onMouseEnter)
+          control:SetHandler("OnMouseExit", entry.onMouseExit)
+          control.tooltip = nil
+        end
+        HideTooltip(self)
+        originalHide(self)
+      end
+    end
+
+    function OnItemSelect(control, choiceText, somethingElse)
+      local dropdownName = tostring(control.m_name):gsub("FurC_Dropdown", "")
+      FurC.SetDropdownChoice(dropdownName, choiceText)
+      HideTooltip(control)
+      PlaySound(SOUNDS.POSITIVE_CLICK)
+    end
+
+    comboBox:SetSortsItems(false)
+    local originalShow = comboBox.ShowDropdownInternal
+
+    if dropdownName == "Character" then
+      for _, characterName in ipairs(FurC.GetAccountCrafters()) do
+        addedDropdownCharacterNames[characterName] = true
+        table.insert(validChoices, characterName)
+        table.insert(dropdownData["Tooltips"..dropdownName], zo_strformat(GetString(SI_FURC_STRING_RECIPESFORCHAR), characterName))
+      end
+    end
+
+    for i = 1, #validChoices do
+      entry = comboBox:CreateItemEntry(validChoices[i], OnItemSelect)
+      comboBox:AddItem(entry)
+      if validChoices[i] == FurC.GetDropdownChoiceTextual(dropdownName) then
+        comboBox:SetSelectedItem(validChoices[i])
+      end
+    end
+
+    SetupTooltips(comboBox, dropdownData["Tooltips"..dropdownName])
+
+    return control
+  end
+
+  createInventoryScroll()
+  createQualityFilters()
+  createCraftingTypeFilters()
+  createInventoryDropdown("Source")
+  createInventoryDropdown("Version")
+  createInventoryDropdown("Character")
+  FurC.ChangeTemplateFromButton(FurC.GetTinyUi())
+  FurC.SetFontSize(FurC.GetFontSize())
+  FurC.LoadFrameInfo()
+  FurC.InitFilters()
+
+  FurC_ShowRumoursGlow:SetHidden(not FurC.GetShowRumours())

 end

 function FurnitureCatalogue_Toggle()
-	SCENE_MANAGER:ToggleTopLevel(FurCGui)
-	if FurCGui:IsHidden() then return end
-	FurCGui_Empty:SetHidden(true)
-	zo_callLater(function() FurC.UpdateGui(FurC.GetResetDropdownChoice()) end, 500)
+  SCENE_MANAGER:ToggleTopLevel(FurCGui)
+  if FurCGui:IsHidden() then return end
+  FurCGui_Empty:SetHidden(true)
+  zo_callLater(function() FurC.UpdateGui(FurC.GetResetDropdownChoice()) end, 500)
 end


 function FurC.InitGui()

-	local control = FurCGui
-	local settings = FurC.settings["gui"]
-	FurC.GuiElements = {}
-	if nil ~= control then
-		control:SetHeight(settings.height)
-		control:SetWidth(settings.width)
-	end
+  local control = FurCGui
+  local settings = FurC.settings["gui"]
+  FurC.GuiElements = {}
+  if nil ~= control then
+    control:SetHeight(settings.height)
+    control:SetWidth(settings.width)
+  end

-	createGui()
+  createGui()


-	local slider = FurCGui_ListHolder_Slider
-	slider:SetMinMax(1, #FurCGui_ListHolder.dataLines)
+  local slider = FurCGui_ListHolder_Slider
+  slider:SetMinMax(1, #FurCGui_ListHolder.dataLines)

-	FurC.UpdateGui(FurC.GetResetDropdownChoice())
+  FurC.UpdateGui(FurC.GetResetDropdownChoice())

-	FurC_Label:GetNamedChild("_2"):SetText(GetString(SI_FURC_LABEL_ENTRIES))
+  FurC_Label:GetNamedChild("_2"):SetText(GetString(SI_FURC_LABEL_ENTRIES))

-	SCENE_MANAGER:RegisterTopLevel(FurCGui, false)
+  SCENE_MANAGER:RegisterTopLevel(FurCGui, false)
 end

diff --git a/FurCMenu.lua b/FurCMenu.lua
index 9bc0b99..5d20737 100644
--- a/FurCMenu.lua
+++ b/FurCMenu.lua
@@ -1,228 +1,228 @@
 function FurC.CreateSettings(savedVars, defaults)

-	local LAM = LibStub:GetLibrary("LibAddonMenu-2.0")
-	local panelData = {
-		type = "panel",
-		name = FurC.name,
-		displayName = name,
-	 	author = FurC.author,
-		version = FurC.version,
-		registerForRefresh = true,
-		registerForDefaults = true,
-		slashCommand = "/furc",	}
-	LAM:RegisterAddonPanel("FurC_OptionsPanel", panelData)
-	local optionsData = { -- optionsData
+  local LAM = LibStub:GetLibrary("LibAddonMenu-2.0")
+  local panelData = {
+    type = "panel",
+    name = FurC.name,
+    displayName = name,
+     author = FurC.author,
+    version = FurC.version,
+    registerForRefresh = true,
+    registerForDefaults = true,
+    slashCommand = "/furc",  }
+  LAM:RegisterAddonPanel("FurC_OptionsPanel", panelData)
+  local optionsData = { -- optionsData

-		-- first section
-		{ -- checkbox: Debug output
-			type = "checkbox",
-			name = GetString(SI_FURC_STRING_MENU_DEBUG),
-			tooltip = "",
-			getFunc = function() return FurC.GetEnableDebug() end,
-			setFunc = function(value) FurC.SetEnableDebug(value) end
-		},
-		{ -- button: Reset database
-			type = "button",
-			name 	= GetString(SI_FURC_STRING_MENU_RESET_DB_NAME),
-			tooltip = GetString(SI_FURC_STRING_MENU_RESET_DB_TT),
-			warning = GetString(SI_FURC_STRING_MENU_RESET_DB_WARNING),
-			func = function()
-				FurC.WipeDatabase()
-			end,
-		},
-		{ -- button: Reset database
-			type 	= "button",
-			name 	= GetString(SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME),
-			width	= "half",
-			tooltip = GetString(SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT),
-			func 	= function() FurC.RescanRumourRecipes() end,
-		},
-		{ -- button: Re-scan data
-			type 	= "button",
-			name	= GetString(SI_FURC_STRING_MENU_SCAN_FILES_NAME),
-			tooltip = GetString(SI_FURC_STRING_MENU_SCAN_FILES_TT),
-			width 	= "half",
-			func 	= function()
-				FurC.ScanRecipes(true, false)
-				FurC.UpdateGui()
-			end,
-		},
-		{ -- button: Re-scan data
-			type 	= "button",
-			name 	= GetString(SI_FURC_STRING_MENU_SCAN_CHAR_NAME),
-			tooltip = GetString(SI_FURC_STRING_MENU_SCAN_CHAR_TT),
-			width 	= "half",
-			func = function()
-				FurC.ScanRecipes(false, true)
-				FurC.UpdateGui()
-			end,
-		},
-		{ -- dropdown: delete character
-			type = "dropdown",
-			name = GetString(SI_FURC_STRING_MENU_DELETE_CHAR_NAME),
-			tooltip = GetString(SI_FURC_STRING_MENU_DELETE_CHAR_TT),
-			warning = GetString(SI_FURC_STRING_MENU_DELETE_CHAR_WARNING),
-			choices = FurC.GetAccountCharacters(),
-			getFunc = function() return end,
-			setFunc = function(value)
-				FurC.DeleteCharacter(value)
-			end,
-		},
+    -- first section
+    { -- checkbox: Debug output
+      type = "checkbox",
+      name = GetString(SI_FURC_STRING_MENU_DEBUG),
+      tooltip = "",
+      getFunc = function() return FurC.GetEnableDebug() end,
+      setFunc = function(value) FurC.SetEnableDebug(value) end
+    },
+    { -- button: Reset database
+      type = "button",
+      name   = GetString(SI_FURC_STRING_MENU_RESET_DB_NAME),
+      tooltip = GetString(SI_FURC_STRING_MENU_RESET_DB_TT),
+      warning = GetString(SI_FURC_STRING_MENU_RESET_DB_WARNING),
+      func = function()
+        FurC.WipeDatabase()
+      end,
+    },
+    { -- button: Reset database
+      type   = "button",
+      name   = GetString(SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME),
+      width  = "half",
+      tooltip = GetString(SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT),
+      func   = function() FurC.RescanRumourRecipes() end,
+    },
+    { -- button: Re-scan data
+      type   = "button",
+      name  = GetString(SI_FURC_STRING_MENU_SCAN_FILES_NAME),
+      tooltip = GetString(SI_FURC_STRING_MENU_SCAN_FILES_TT),
+      width   = "half",
+      func   = function()
+        FurC.ScanRecipes(true, false)
+        FurC.UpdateGui()
+      end,
+    },
+    { -- button: Re-scan data
+      type   = "button",
+      name   = GetString(SI_FURC_STRING_MENU_SCAN_CHAR_NAME),
+      tooltip = GetString(SI_FURC_STRING_MENU_SCAN_CHAR_TT),
+      width   = "half",
+      func = function()
+        FurC.ScanRecipes(false, true)
+        FurC.UpdateGui()
+      end,
+    },
+    { -- dropdown: delete character
+      type = "dropdown",
+      name = GetString(SI_FURC_STRING_MENU_DELETE_CHAR_NAME),
+      tooltip = GetString(SI_FURC_STRING_MENU_DELETE_CHAR_TT),
+      warning = GetString(SI_FURC_STRING_MENU_DELETE_CHAR_WARNING),
+      choices = FurC.GetAccountCharacters(),
+      getFunc = function() return end,
+      setFunc = function(value)
+        FurC.DeleteCharacter(value)
+      end,
+    },


-		-- =======================================================================================
-		-- header: Furniture Shopping List integration
-		-- =======================================================================================
-		{	-- header: Furniture Shopping List integration
-			type = "header",
-			name = "Furniture Shopping List",
-		},
-		{ -- checkbox: Enable
-			type 	= "checkbox",
-			name 	= GetString(SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST),
-			getFunc = function() return (FurC.GetEnableShoppingList()) end,
-			setFunc = function(value) FurC.SetEnableShoppingList(value) end
-		},
+    -- =======================================================================================
+    -- header: Furniture Shopping List integration
+    -- =======================================================================================
+    {  -- header: Furniture Shopping List integration
+      type = "header",
+      name = "Furniture Shopping List",
+    },
+    { -- checkbox: Enable
+      type   = "checkbox",
+      name   = GetString(SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST),
+      getFunc = function() return (FurC.GetEnableShoppingList()) end,
+      setFunc = function(value) FurC.SetEnableShoppingList(value) end
+    },


-		-- =======================================================================================
-		-- header: UI and performance
-		-- =======================================================================================
-		{	-- header: UI and performance
-			type = "header",
-			name = "Performance",
-		},
+    -- =======================================================================================
+    -- header: UI and performance
+    -- =======================================================================================
+    {  -- header: UI and performance
+      type = "header",
+      name = "Performance",
+    },

-		{ -- checkbox: Skip Initial Scan
-			type 	= "checkbox",
-			name 	= GetString(SI_FURC_STRING_MENU_SKIP_INITIALSCAN),
-			tooltip = GetString(SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT),
-			getFunc = function() return FurC.GetSkipInitialScan() end,
-			setFunc = function(value) FurC.SetSkipInitialScan(value) end
-		},
-		-- =======================================================================================
-		-- header: Inventory and bank
-		-- =======================================================================================
-		{	-- header: Inventory and bank
-			type = "submenu",
-			name = GetString(SI_FURC_STRING_MENU_HEADER_ICONS),
-			controls = {
-				{ -- checkbox: Add items to known/unknown recipes?
-					type 	= "checkbox",
-					name 	= GetString(SI_FURC_STRING_MENU_ADD_ITEMS_NAME),
-					tooltip = GetString(SI_FURC_STRING_MENU_ADD_ITEMS_TT),
-					getFunc = function() return FurC.GetUseInventoryIcons() end,
-					setFunc = function(value) FurC.SetUseInventoryIcons(value) end
-				},
-				{ -- checkbox: Only mark unknown recipes
-					type 	= "checkbox",
-					name 	= GetString(SI_FURC_STRING_MENU_IT_UNKNOWN_NAME),
-					getFunc = function() return FurC.GetHideKnownInventoryIcons() end,
-					setFunc = function(value) FurC.SetHideKnownInventoryIcons(value) end
-				},
-				{ -- checkbox: Add items to known/unknown recipes?
-					type 	= "checkbox",
-					name 	= GetString(SI_FURC_STRING_MENU_IT_THIS_ONLY),
-					tooltip = GetString(SI_FURC_STRING_MENU_IT_THIS_ONLY_TT),
-					getFunc = function() return FurC.GetUseInventoryIconsOnChar() end,
-					setFunc = function(value) FurC.SetUseInventoryIconsOnChar(value) end
-				},
-			},
-		},
-		-- =======================================================================================
-		-- header: UI and performance
-		-- =======================================================================================
-		{	-- header: UI and performance
-			type = "header",
-			name = "User Interface",
-		},
-		{ -- checkbox: use small interface?
-			type 	= "checkbox",
-			name 	= GetString(SI_FURC_STRING_MENU_USETINY),
-			tooltip = GetString(SI_FURC_STRING_MENU_USETINY_TT),
-			getFunc = function() return FurC.GetTinyUi() end,
-			setFunc = function(value) FurC.SetTinyUi(value) end
-		},
-		{ -- checkbox: start silently?
-			type 	= "checkbox",
-			name 	= GetString(SI_FURC_STRING_MENU_STARTSILENT),
-			tooltip = GetString(SI_FURC_STRING_MENU_STARTSILENT_TT),
-			getFunc = function() return FurC.GetStartupSilently() end,
-			setFunc = function(value) FurC.SetStartupSilently(value) end
-		},
-		{ -- checkbox: show Icon on left of items?
-			type 	= "checkbox",
-			name 	= GetString(SI_FURC_STRING_MENU_SHOWICONONLEFT),
-			tooltip = GetString(SI_FURC_STRING_MENU_SHOWICONONLEFT_TT),
-			getFunc = function() return FurC.GetShowIconOnLeft() end,
-			setFunc = function(value) FurC.SetShowIconOnLeft(value) end,
-			requiresReload = true
-		},
-		{ -- slider: font size
-			type 	= "slider",
-			name 	= GetString(SI_FURC_STRING_MENU_FONTSIZE),
-			tooltip = GetString(SI_FURC_STRING_MENU_FONTSIZE_TT),
-			min 	= 10,
-			max 	= 28,
-			getFunc = function() return FurC.GetFontSize() end,
-			setFunc = function(value) FurC.SetFontSize(value) end
-		},
-		{ -- checkbox: use right click menu divider?
-			type 	= "checkbox",
-			name 	= GetString(SI_FURC_STRING_CONTEXTMENU_DIVIDER),
-			tooltip = GetString(SI_FURC_STRING_CONTEXTMENU_DIVIDER_TT),
-			getFunc = function() return FurC.GetSkipDivider() end,
-			setFunc = function(value) FurC.SetSkipDivider(value) end,
-			requiresReload = true
-		},
-		{	type = "submenu",
-			name = GetString(SI_FURC_STRING_MENU_DEFAULT_DD),
-			controls = {
-				{ -- description: Default dropdown
-					type = "description",
-					name = GetString(SI_FURC_STRING_MENU_DEFAULT_DD_USE),
-					text = GetString(SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT),
-				},
+    { -- checkbox: Skip Initial Scan
+      type   = "checkbox",
+      name   = GetString(SI_FURC_STRING_MENU_SKIP_INITIALSCAN),
+      tooltip = GetString(SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT),
+      getFunc = function() return FurC.GetSkipInitialScan() end,
+      setFunc = function(value) FurC.SetSkipInitialScan(value) end
+    },
+    -- =======================================================================================
+    -- header: Inventory and bank
+    -- =======================================================================================
+    {  -- header: Inventory and bank
+      type = "submenu",
+      name = GetString(SI_FURC_STRING_MENU_HEADER_ICONS),
+      controls = {
+        { -- checkbox: Add items to known/unknown recipes?
+          type   = "checkbox",
+          name   = GetString(SI_FURC_STRING_MENU_ADD_ITEMS_NAME),
+          tooltip = GetString(SI_FURC_STRING_MENU_ADD_ITEMS_TT),
+          getFunc = function() return FurC.GetUseInventoryIcons() end,
+          setFunc = function(value) FurC.SetUseInventoryIcons(value) end
+        },
+        { -- checkbox: Only mark unknown recipes
+          type   = "checkbox",
+          name   = GetString(SI_FURC_STRING_MENU_IT_UNKNOWN_NAME),
+          getFunc = function() return FurC.GetHideKnownInventoryIcons() end,
+          setFunc = function(value) FurC.SetHideKnownInventoryIcons(value) end
+        },
+        { -- checkbox: Add items to known/unknown recipes?
+          type   = "checkbox",
+          name   = GetString(SI_FURC_STRING_MENU_IT_THIS_ONLY),
+          tooltip = GetString(SI_FURC_STRING_MENU_IT_THIS_ONLY_TT),
+          getFunc = function() return FurC.GetUseInventoryIconsOnChar() end,
+          setFunc = function(value) FurC.SetUseInventoryIconsOnChar(value) end
+        },
+      },
+    },
+    -- =======================================================================================
+    -- header: UI and performance
+    -- =======================================================================================
+    {  -- header: UI and performance
+      type = "header",
+      name = "User Interface",
+    },
+    { -- checkbox: use small interface?
+      type   = "checkbox",
+      name   = GetString(SI_FURC_STRING_MENU_USETINY),
+      tooltip = GetString(SI_FURC_STRING_MENU_USETINY_TT),
+      getFunc = function() return FurC.GetTinyUi() end,
+      setFunc = function(value) FurC.SetTinyUi(value) end
+    },
+    { -- checkbox: start silently?
+      type   = "checkbox",
+      name   = GetString(SI_FURC_STRING_MENU_STARTSILENT),
+      tooltip = GetString(SI_FURC_STRING_MENU_STARTSILENT_TT),
+      getFunc = function() return FurC.GetStartupSilently() end,
+      setFunc = function(value) FurC.SetStartupSilently(value) end
+    },
+    { -- checkbox: show Icon on left of items?
+      type   = "checkbox",
+      name   = GetString(SI_FURC_STRING_MENU_SHOWICONONLEFT),
+      tooltip = GetString(SI_FURC_STRING_MENU_SHOWICONONLEFT_TT),
+      getFunc = function() return FurC.GetShowIconOnLeft() end,
+      setFunc = function(value) FurC.SetShowIconOnLeft(value) end,
+      requiresReload = true
+    },
+    { -- slider: font size
+      type   = "slider",
+      name   = GetString(SI_FURC_STRING_MENU_FONTSIZE),
+      tooltip = GetString(SI_FURC_STRING_MENU_FONTSIZE_TT),
+      min   = 10,
+      max   = 28,
+      getFunc = function() return FurC.GetFontSize() end,
+      setFunc = function(value) FurC.SetFontSize(value) end
+    },
+    { -- checkbox: use right click menu divider?
+      type   = "checkbox",
+      name   = GetString(SI_FURC_STRING_CONTEXTMENU_DIVIDER),
+      tooltip = GetString(SI_FURC_STRING_CONTEXTMENU_DIVIDER_TT),
+      getFunc = function() return FurC.GetSkipDivider() end,
+      setFunc = function(value) FurC.SetSkipDivider(value) end,
+      requiresReload = true
+    },
+    {  type = "submenu",
+      name = GetString(SI_FURC_STRING_MENU_DEFAULT_DD),
+      controls = {
+        { -- description: Default dropdown
+          type = "description",
+          name = GetString(SI_FURC_STRING_MENU_DEFAULT_DD_USE),
+          text = GetString(SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT),
+        },

-				{ -- checkbox: Persistent?
-					type 	= "checkbox",
-					name 	= GetString(SI_FURC_STRING_MENU_DEFAULT_DD_RESET),
-					tooltip = GetString(SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT),
-					getFunc = function() return FurC.GetResetDropdownChoice() end,
-					setFunc = function(value) FurC.SetResetDropdownChoice(value) end
-				},
-				{ -- dropdown: default source
-					type 	= "dropdown",
-					name 	= GetString(SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE),
-					choices = FurC.GetChoicesSource(),
-					getFunc = function() return FurC.GetDefaultDropdownChoiceText("Source") end,
-					setFunc = function(value) FurC.SetDefaultDropdownChoice("Source", value) end
-				},
-				{ -- dropdown: default character
-					type 	= "dropdown",
-					name 	= GetString(SI_FURC_STRING_MENU_DEFAULT_DD_CHAR),
-					choices = FurnitureCatalogue.DropdownData.ChoicesCharacter,
-					getFunc = function() return FurC.GetDefaultDropdownChoiceText("Character") end,
-					setFunc = function(value) FurC.SetDefaultDropdownChoice("Character", value) end
-				},
-				{ -- dropdown: default version
-					type = "dropdown",
-					name 	= GetString(SI_FURC_STRING_MENU_DEFAULT_DD_VERSION),
-					choices = FurnitureCatalogue.DropdownData.ChoicesVersion,
-					getFunc = function() return FurC.GetDefaultDropdownChoiceText("Version") end,
-					setFunc = function(value) FurC.SetDefaultDropdownChoice("Version", value) end
-				},
-			},
-		},
+        { -- checkbox: Persistent?
+          type   = "checkbox",
+          name   = GetString(SI_FURC_STRING_MENU_DEFAULT_DD_RESET),
+          tooltip = GetString(SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT),
+          getFunc = function() return FurC.GetResetDropdownChoice() end,
+          setFunc = function(value) FurC.SetResetDropdownChoice(value) end
+        },
+        { -- dropdown: default source
+          type   = "dropdown",
+          name   = GetString(SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE),
+          choices = FurC.GetChoicesSource(),
+          getFunc = function() return FurC.GetDefaultDropdownChoiceText("Source") end,
+          setFunc = function(value) FurC.SetDefaultDropdownChoice("Source", value) end
+        },
+        { -- dropdown: default character
+          type   = "dropdown",
+          name   = GetString(SI_FURC_STRING_MENU_DEFAULT_DD_CHAR),
+          choices = FurnitureCatalogue.DropdownData.ChoicesCharacter,
+          getFunc = function() return FurC.GetDefaultDropdownChoiceText("Character") end,
+          setFunc = function(value) FurC.SetDefaultDropdownChoice("Character", value) end
+        },
+        { -- dropdown: default version
+          type = "dropdown",
+          name   = GetString(SI_FURC_STRING_MENU_DEFAULT_DD_VERSION),
+          choices = FurnitureCatalogue.DropdownData.ChoicesVersion,
+          getFunc = function() return FurC.GetDefaultDropdownChoiceText("Version") end,
+          setFunc = function(value) FurC.SetDefaultDropdownChoice("Version", value) end
+        },
+      },
+    },


-		-- =======================================================================================
-		-- submenu: Catalogue filtering
-		-- =======================================================================================
-		{	type = "submenu",
-			name = GetString(SI_FURC_STRING_MENU_FILTERING),
-			controls = {
-                 {	type = "submenu",
+    -- =======================================================================================
+    -- submenu: Catalogue filtering
+    -- =======================================================================================
+    {  type = "submenu",
+      name = GetString(SI_FURC_STRING_MENU_FILTERING),
+      controls = {
+                 {  type = "submenu",
                     name = GetString(SI_FURC_STRING_MENU_HEADER_F_ALL_ON_TEXT),
                     controls = {
                         { -- description: Default dropdown
@@ -232,31 +232,31 @@ function FurC.CreateSettings(savedVars, defaults)
                         },

                         { -- checkbox: Filter everything when text searching without dropdown
-                            type 	= "checkbox",
-                            name 	= GetString(SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT),
+                            type   = "checkbox",
+                            name   = GetString(SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT),
                             tooltip = GetString(SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT_TT),
                             getFunc = function() return FurC.GetFilterAllOnText() end,
                             setFunc = function(value) FurC.SetFilterAllOnText(value) end
                         },
                         { -- checkbox: Exclude books from these
-                            type 	= "checkbox",
-                            name 	= GetString(SI_FURC_STRING_MENU_FALL_HIDE_BOOKS),
+                            type   = "checkbox",
+                            name   = GetString(SI_FURC_STRING_MENU_FALL_HIDE_BOOKS),
                             tooltip = GetString(SI_FURC_STRING_MENU_FALL_HIDE_BOOKS_TT),
                             getFunc = function() return FurC.GetFilterAllOnTextNoBooks() end,
                             setFunc = function(value) FurC.SetFilterAllOnTextNoBooks(value) end,
                             disabled = not FurC.GetFilterAllOnText()
                         },
                         { -- checkbox: Exclude crown store items from these
-                            type 	= "checkbox",
-                            name 	= GetString(SI_FURC_STRING_MENU_FALL_HIDE_CROWN),
+                            type   = "checkbox",
+                            name   = GetString(SI_FURC_STRING_MENU_FALL_HIDE_CROWN),
                             tooltip = GetString(SI_FURC_STRING_MENU_FALL_HIDE_CROWN_TT),
                             getFunc = function() return FurC.GetFilterAllOnTextNoCrown() end,
                             setFunc = function(value) FurC.GetFilterAllOnTextNoCrown(value) end,
                             disabled = not FurC.GetFilterAllOnText()
                         },
                         { -- checkbox: Exclude crown store items from these
-                            type 	= "checkbox",
-                            name 	= GetString(SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR),
+                            type   = "checkbox",
+                            name   = GetString(SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR),
                             tooltip = GetString(SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR_TT),
                             getFunc = function() return FurC.GetFilterAllOnTextNoRumour() end,
                             setFunc = function(value) FurC.SetFilterAllOnTextNoRumour(value) end,
@@ -266,136 +266,136 @@ function FurC.CreateSettings(savedVars, defaults)
                 },


-				-- ===============================================================================
-				-- header: Mages guild books
-				-- ===============================================================================
-				{	-- header: Mages guild books
-					type = "header",
-					name = GetString(SI_FURC_STRING_MENU_FILTER_BOOKS),
-				},
-				{ -- checkbox: Hide Mages' guild books
-					type 	= "checkbox",
-					name 	= GetString(SI_FURC_STRING_MENU_FILTER_BOOKS_N),
-					tooltip = GetString(SI_FURC_STRING_MENU_FILTER_BOOKS_TT),
-					getFunc = function() return FurC.GetHideBooks() end,
-					setFunc = function(value) FurC.SetHideBooks(value) end
-				},
+        -- ===============================================================================
+        -- header: Mages guild books
+        -- ===============================================================================
+        {  -- header: Mages guild books
+          type = "header",
+          name = GetString(SI_FURC_STRING_MENU_FILTER_BOOKS),
+        },
+        { -- checkbox: Hide Mages' guild books
+          type   = "checkbox",
+          name   = GetString(SI_FURC_STRING_MENU_FILTER_BOOKS_N),
+          tooltip = GetString(SI_FURC_STRING_MENU_FILTER_BOOKS_TT),
+          getFunc = function() return FurC.GetHideBooks() end,
+          setFunc = function(value) FurC.SetHideBooks(value) end
+        },

-				{	-- header: Luxury items
-					type 	= "header",
-					name 	= GetString(SI_FURC_STRING_MENU_LUXURY),
-				},
-				{ -- checkbox: Hide Mages' guild books
-					type 	= "checkbox",
-					name 	= GetString(SI_FURC_STRING_MENU_LUXURY_N),
-					tooltip = GetString(SI_FURC_STRING_MENU_LUXURY_TT),
-					warning = GetString(SI_FURC_STRING_MENU_LUXURY_WARN),
-					getFunc = function() return FurC.GetMergeLuxuryAndSales() end,
-					setFunc = function(value) FurC.SetMergeLuxuryAndSales(value) end
-				},
+        {  -- header: Luxury items
+          type   = "header",
+          name   = GetString(SI_FURC_STRING_MENU_LUXURY),
+        },
+        { -- checkbox: Hide Mages' guild books
+          type   = "checkbox",
+          name   = GetString(SI_FURC_STRING_MENU_LUXURY_N),
+          tooltip = GetString(SI_FURC_STRING_MENU_LUXURY_TT),
+          warning = GetString(SI_FURC_STRING_MENU_LUXURY_WARN),
+          getFunc = function() return FurC.GetMergeLuxuryAndSales() end,
+          setFunc = function(value) FurC.SetMergeLuxuryAndSales(value) end
+        },


-				-- ===============================================================================
-				-- header: Rumour Recipes
-				-- ===============================================================================
-				{	-- header: rumour recipes
-					type 	= "header",
-					name 	= "Rumour Recipes",
-				},
-				{ -- checkbox: Hide doubtful recipes
-					type 	= "description",
-					name 	= GetString(SI_FURC_STRING_MENU_RUMOUR),
-					text 	= GetString(SI_FURC_STRING_MENU_RUMOUR_DESC),
-				},
-				{ -- checkbox: Hide doubtful recipes
-					type 	= "checkbox",
-					name 	= GetString(SI_FURC_STRING_MENU_RUMOUR_N),
-					getFunc = function() return FurC.GetHideRumourRecipes() end,
-					setFunc = function(value) FurC.SetHideRumourRecipes(value) end
-				},
-				{	-- header: rumour recipes
-					type = "header",
-					name = "Crown store",
-				},
-				{ -- checkbox: Hide doubtful recipes
-					type = "description",
-					name = GetString(SI_FURC_STRING_MENU_CROWN),
-					text = GetString(SI_FURC_STRING_MENU_CROWN_DESC),
-				},
-				{ -- checkbox: Hide doubtful recipes
-					type 	= "checkbox",
-					name 	= GetString(SI_FURC_STRING_MENU_CROWN_N),
-					getFunc = function() return FurC.GetHideCrownStoreItems() end,
-					setFunc = function(value) FurC.SetHideCrownStoreItems(value) end
-				},
-			},
-		},
+        -- ===============================================================================
+        -- header: Rumour Recipes
+        -- ===============================================================================
+        {  -- header: rumour recipes
+          type   = "header",
+          name   = "Rumour Recipes",
+        },
+        { -- checkbox: Hide doubtful recipes
+          type   = "description",
+          name   = GetString(SI_FURC_STRING_MENU_RUMOUR),
+          text   = GetString(SI_FURC_STRING_MENU_RUMOUR_DESC),
+        },
+        { -- checkbox: Hide doubtful recipes
+          type   = "checkbox",
+          name   = GetString(SI_FURC_STRING_MENU_RUMOUR_N),
+          getFunc = function() return FurC.GetHideRumourRecipes() end,
+          setFunc = function(value) FurC.SetHideRumourRecipes(value) end
+        },
+        {  -- header: rumour recipes
+          type = "header",
+          name = "Crown store",
+        },
+        { -- checkbox: Hide doubtful recipes
+          type = "description",
+          name = GetString(SI_FURC_STRING_MENU_CROWN),
+          text = GetString(SI_FURC_STRING_MENU_CROWN_DESC),
+        },
+        { -- checkbox: Hide doubtful recipes
+          type   = "checkbox",
+          name   = GetString(SI_FURC_STRING_MENU_CROWN_N),
+          getFunc = function() return FurC.GetHideCrownStoreItems() end,
+          setFunc = function(value) FurC.SetHideCrownStoreItems(value) end
+        },
+      },
+    },

-		-- =======================================================================================
-		-- header: Tooltip
-		-- =======================================================================================
-		{	-- header: Tooltip
-			type 	= "header",
-			name 	= "Tooltip",
-		},
-		{ -- checkbox: Disable
-			type 		= "checkbox",
-			name 		= GetString(SI_FURC_STRING_MENU_TOOLTIP),
-			getFunc 	= function() return (not FurC.GetDisableTooltips()) end,
-			setFunc 	= function(value) FurC.SetDisableTooltips(not value) end
-		},
-		{ -- checkbox: Colorize tooltips for clarity?
-			type 		= "checkbox",
-			name 		= GetString(SI_FURC_STRING_MENU_TOOLTIP_COLOR),
-			tooltip 	= GetString(SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT),
-			disabled 	= FurC.GetDisableTooltips(),
-			getFunc 	= function() return FurC.GetColouredTooltips() end,
-			setFunc 	= function(value) FurC.SetColouredTooltips(value) end
-		},
-		{ -- checkbox: Hide 'known by' from tooltip
-			type 		= "checkbox",
-			name 		= GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN),
-			tooltip 	= GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT),
-			width		= "half",
-			disabled 	= FurC.GetDisableTooltips(),
-			getFunc 	= function() return (FurC.GetHideKnowledge()) end,
-			setFunc 	= function(value) FurC.SetHideKnowledge(value) end
-		},
-		{ -- checkbox: Hide 'known by' from tooltip
-			type 		= "checkbox",
-			name 		= GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN),
-			tooltip 	= GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT),
-			width		= "half",
-			disabled 	= FurC.GetDisableTooltips(),
-			getFunc 	= function() return (FurC.GetHideUnknown()) end,
-			setFunc 	= function(value) FurC.SetHideUnknown(value) end
-		},
-		{ -- checkbox: Hide item source
-			type 		= "checkbox",
-			name 		= GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE),
-			tooltip 	= "",
-			disabled 	= FurC.GetDisableTooltips(),
-			getFunc 	= function() return (FurC.GetHideSource()) end,
-			setFunc 	= function(value) FurC.SetHideSource(value) end
-		},
-		{ -- checkbox: Hide item source
-			type 		= "checkbox",
-			name 		= GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION),
-			tooltip 	= "",
-			disabled 	= FurC.GetDisableTooltips(),
-			getFunc 	= function() return (FurC.GetHideCraftingStation()) end,
-			setFunc 	= function(value) FurC.SetHideCraftingStation(value) end
-		},
-		{ -- checkbox: Hide materials from tooltip
-			type 		= "checkbox",
-			name 		= GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL),
-			tooltip 	= "",
-			disabled 	= FurC.GetDisableTooltips(),
-			getFunc 	= function() return (FurC.GetHideMats()) end,
-			setFunc 	= function(value) FurC.SetHideMats(value) end
-		},
-	} -- optionsData end
+    -- =======================================================================================
+    -- header: Tooltip
+    -- =======================================================================================
+    {  -- header: Tooltip
+      type   = "header",
+      name   = "Tooltip",
+    },
+    { -- checkbox: Disable
+      type     = "checkbox",
+      name     = GetString(SI_FURC_STRING_MENU_TOOLTIP),
+      getFunc   = function() return (not FurC.GetDisableTooltips()) end,
+      setFunc   = function(value) FurC.SetDisableTooltips(not value) end
+    },
+    { -- checkbox: Colorize tooltips for clarity?
+      type     = "checkbox",
+      name     = GetString(SI_FURC_STRING_MENU_TOOLTIP_COLOR),
+      tooltip   = GetString(SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT),
+      disabled   = FurC.GetDisableTooltips(),
+      getFunc   = function() return FurC.GetColouredTooltips() end,
+      setFunc   = function(value) FurC.SetColouredTooltips(value) end
+    },
+    { -- checkbox: Hide 'known by' from tooltip
+      type     = "checkbox",
+      name     = GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN),
+      tooltip   = GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT),
+      width    = "half",
+      disabled   = FurC.GetDisableTooltips(),
+      getFunc   = function() return (FurC.GetHideKnowledge()) end,
+      setFunc   = function(value) FurC.SetHideKnowledge(value) end
+    },
+    { -- checkbox: Hide 'known by' from tooltip
+      type     = "checkbox",
+      name     = GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN),
+      tooltip   = GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT),
+      width    = "half",
+      disabled   = FurC.GetDisableTooltips(),
+      getFunc   = function() return (FurC.GetHideUnknown()) end,
+      setFunc   = function(value) FurC.SetHideUnknown(value) end
+    },
+    { -- checkbox: Hide item source
+      type     = "checkbox",
+      name     = GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE),
+      tooltip   = "",
+      disabled   = FurC.GetDisableTooltips(),
+      getFunc   = function() return (FurC.GetHideSource()) end,
+      setFunc   = function(value) FurC.SetHideSource(value) end
+    },
+    { -- checkbox: Hide item source
+      type     = "checkbox",
+      name     = GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION),
+      tooltip   = "",
+      disabled   = FurC.GetDisableTooltips(),
+      getFunc   = function() return (FurC.GetHideCraftingStation()) end,
+      setFunc   = function(value) FurC.SetHideCraftingStation(value) end
+    },
+    { -- checkbox: Hide materials from tooltip
+      type     = "checkbox",
+      name     = GetString(SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL),
+      tooltip   = "",
+      disabled   = FurC.GetDisableTooltips(),
+      getFunc   = function() return (FurC.GetHideMats()) end,
+      setFunc   = function(value) FurC.SetHideMats(value) end
+    },
+  } -- optionsData end

-	LAM:RegisterOptionControls("FurC_OptionsPanel", optionsData)
+  LAM:RegisterOptionControls("FurC_OptionsPanel", optionsData)
 end

diff --git a/FurCSettingsAdapter.lua b/FurCSettingsAdapter.lua
index fd19ac6..92681b3 100644
--- a/FurCSettingsAdapter.lua
+++ b/FurCSettingsAdapter.lua
@@ -1,85 +1,86 @@
-local task 		= LibStub("LibAsync"):Create("FurnitureCatalogue_Settings")
-local p 		= FurC.DebugOut -- debug function calling zo_strformat with up to 10 args
+local task     = LibStub("LibAsync"):Create("FurnitureCatalogue_Settings")
+local p     = FurC.DebugOut -- debug function calling zo_strformat with up to 10 args

 function FurC.GetEnableDebug()
-	return FurC.settings["enableDebug"]
+  return FurC.settings["enableDebug"]
 end
 function FurC.SetEnableDebug(value)
-	FurC.settings["enableDebug"] = value
+  FurC.settings["enableDebug"] = value
 end
 function FurC.GetHideRumourRecipes()
-	return FurC.settings["hideDoubtfuls"]
+  return FurC.settings["hideDoubtfuls"]
 end
 function FurC.SetHideRumourRecipes(value)
-	FurC.settings["hideDoubtfuls"] = value
-	FurC.updateDropdownData()
-	FurC.UpdateGui()
+  FurC.settings["hideDoubtfuls"] = value
+  FurC.updateDropdownData()
+  FurC.UpdateGui()
 end
 function FurC.GetHideCrownStoreItems()
-	return FurC.settings["hideCrownstore"]
+  return FurC.settings["hideCrownstore"]
 end
 function FurC.SetHideCrownStoreItems(value)
-	FurC.settings["hideCrownstore"] = value
-	FurC.updateDropdownData()
-	FurC.UpdateGui()
+  FurC.settings["hideCrownstore"] = value
+  FurC.updateDropdownData()
+  FurC.UpdateGui()
 end

 function FurC.GetFilterAllOnText()
-	return FurC.settings["filterAllOnText"]
+  return FurC.settings["filterAllOnText"]
 end
 function FurC.SetFilterAllOnText(value)
-	FurC.settings["filterAllOnText"] = value
-	FurC.UpdateGui()
+  FurC.settings["filterAllOnText"] = value
+  FurC.UpdateGui()
 end

 function FurC.GetFilterAllOnTextNoRumour()
-	return FurC.settings["filterAllOnTextNoRumour"]
+  return FurC.settings["filterAllOnTextNoRumour"]
 end
 function FurC.SetFilterAllOnTextNoRumour(value)
-	FurC.settings["filterAllOnTextNoRumour"] = value
-	FurC.UpdateGui()
+  FurC.settings["filterAllOnTextNoRumour"] = value
+  FurC.UpdateGui()
 end

 function FurC.GetSkipDivider()
-	return FurC.settings["skipDivider"]
+  return FurC.settings["skipDivider"]
 end
 function FurC.SetSkipDivider(value)
-	FurC.settings["skipDivider"] = value
+  FurC.settings["skipDivider"] = value
 end

 function FurC.GetFilterAllOnTextNoBooks()
-	return FurC.settings["filterAllOnTextNoBooks"]
+  return FurC.settings["filterAllOnTextNoBooks"]
 end
-function FurC.SetFilterAllOnTextNoBooks(value)
-	FurC.settings["filterAllOnTextNoBooks"] = value
-	FurC.UpdateGui()
+function FurC.GetFilterAllOnTextNoBooks(value)
+  FurC.settings["filterAllOnTextNoBooks"] = value
+  FurC.UpdateGui()
 end

 function FurC.GetFilterAllOnTextNoCrown()
-	return FurC.settings["filterAllOnTextNoCrown"]
+  return FurC.settings["filterAllOnTextNoCrown"]
 end
-function FurC.SetFilterAllOnTextNoCrown(value)
-	FurC.settings["filterAllOnTextNoCrown"] = value
-	FurC.UpdateGui()
+function FurC.GetFilterAllOnTextNoCrown(value)
+  FurC.settings["filterAllOnTextNoCrown"] = value
+  FurC.UpdateGui()
 end


-
 function FurC.GetFontSize()
-	if FurC.settings["fontSize"] < 10 then
-		FurC.settings["fontSize"] = 10
-	end
-	return FurC.settings["fontSize"]
+  if FurC.settings["fontSize"] < 10 then
+    FurC.settings["fontSize"] = 10
+  end
+  return FurC.settings["fontSize"]
 end
 function FurC.SetFontSize(value)
-	if nil == value then value = FurC.GetFontSize() end
-	if value == 0 then value = 18 end
-	FurC.settings["fontSize"] = value
+  if nil == value then value = FurC.GetFontSize() end
+  if value == 0 then value = 18 end
+  FurC.settings["fontSize"] = value
+
+  local size = tostring(value)

-	local size = tostring(value)

+  FurC.SetLineHeight()

-	FurC.SetLineHeight()
+  task:Call(function()  FurC.UpdateGui() end)
 end


@@ -87,58 +88,58 @@ end
 --------- Tooltip ---------
 ---------------------------
 function FurC.GetDisableTooltips()
-	return FurC.settings["disableTooltips"]
+  return FurC.settings["disableTooltips"]
 end
 function FurC.SetDisableTooltips(value)
-	FurC.settings["disableTooltips"] = value
+  FurC.settings["disableTooltips"] = value
 end

 function FurC.GetColouredTooltips()
-	return FurC.settings["coloredTooltips"]
+  return FurC.settings["coloredTooltips"]
 end
 function FurC.SetColouredTooltips(value)
-	FurC.settings["coloredTooltips"] = value
+  FurC.settings["coloredTooltips"] = value
 end

 function FurC.GetHideKnowledge()
-	return FurC.settings["hideKnowledge"]
+  return FurC.settings["hideKnowledge"]
 end
 function FurC.SetHideKnowledge(value)
-	FurC.settings["hideKnowledge"] = value
+  FurC.settings["hideKnowledge"] = value
 end
 function FurC.GetHideUnknown()
-	return FurC.settings["hideUnknown"]
+  return FurC.settings["hideUnknown"]
 end
 function FurC.SetHideUnknown(value)
-	FurC.settings["hideUnknown"] = value
+  FurC.settings["hideUnknown"] = value
 end

 function FurC.GetHideMats()
-	return FurC.settings["hideMats"]
+  return FurC.settings["hideMats"]
 end
 function FurC.SetHideMats(value)
-	FurC.settings["hideMats"] = value
+  FurC.settings["hideMats"] = value
 end

 function FurC.GetHideSource()
-	return FurC.settings["hideSource"]
+  return FurC.settings["hideSource"]
 end
 function FurC.SetHideSource(value)
-	FurC.settings["hideSource"] = value
+  FurC.settings["hideSource"] = value
 end

 function FurC.GetHideCraftingStation()
-	return FurC.settings["hideCraftingStation"]
+  return FurC.settings["hideCraftingStation"]
 end
 function FurC.SetHideCraftingStation(value)
-	FurC.settings["hideCraftingStation"] = value
+  FurC.settings["hideCraftingStation"] = value
 end

 function FurC.GetEnableShoppingList()
-	return FurC.settings["enableShoppingList"]
+  return FurC.settings["enableShoppingList"]
 end
 function FurC.SetEnableShoppingList(value)
-	FurC.settings["enableShoppingList"] = value
+  FurC.settings["enableShoppingList"] = value
 end

 ---------------------------
@@ -151,11 +152,11 @@ end
 ---------------------------

 function FurC.GetShowIconOnLeft()
-	return FurC.settings["showIconOnLeft"] == nil or
-		   FurC.settings["showIconOnLeft"] == true
+  return FurC.settings["showIconOnLeft"] == nil or
+       FurC.settings["showIconOnLeft"] == true
 end
 function FurC.SetShowIconOnLeft(value)
-	FurC.settings["showIconOnLeft"] = value
+  FurC.settings["showIconOnLeft"] = value
 end

 ---------------------------
@@ -169,118 +170,152 @@ end


 local function containsTrue(ary)
-	for key, value in pairs(ary) do
-		if value then return true end
-	end
+  for key, value in pairs(ary) do
+    if value then return true end
+  end
 end

 function FurC.GetFilterQuality()
-	return FurC.settings.filterQuality
+  return FurC.settings.filterQuality
 end
 function FurC.SetFilterQuality(quality)

-	local controls = FurC.GuiElements.qualityButtons
-	local filterArray = FurC.settings.filterQuality
+  local controls = FurC.GuiElements.qualityButtons
+  local filterArray = FurC.settings.filterQuality

-	quality = quality or 0
+  quality = quality or 0

-	if quality == 0 then
-		for key, value in pairs (filterArray) do
-			FurC.settings.filterQuality[key] = false
-		end
-	else
-		filterArray[quality] = not filterArray[quality]
-	end
-	FurC.settings.filterQualityAll = not containsTrue(filterArray)
+  if quality == 0 then
+    for key, value in pairs (filterArray) do
+      FurC.settings.filterQuality[key] = false
+    end
+  else
+    filterArray[quality] = not filterArray[quality]
+  end
+  FurC.settings.filterQualityAll = not containsTrue(filterArray)

-	for key, control in pairs (controls) do
-		control:SetState((filterArray[key-1] and BSTATE_PRESSED) or BSTATE_NORMAL)
-	end
-	FurC.GuiOnScroll(nil, 0)
-	FurC.RefreshFilters()
+  for key, control in pairs (controls) do
+    control:SetState((filterArray[key-1] and BSTATE_PRESSED) or BSTATE_NORMAL)
+  end
+  FurC.GuiOnScroll(nil, 0)
+  FurC.SetFilter()
+  FurC.UpdateGui()
 end

 function FurC.GetFilterCraftingType()
-	return FurC.settings.filterCraftingType
+  return FurC.settings.filterCraftingType
 end
 function FurC.SetFilterCraftingType(craftingType)

-	local controls 		= 	FurC.GuiElements.craftingTypeFilters
-	local filterArray 	= 	FurC.settings.filterCraftingType
+  local controls     =   FurC.GuiElements.craftingTypeFilters
+  local filterArray   =   FurC.settings.filterCraftingType

-	if craftingType == 0 then
-		for key, value in pairs (filterArray) do
-			filterArray[key] = false
-		end
-	else
-		filterArray[craftingType] = not filterArray[craftingType]
-	end
+  if craftingType == 0 then
+    for key, value in pairs (filterArray) do
+      filterArray[key] = false
+    end
+  else
+    filterArray[craftingType] = not filterArray[craftingType]
+  end

-	FurC.settings.filterCraftingTypeAll = not containsTrue(filterArray)
+  FurC.settings.filterCraftingTypeAll = not containsTrue(filterArray)

-	for key, control in pairs (controls) do
-		control:SetState((filterArray[key] and BSTATE_PRESSED) or BSTATE_NORMAL)
-	end
+  for key, control in pairs (controls) do
+    control:SetState((filterArray[key] and BSTATE_PRESSED) or BSTATE_NORMAL)
+  end

-	FurC.GuiOnScroll(FurCGui_ListHolder_Slider, 0)
-	FurC.RefreshFilters()
+  FurC.GuiOnScroll(FurCGui_ListHolder_Slider, 0)
+  FurC.SetFilter()
+  FurC.UpdateGui()
 end


 local FURC_S_FILTERDEFAULT = GetString(SI_FURC_TEXTBOX_FILTER_DEFAULT)
+
 function FurC.GetSearchFilter()
-	if (not FurC.SearchFilter) or FurC.SearchFilter == FURC_S_FILTERDEFAULT then
-		FurC.SearchFilter = FurC_SearchBox:GetText() or ""
-	end
-	return FurC.SearchFilter or ""
+  if (not FurC.SearchFilter) or FurC.SearchFilter == FURC_S_FILTERDEFAULT then
+    FurC.SearchFilter = FurC_SearchBox:GetText() or ""
+  end
+  return FurC.SearchFilter or ""
+end
+
+local alreadySearching  = false
+local alreadyReset      = false
+local function resetSearch()
+    alreadySearching = false
+    alreadyReset     = false
+end
+local function doSearchOnUpdate()
+
+    if alreadyReset then return end
+    if alreadySearching then
+        alreadyReset = true
+        zo_callLater(resetSearch, 200)
+        return
+    end
+    local text = FurC_SearchBox:GetText()
+    FurC_SearchBoxText:SetText((#text == 0 and FURC_S_FILTERDEFAULT) or "")
+
+    FurC.SearchFilter = text
+
+    FurC.GuiOnSliderUpdate(FurCGui_ListHolder_Slider, 0)
+    FurC.UpdateGui()
 end

-
 function FurC.GuiSetSearchboxTextFrom(control)
     control = control or FurC_SearchBox
-	FurC.SearchFilter = control:GetText()
-	FurC.RefreshFilters()
+  -- call asynchronely to prevent lagging. Praise votan.
+  task:Call(doSearchOnUpdate)
 end

 function FurC.GetHideBooks()
-	return FurC.settings["hideBooks"]
+  return FurC.settings["hideBooks"]
 end
 function FurC.SetHideBooks(value)
-	FurC.settings["hideBooks"] = value
-	FurC.RefreshFilters()
+  FurC.settings["hideBooks"] = value
+  FurC.UpdateGui()
 end
 function FurC.GetMergeLuxuryAndSales()
-	return FurC.settings["mergeLuxuryAndSales"]
+  return FurC.settings["mergeLuxuryAndSales"]
 end
 function FurC.SetMergeLuxuryAndSales(value)
-	FurC.settings["mergeLuxuryAndSales"] = value
-	FurC.RefreshFilters()
+  FurC.settings["mergeLuxuryAndSales"] = value
+  FurC.UpdateGui()
 end

+function FurC.GetShowRumours()
+  return FurC.settings["showRumours"]
+end
+function FurC.SetShowRumours(value)
+  FurC.settings["showRumours"] = value
+  FurC_ShowRumours:SetState((value and BSTATE_PRESSED) or BSTATE_DISABLED)
+  FurC_ShowRumoursGlow:SetHidden(not value)
+  FurC.UpdateGui()
+end

 ---------------------------
 --------- Dropdown --------
 ---------------------------
 FurC.DropdownChoices = {
-	["Source"] = nil,
-	["Version"] = nil,
-	["Character"] = nil,
+  ["Source"] = nil,
+  ["Version"] = nil,
+  ["Character"] = nil,
 }
 function FurC.GetDropdownChoice(dropdownName)
-	return (FurC.DropdownChoices[dropdownName] or FurC.GetDefaultDropdownChoice(dropdownName))
+  return (FurC.DropdownChoices[dropdownName] or FurC.GetDefaultDropdownChoice(dropdownName))
 end
 function FurC.GetDropdownText(dropdownName)
-	local dropdown = FurC.DropdownData[dropdownName]
-	local key = FurC.GetDropdownChoice(dropdownName)
-	return dropdown[key]
+  local dropdown = FurC.DropdownData[dropdownName]
+  local key = FurC.GetDropdownChoice(dropdownName)
+  return dropdown[key]
 end
 local function getDropdownIndex(dropdownName, value)
-	local dropdown = FurC.DropdownData["Choices"..dropdownName]
-	for listKey, listValue in pairs(dropdown) do
-		if listValue == value then return listKey end
-	end
-	dropdown[#dropdown+1] = value
-	return #dropdown
+  local dropdown = FurC.DropdownData["Choices"..dropdownName]
+  for listKey, listValue in pairs(dropdown) do
+    if listValue == value then return listKey end
+  end
+  dropdown[#dropdown+1] = value
+  return #dropdown
 end


@@ -290,85 +325,85 @@ local dropdownData = FurC.DropdownData
 -- Character: Accountwide, crafter1, crafter2...
 -- Version: All, Homestead, Morrowind
 function FurC.SetDropdownChoice(dropdownName, textValue, dropdownIndex)
-	textValue = textValue or FurC.GetDefaultDropdownChoice(dropdownName)
-	local dropdownIndex = dropdownIndex or getDropdownIndex(dropdownName, textValue) or 0
+  textValue = textValue or FurC.GetDefaultDropdownChoice(dropdownName)
+  local dropdownIndex = dropdownIndex or getDropdownIndex(dropdownName, textValue) or 0

-	-- p("FurC.SetDropdownChoice(<<1>>, <<2>> (Index: <<3>>))", dropdownName, textValue, dropdownIndex)
+  -- p("FurC.SetDropdownChoice(<<1>>, <<2>> (Index: <<3>>))", dropdownName, textValue, dropdownIndex)

-	-- if we're setting the dropdown menu "source" to "purchaseable", set "character" to "All"
-	FurC.DropdownChoices[dropdownName] = dropdownIndex
+  -- if we're setting the dropdown menu "source" to "purchaseable", set "character" to "All"
+  FurC.DropdownChoices[dropdownName] = dropdownIndex

-	if dropdownName == "Source" then
-		if dropdownIndex > FURC_CRAFTING_UNKNOWN or dropdownIndex < FURC_CRAFTING then
-			FurC.DropdownChoices["Character"] = 1
-			FurC_DropdownCharacter:GetNamedChild("SelectedItemText"):SetText(FurnitureCatalogue.DropdownData.ChoicesCharacter[1])
-		end
-	end
-	-- if we're setting the characters array to something other than 1, we can't use source 1 or 5
-	if dropdownName == "Character" and (dropdownIndex > 1) then
-		if FurC.DropdownChoices["Source"] > FURC_CRAFTING_UNKNOWN or FurC.DropdownChoices["Source"] < FURC_CRAFTING then
-			local knownIndex = FURC_CRAFTING_KNOWN
-			FurC.DropdownChoices["Source"] = knownIndex
-			FurC_DropdownSource:GetNamedChild("SelectedItemText"):SetText(FurnitureCatalogue.DropdownData.ChoicesSource[knownIndex])
-		end
-	end
+  if dropdownName == "Source" then
+    if dropdownIndex > FURC_CRAFTING_UNKNOWN or dropdownIndex < FURC_CRAFTING then
+      FurC.DropdownChoices["Character"] = 1
+      FurC_DropdownCharacter:GetNamedChild("SelectedItemText"):SetText(FurnitureCatalogue.DropdownData.ChoicesCharacter[1])
+    end
+  end
+  -- if we're setting the characters array to something other than 1, we can't use source 1 or 5
+  if dropdownName == "Character" and (dropdownIndex > 1) then
+    if FurC.DropdownChoices["Source"] > FURC_CRAFTING_UNKNOWN or FurC.DropdownChoices["Source"] < FURC_CRAFTING then
+      local knownIndex = FURC_CRAFTING_KNOWN
+      FurC.DropdownChoices["Source"] = knownIndex
+      FurC_DropdownSource:GetNamedChild("SelectedItemText"):SetText(FurnitureCatalogue.DropdownData.ChoicesSource[knownIndex])
+    end
+  end

-	FurC.DropdownChoices[dropdownName] = dropdownIndex
+  FurC.DropdownChoices[dropdownName] = dropdownIndex

-	zo_callLater(function() FurC.UpdateGui() end, 500)
+  zo_callLater(function() FurC.UpdateGui() end, 500)

 end

 function FurC.GetDefaultDropdownChoiceText(dropdownName)
-	return FurC.DropdownData["Choices"..dropdownName][FurC.GetDefaultDropdownChoice(dropdownName)]
+  return FurC.DropdownData["Choices"..dropdownName][FurC.GetDefaultDropdownChoice(dropdownName)]
 end

 function FurC.GetDefaultDropdownChoice(dropdownName)
-	return FurC.settings.dropdownDefaults[dropdownName]
+  return FurC.settings.dropdownDefaults[dropdownName]
 end
 function FurC.SetDefaultDropdownChoice(dropdownName, value)
-	local dropdownIndex = getDropdownIndex(dropdownName, value)
-	local dropdown = FurC.DropdownData["Choices"..dropdownName]
-	FurC.settings.dropdownDefaults[dropdownName] = dropdownIndex
-	-- FurC.UpdateDropdownChoice(dropdownName, value, dropdownIndex)
-	-- FurC.UpdateGui()
+  local dropdownIndex = getDropdownIndex(dropdownName, value)
+  local dropdown = FurC.DropdownData["Choices"..dropdownName]
+  FurC.settings.dropdownDefaults[dropdownName] = dropdownIndex
+  -- FurC.UpdateDropdownChoice(dropdownName, value, dropdownIndex)
+  -- FurC.UpdateGui()
 end
 function FurC.GetResetDropdownChoice()
-	return FurC.settings["resetDropdownChoice"]
+  return FurC.settings["resetDropdownChoice"]
 end
 function FurC.SetResetDropdownChoice(value)
-	FurC.settings["resetDropdownChoice"] = value
+  FurC.settings["resetDropdownChoice"] = value
 end

 function FurC.GetDropdownChoiceTextual(dropdownName)
-	local value = FurC.GetDropdownChoice(dropdownName)
-	local dropdown = FurC.DropdownData["Choices"..dropdownName]
-	return FurC.DropdownData["Choices"..dropdownName][value]
+  local value = FurC.GetDropdownChoice(dropdownName)
+  local dropdown = FurC.DropdownData["Choices"..dropdownName]
+  return FurC.DropdownData["Choices"..dropdownName][value]
 end
 function FurC.GetDefaultDropdownChoiceTextual()
-	return FurC.DropdownData["Choices"..dropdownName][FurC.GetDefaultDropdownChoice(dropdownName)]
+  return FurC.DropdownData["Choices"..dropdownName][FurC.GetDefaultDropdownChoice(dropdownName)]
 end

 function FurC.GetAccountCrafters()
-	local ret = {}
-	for characterName, isCrafter in pairs(FurC.settings.accountCharacters) do
-		if isCrafter then table.insert(ret, characterName) end
-	end
-	return ret
+  local ret = {}
+  for characterName, isCrafter in pairs(FurC.settings.accountCharacters) do
+    if isCrafter then table.insert(ret, characterName) end
+  end
+  return ret
 end
 function FurC.GetAccountCharacters()
-	local ret = {}
-	for characterName, isCrafter in pairs(FurC.settings.accountCharacters) do
-		table.insert(ret, characterName)
-	end
-	return ret
+  local ret = {}
+  for characterName, isCrafter in pairs(FurC.settings.accountCharacters) do
+    table.insert(ret, characterName)
+  end
+  return ret
 end

 function FurC.GetSkipInitialScan()
-	return FurC.settings["skipInitialScan"]
+  return FurC.settings["skipInitialScan"]
 end
 function FurC.SetSkipInitialScan(value)
-	FurC.settings["skipInitialScan"] = value
+  FurC.settings["skipInitialScan"] = value
 end

 ---------------------------
@@ -377,92 +412,92 @@ end
 ---------------------------

 function FurC.GetUseInventoryIcons()
-	return FurC.settings["useInventoryIcons"]
+  return FurC.settings["useInventoryIcons"]
 end
 function FurC.SetUseInventoryIcons(value)
-	FurC.settings["useInventoryIcons"] = value
+  FurC.settings["useInventoryIcons"] = value
 end

 function FurC.GetUseInventoryIconsOnChar()
-	return FurC.settings["useInventoryIconsOnChar"]
+  return FurC.settings["useInventoryIconsOnChar"]
 end
 function FurC.SetUseInventoryIconsOnChar(value)
-	FurC.settings["useInventoryIconsOnChar"] = value
+  FurC.settings["useInventoryIconsOnChar"] = value
 end

 function FurC.GetHideKnownInventoryIcons()
-	return FurC.settings["hideKnownInventoryIcons"]
+  return FurC.settings["hideKnownInventoryIcons"]
 end
 function FurC.SetHideKnownInventoryIcons(value)
-	FurC.settings["hideKnownInventoryIcons"] = value
+  FurC.settings["hideKnownInventoryIcons"] = value
 end

 function FurC.GetStartupSilently()
-	return FurC.settings["startupSilently"]
+  return FurC.settings["startupSilently"]
 end
 function FurC.SetStartupSilently(value)
-	FurC.settings["startupSilently"] = value;
+  FurC.settings["startupSilently"] = value;
 end

 function FurC.GetTinyUi()
-	return FurC.settings["useTinyUi"]
+  return FurC.settings["useTinyUi"]
 end
 function FurC.SetTinyUi(value)
-	FurC.settings["useTinyUi"] 	= value
-	FurC.SlotTemplate 			= "FurC_SlotTemplate" .. ((value and "Tiny") or "")
-	FurC.ApplyLineTemplate()
+  FurC.settings["useTinyUi"]   = value
+  FurC.SlotTemplate       = "FurC_SlotTemplate" .. ((value and "Tiny") or "")
+  FurC.ApplyLineTemplate()
 end


 function FurC.GetListOffset()
-	return FurC.ListOffset or 0
+  return FurC.ListOffset or 0
 end

 function FurC.SetListOffset(value)
-	FurC.ListOffset = value
+  FurC.ListOffset = value
 end



 function FurC.WipeDatabase()
-	d("|cFFFFFFresetting |r|c2266ffFurniture Catalogue |r|cFFFFFFdata...|r")
-	FurC.settings.data = {}
-	FurC.settings.accountCharacters = {}
-	FurC.settings.excelExport = {}
-	FurC.ScanRecipes(true, true)
-	-- d("FurnitureCatalogue: Scan complete")
+  d("|cFFFFFFresetting |r|c2266ffFurniture Catalogue |r|cFFFFFFdata...|r")
+  FurC.settings.data = {}
+  FurC.settings.accountCharacters = {}
+  FurC.settings.excelExport = {}
+  FurC.ScanRecipes(true, true)
+  -- d("FurnitureCatalogue: Scan complete")
 end

 function FurC.DeleteCharacter(characterName)

-	d("Now deleting recipe knowledge for " .. characterName)
+  d("Now deleting recipe knowledge for " .. characterName)

-	for key, value in pairs(FurC.settings.accountCharacters) do
-		if value == characterName then
-			FurC.settings.accountCharacters[key] = false
-		end
-	end
+  for key, value in pairs(FurC.settings.accountCharacters) do
+    if value == characterName then
+      FurC.settings.accountCharacters[key] = false
+    end
+  end

-	for recipeKey, recipeArray in pairs(FurC.settings.data) do
-		if recipeArray.craftable then
-			recipeArray.characters[characterName] = nil
-		end
-	end
+  for recipeKey, recipeArray in pairs(FurC.settings.data) do
+    if recipeArray.craftable then
+      recipeArray.characters[characterName] = nil
+    end
+  end

-	local guiDropdownEntries = FurC_Dropdown.comboBox.m_sortedItems
-	if nil == guiDropdownEntries then return end
-	for index, data in pairs(guiDropdownEntries) do
-		if data.name == characterName then
-			FurC_Dropdown.comboBox.m_sortedItems[index] = nil
-			return
-		end
-	end
-	d(zo_strformat("<<1>> deleted from |c2266ffFurniture Catalogue|r database. Entry will disappear from settings dropdown after the next reloadui.", characterName))
+  local guiDropdownEntries = FurC_Dropdown.comboBox.m_sortedItems
+  if nil == guiDropdownEntries then return end
+  for index, data in pairs(guiDropdownEntries) do
+    if data.name == characterName then
+      FurC_Dropdown.comboBox.m_sortedItems[index] = nil
+      return
+    end
+  end
+  d(zo_strformat("<<1>> deleted from |c2266ffFurniture Catalogue|r database. Entry will disappear from settings dropdown after the next reloadui.", characterName))

 end

 function FurC.GetCurrentCharacterName()
-	if nil == FurC.CharacterName then FurC.CharacterName = zo_strformat(GetUnitName('player')) end
-	return FurC.CharacterName
+  if nil == FurC.CharacterName then FurC.CharacterName = zo_strformat(GetUnitName('player')) end
+  return FurC.CharacterName
 end

diff --git a/FurCTooltip.lua b/FurCTooltip.lua
index a270823..d5bd202 100644
--- a/FurCTooltip.lua
+++ b/FurCTooltip.lua
@@ -1,112 +1,112 @@
 local async = LibStub("LibAsync")
 local task = async:Create("FurnitureCatalogue_Tooltip")

-local p 		= FurC.DebugOut -- debug function calling zo_strformat with up to 10 args
+local p     = FurC.DebugOut -- debug function calling zo_strformat with up to 10 args

 local function tryColorize(text)
-	if not (text and FurC.GetColouredTooltips()) then return text end
-	return text:gsub("cannot craft", "|cFF0000cannot craft|r"):gsub("Can be crafted", "|c00FF00Can be crafted|r")
+  if not (text and FurC.GetColouredTooltips()) then return text end
+  return text:gsub("cannot craft", "|cFF0000cannot craft|r"):gsub("Can be crafted", "|c00FF00Can be crafted|r")
 end


 local function addTooltipData(control, itemLink)

-	if FurC.GetDisableTooltips() then return end
-	local itemId, recipeArray = nil
-	if nil == itemLink or FURC_EMPTY_STRING == itemLink then return end
-	local isRecipe = IsItemLinkFurnitureRecipe(itemLink)
+  if FurC.GetDisableTooltips() then return end
+  local itemId, recipeArray = nil
+  if nil == itemLink or FURC_EMPTY_STRING == itemLink then return end
+  local isRecipe = IsItemLinkFurnitureRecipe(itemLink)

-	itemLink = (isRecipe and GetItemLinkRecipeResultItemLink(itemLink)) or itemLink
+  itemLink = (isRecipe and GetItemLinkRecipeResultItemLink(itemLink)) or itemLink

     if not (isRecipe or IsItemLinkPlaceableFurniture(itemLink)) then return end
-	itemId 		= FurC.GetItemId(itemLink)
-	recipeArray = FurC.Find(itemLink)
-
-	-- |H0:item:118206:5:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0|h|h
-
-	if not recipeArray then return end
-
-
-	local unknown 	= not FurC.CanCraft(itemId, recipeArray)
-	local stringTable = {}
-
-
-	local function add(t, arg)
-		if nil ~= arg then t[#t + 1] = arg end
-		return t
-	end
-
-	-- if craftable:
-	if isRecipe or recipeArray.origin == FURC_CRAFTING then
-		if unknown and not FurC.GetHideUnknown() or not FurC.GetHideKnowledge() then
-			local crafterList = FurC.GetCrafterList(itemLink, recipeArray)
-			if crafterList then
-				stringTable = add(stringTable, tryColorize(crafterList))
-			end
-		end
-		if not isRecipe and (not FurC.GetHideCraftingStation()) then
-			stringTable = add(stringTable, FurC.PrintCraftingStation(itemId, recipeArray))
-		end
-		if isRecipe or recipeArray.origin == FURC_CRAFTING then
-			stringTable = add(stringTable, FurC.getRecipeSource(itemId, recipeArray))
-		end
-		-- check if we should show mats
-		if not (FurC.GetHideMats() or isRecipe) then
-			stringTable = add(stringTable, FurC.GetMats(itemLink, recipeArray, true):gsub(", ", "\n"))
-		end
-	else
-		if not FurC.GetHideSource() then
-			stringTable = add(stringTable, FurC.GetItemDescription(itemId, recipeArray))
-		end
-		stringTable = add(stringTable, recipeArray.achievement)
-	end
-
-	if #stringTable == 0 then return end
-
-	control:AddVerticalPadding(8)
-	ZO_Tooltip_AddDivider(control)
-
-	for i = 1, #stringTable do
-		control:AddLine(zo_strformat("<<C:1>>", stringTable[i]))
-	end
+  itemId     = FurC.GetItemId(itemLink)
+  recipeArray = FurC.Find(itemLink)
+
+  -- |H0:item:118206:5:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0|h|h
+
+  if not recipeArray then return end
+
+
+  local unknown   = not FurC.CanCraft(itemId, recipeArray)
+  local stringTable = {}
+
+
+  local function add(t, arg)
+    if nil ~= arg then t[#t + 1] = arg end
+    return t
+  end
+
+  -- if craftable:
+  if isRecipe or recipeArray.origin == FURC_CRAFTING then
+    if unknown and not FurC.GetHideUnknown() or not FurC.GetHideKnowledge() then
+      local crafterList = FurC.GetCrafterList(itemLink, recipeArray)
+      if crafterList then
+        stringTable = add(stringTable, tryColorize(crafterList))
+      end
+    end
+    if not isRecipe and (not FurC.GetHideCraftingStation()) then
+      stringTable = add(stringTable, FurC.PrintCraftingStation(itemId, recipeArray))
+    end
+    if isRecipe then
+      stringTable = add(stringTable, FurC.getRecipeSource(itemId, recipeArray))
+    end
+    -- check if we should show mats
+    if not (FurC.GetHideMats() or isRecipe) then
+      stringTable = add(stringTable, FurC.GetMats(itemLink, recipeArray, true):gsub(", ", "\n"))
+    end
+  else
+    if not FurC.GetHideSource() then
+      stringTable = add(stringTable, FurC.GetItemDescription(itemId, recipeArray))
+    end
+    stringTable = add(stringTable, recipeArray.achievement)
+  end
+
+  if #stringTable == 0 then return end
+
+  control:AddVerticalPadding(8)
+  ZO_Tooltip_AddDivider(control)
+
+  for i = 1, #stringTable do
+    control:AddLine(zo_strformat("<<C:1>>", stringTable[i]))
+  end

 end

 local function TooltipHook(tooltipControl, method, linkFunc)
-	local origMethod = tooltipControl[method]
+  local origMethod = tooltipControl[method]

-	tooltipControl[method] = function(self, ...)
-		origMethod(self, ...)
-		addTooltipData(self, linkFunc(...))
-	end
+  tooltipControl[method] = function(self, ...)
+    origMethod(self, ...)
+    addTooltipData(self, linkFunc(...))
+  end
 end

 local function ReturnItemLink(itemLink)
-	return FurC.GetItemLink(itemLink)
+  return FurC.GetItemLink(itemLink)
 end

 do
-	local identifier = FurC.name .. "Tooltips"
-	-- hook real late
-	local function HookToolTips()
-		EVENT_MANAGER:UnregisterForUpdate(identifier)
-		TooltipHook(ItemTooltip, 	"SetBagItem", 				GetItemLink)
-		TooltipHook(ItemTooltip, 	"SetTradeItem", 			GetTradeItemLink)
-		TooltipHook(ItemTooltip, 	"SetBuybackItem",			GetBuybackItemLink)
-		TooltipHook(ItemTooltip, 	"SetStoreItem", 			GetStoreItemLink)
-		TooltipHook(ItemTooltip, 	"SetAttachedMailItem", 		GetAttachedItemLink)
-		TooltipHook(ItemTooltip, 	"SetLootItem", 				GetLootItemLink)
-		TooltipHook(ItemTooltip, 	"SetTradingHouseItem", 		GetTradingHouseSearchResultItemLink)
-		TooltipHook(ItemTooltip, 	"SetTradingHouseListing", 	GetTradingHouseListingItemLink)
-		TooltipHook(ItemTooltip, 	"SetLink", 					ReturnItemLink)
-		TooltipHook(PopupTooltip, 	"SetLink", 					ReturnItemLink)
-	end
-	-- hook late
-	local function DeferHookToolTips()
-		EVENT_MANAGER:UnregisterForEvent(identifier, EVENT_PLAYER_ACTIVATED)
-		EVENT_MANAGER:RegisterForUpdate(identifier, 100, HookToolTips)
-	end
-	function FurC.CreateTooltips()
-		EVENT_MANAGER:RegisterForEvent(identifier, EVENT_PLAYER_ACTIVATED, DeferHookToolTips)
-	end
+  local identifier = FurC.name .. "Tooltips"
+  -- hook real late
+  local function HookToolTips()
+    EVENT_MANAGER:UnregisterForUpdate(identifier)
+    TooltipHook(ItemTooltip,   "SetBagItem",         GetItemLink)
+    TooltipHook(ItemTooltip,   "SetTradeItem",       GetTradeItemLink)
+    TooltipHook(ItemTooltip,   "SetBuybackItem",      GetBuybackItemLink)
+    TooltipHook(ItemTooltip,   "SetStoreItem",       GetStoreItemLink)
+    TooltipHook(ItemTooltip,   "SetAttachedMailItem",     GetAttachedItemLink)
+    TooltipHook(ItemTooltip,   "SetLootItem",         GetLootItemLink)
+    TooltipHook(ItemTooltip,   "SetTradingHouseItem",     GetTradingHouseSearchResultItemLink)
+    TooltipHook(ItemTooltip,   "SetTradingHouseListing",   GetTradingHouseListingItemLink)
+    TooltipHook(ItemTooltip,   "SetLink",           ReturnItemLink)
+    TooltipHook(PopupTooltip,   "SetLink",           ReturnItemLink)
+  end
+  -- hook late
+  local function DeferHookToolTips()
+    EVENT_MANAGER:UnregisterForEvent(identifier, EVENT_PLAYER_ACTIVATED)
+    EVENT_MANAGER:RegisterForUpdate(identifier, 100, HookToolTips)
+  end
+  function FurC.CreateTooltips()
+    EVENT_MANAGER:RegisterForEvent(identifier, EVENT_PLAYER_ACTIVATED, DeferHookToolTips)
+  end
 end
diff --git a/FurCUtil.lua b/FurCUtil.lua
index 8b7f6b7..8e36d04 100644
--- a/FurCUtil.lua
+++ b/FurCUtil.lua
@@ -1,40 +1,40 @@
-local p 		= FurC.DebugOut -- debug function calling zo_strformat with up to 10 args
+local p     = FurC.DebugOut -- debug function calling zo_strformat with up to 10 args

 -- ruthlessly stolen from TextureIt
 function FurC.SortTable(tTable, sortKey, SortOrderUp)
-	local keys = {}
-	for k in pairs(tTable) do table.insert(keys, k) end
-	table.sort(keys, function(a, b)
-		if nil == tTable[a] or nil == tTable[b] then
+  local keys = {}
+  for k in pairs(tTable) do table.insert(keys, k) end
+  table.sort(keys, function(a, b)
+    if nil == tTable[a] or nil == tTable[b] then

-		elseif nil == tTable[a][sortKey] then
+    elseif nil == tTable[a][sortKey] then
             return false
-			-- d(tTable[a])
-		elseif nil == tTable[b][sortKey] then
+      -- d(tTable[a])
+    elseif nil == tTable[b][sortKey] then
             return true
-			-- d(tTable[b])
-		else
-			if SortOrderUp then
-				return tTable[a][sortKey] > tTable[b][sortKey]
-			else
-				return tTable[a][sortKey] < tTable[b][sortKey]
-			end
-		end
+      -- d(tTable[b])
+    else
+      if SortOrderUp then
+        return tTable[a][sortKey] > tTable[b][sortKey]
+      else
+        return tTable[a][sortKey] < tTable[b][sortKey]
+      end
+    end

-	end)
+  end)

-	local ret = {}
-	local scannedLinks = {}
-	local itemLink, entry
-	for _, k in ipairs(keys) do
-		entry = tTable[k]
-		-- d(entry)
-		itemLink = entry["itemLink"]
-		ingredients = entry["ingredients"]
-		local index = scannedLinks[itemLink] or k
+  local ret = {}
+  local scannedLinks = {}
+  local itemLink, entry
+  for _, k in ipairs(keys) do
+    entry = tTable[k]
+    -- d(entry)
+    itemLink = entry["itemLink"]
+    ingredients = entry["ingredients"]
+    local index = scannedLinks[itemLink] or k

-		table.insert(ret, entry)
-	end
+    table.insert(ret, entry)
+  end

-	return ret
+  return ret
 end
diff --git a/FurnitureCatalogue.txt b/FurnitureCatalogue.txt
index 02d3752..8a43b68 100644
--- a/FurnitureCatalogue.txt
+++ b/FurnitureCatalogue.txt
@@ -1,35 +1,19 @@
 ## Title: FurnitureCatalogue
 ## Author: manavortex
-## Version: 2.7
-## APIVersion: 100024 100025
+## AddonVersion: 3.1
+## Version: 3.1
+## APIVersion: 10025 10026
 ## SavedVariables: FurnitureCatalogue_Settings
+## DependsOn: LibStub LibCustomMenu LibAddonMenu-2.0 LibAsync
 ## OptionalDependsOn: pChat

-libs\LibStub\LibStub.lua
-libs\LibAsync\LibAsync.lua
 libs\LibCustomTitles\LibCustomTitles.lua
-libs\LibCustomMenu\LibCustomMenu.lua
-libs\LibAddonMenu-2.0\LibAddonMenu-2.0.lua
-libs\LibAddonMenu-2.0\controls\panel.lua
-libs\LibAddonMenu-2.0\controls\submenu.lua
-libs\LibAddonMenu-2.0\controls\button.lua
-libs\LibAddonMenu-2.0\controls\checkbox.lua
-libs\LibAddonMenu-2.0\controls\colorpicker.lua
-libs\LibAddonMenu-2.0\controls\custom.lua
-libs\LibAddonMenu-2.0\controls\description.lua
-libs\LibAddonMenu-2.0\controls\dropdown.lua
-libs\LibAddonMenu-2.0\controls\editbox.lua
-libs\LibAddonMenu-2.0\controls\header.lua
-libs\LibAddonMenu-2.0\controls\slider.lua
-libs\LibAddonMenu-2.0\controls\texture.lua
-libs\LibAddonMenu-2.0\controls\iconpicker.lua
-libs\LibAddonMenu-2.0\controls\divider.lua

 locale\en.lua
 locale\$(language).lua

 xml\Bindings.xml
-xml\FurnitureCatalogue.xml
+xml\FurnitureCatalogue_$(APIVersion).xml

 startup.lua

@@ -42,6 +26,7 @@ data\01_Homestead\H_Recipes.lua
 data\03_Reach\HotR_Recipes.lua
 data\04_Clockwork\CC_Recipes.lua
 data\05_Dragonbones\DragonB_Recipes.lua
+data\06_2018\2018_Recipes.lua

 data\01_Homestead\H_Cyrodiil.lua

@@ -51,6 +36,7 @@ data\02_Morrowind\M_AchievementVendors.lua
 data\03_Reach\HotR_AchievementVendors.lua
 data\04_Clockwork\CC_AchievementVendors.lua
 data\05_Dragonbones\AchievementVendors.lua
+data\06_2018\AchievementVendors.lua

 data\LuxuryFurnisher.lua
 data\01_Homestead\H_LuxuryFurnisher.lua
@@ -58,8 +44,10 @@ data\02_Morrowind\M_LuxuryFurnisher.lua
 data\03_Reach\HotR_LuxuryFurnisher.lua
 data\04_Clockwork\CC_LuxuryFurnisher.lua
 data\05_Dragonbones\DragonB_LuxuryFurnisher.lua
+data\06_2018\LuxuryFurnisher.lua

 data\01_Homestead\H_Rolis.lua
+data\03_Reach\HotR_Rolis.lua
 data\Rolis.lua

 data\01_Homestead\H_EventItems.lua
@@ -68,13 +56,13 @@ data\EventItems.lua

 data\MiscItemSources.lua
 data\Recipes.lua
+data\RecipeSources.lua
+data\06_2018\RumourRecipes.lua

 data\RumourRecipes.lua

 data\$(APIVersion).lua

-data\RecipeSources.lua
-
 FurCUtil.lua

 FurCDatabaseQuery.lua
diff --git a/FurnitureCatalogue_DevUtility/00_startup.lua b/FurnitureCatalogue_DevUtility/00_startup.lua
index 14deaba..90727ff 100644
--- a/FurnitureCatalogue_DevUtility/00_startup.lua
+++ b/FurnitureCatalogue_DevUtility/00_startup.lua
@@ -20,21 +20,21 @@ local active = string.find(GetWorldName(), "PTS")

 local function p(output, a1, a2, a3, a4, a5)

-	if a5 then
-		d(zo_strformat(output, a1, a2, a3, a4, a5))
-	elseif a4 then
-		d(zo_strformat(output, a1, a2, a3, a4))
-	elseif a3 then
-		d(zo_strformat(output, a1, a2, a3))
-	elseif a2 then
-		d(zo_strformat(output, a1, a2))
-	elseif a1 then
-		d(zo_strformat(output, a1))
-	elseif output then
-		d(zo_strformat(output))
-	else
-		d("\n")
-	end
+  if a5 then
+    d(zo_strformat(output, a1, a2, a3, a4, a5))
+  elseif a4 then
+    d(zo_strformat(output, a1, a2, a3, a4))
+  elseif a3 then
+    d(zo_strformat(output, a1, a2, a3))
+  elseif a2 then
+    d(zo_strformat(output, a1, a2))
+  elseif a1 then
+    d(zo_strformat(output, a1))
+  elseif output then
+    d(zo_strformat(output))
+  else
+    d("\n")
+  end
 end
 this.p          = p

@@ -70,7 +70,7 @@ SLASH_COMMANDS["/furcdev"] = slash_cmd

 function FurCDevUtility_Initialize(eventCode, addonName)

-	if addonName ~= this.name then return end
+  if addonName ~= this.name then return end
     this.textbox = FurCDevControlBox
     this.textbox:SetMaxInputChars(3000)
     this.InitRightclickMenu()
diff --git a/FurnitureCatalogue_DevUtility/Bindings.xml b/FurnitureCatalogue_DevUtility/Bindings.xml
index 26c8274..3783365 100644
--- a/FurnitureCatalogue_DevUtility/Bindings.xml
+++ b/FurnitureCatalogue_DevUtility/Bindings.xml
@@ -3,8 +3,8 @@
         <Category name="Furniture Catalogue Dev">
             <Action name="FURC_CONCAT_TO_TEXTBOX">
                 <Down>
-					FurnitureCatalogueDevUtility_AddToTextbox()
-				</Down>
+          FurnitureCatalogueDevUtility_AddToTextbox()
+        </Down>
             </Action>
         </Category>
     </Layer>
diff --git a/FurnitureCatalogue_DevUtility/ContextMenu.lua b/FurnitureCatalogue_DevUtility/ContextMenu.lua
index e9a21ed..b233b8c 100644
--- a/FurnitureCatalogue_DevUtility/ContextMenu.lua
+++ b/FurnitureCatalogue_DevUtility/ContextMenu.lua
@@ -41,19 +41,18 @@ function this.onTextboxTextChanged()
     this.clearControl()
 end

-local s3             = "   "
+local s2             = "  "
 local s4             = "    "
-local s8             = "        "
--- local s_default            = (s4 .. "[%d] = GetString(SI_FURC_EXISITING_ITEMSOURCE_UNKNOWN_YET)," .. s4 .. "-- %s\n")
-local s_default            = (s4 .. "[%d] = getCrownStorePrice(99)," .. s8 .. "   " .. "-- %s")
-local s_withPrice          = (s4 .. "[%d] = {" .. s8 .. "-- %s\n" .. s8 ..
-                                            "itemPrice" .. s3 .. "= %d,\n" .. s4 ..
+-- local s_default            = (s2 .. "[%d] = GetString(SI_FURC_EXISITING_ITEMSOURCE_UNKNOWN_YET)," .. s2 .. "-- %s\n")
+local s_default            = (s2 .. "[%d] = getCrownPrice(99)," .. s4 .. "   " .. "-- %s")
+local s_withPrice          = (s2 .. "[%d] = {" .. s4 .. "-- %s\n" .. s4 ..
+                                            "itemPrice   = %d,\n" .. s2 ..
                                            "},")
-local s_withAchievement    = (s4 .. "[%d] = {" .. s8 .. "--%s\n" .. s8 ..
-                                                "itemPrice" .. s3 .. "= %d,\n" .. s8 ..
-                                                "achievement = 0,\n" .. s4 ..
+local s_withAchievement    = (s2 .. "[%d] = {" .. s4 .. "--%s\n" .. s4 ..
+                                                "itemPrice   = %d,\n" .. s4 ..
+                                                "achievement = 0,\n" .. s2 ..
                                             "},")
-local s_forRecipe          = (s4 .. "%d, -- %s")
+local s_forRecipe          = (s2 .. "%d, -- %s")

 local function makeOutput()
     if not isMana   then return end
@@ -61,64 +60,65 @@ local function makeOutput()
     local isRecipe      = IsItemLinkFurnitureRecipe(cachedItemLink)
     local debugString   = (isRecipe and s_forRecipe) or s_default

-    cachedName          = cachedName or GetItemLinkName(cachedItemLink) or ""
+    cachedName          = cachedName or GetItemLinkName(cachedItemLink)

     if 0 < (cachedPrice or 0)           then debugString = s_withPrice end
     if not (cachedCanBuy or isRecipe)   then debugString = s_withAchievement  end

     if #(textbox:GetText() or "") == 0 then
-        debugString = debugString:sub(5, #debugString)
+        debugString = debugString:sub(#s2+1, #debugString)
     end
-    local itemId = GetItemLinkItemId(cachedItemLink) or 0
-	return string.format(debugString .. "\n", itemId, (cachedName or 0), (cachedPrice or 0))
+
+    return string.format(debugString .. "\n", tonumber(FurC.GetItemId(cachedItemLink)), cachedName, tonumber(cachedPrice))
 end

 local function isItemIdCached()
     local itemId = FurC.GetItemId(cachedItemLink)
-	if not itemId then return false end
     if cachedItemIds[itemId] then return true end
     cachedItemIds[itemId] = true
     return false
 end

 local function concatToTextbox(itemId)
+
     if (not isMana) or isItemIdCached() then return end
     local textSoFar = this.textbox:GetText() or ""
     this.textbox:SetText(textSoFar .. makeOutput())
     showTextbox()
 end
-local function idToChat(itemId)
-	d("idToChat " .. itemId)
-	d(itemId)
-	FurC.ToChat(itemId, true)
+function this.concatToTextbox (itemId)
+    if itemId then
+        cachedItemLink  = FurC.GetItemLink(itemId)
+        cachedCanBuy    = true
+        cachedName      = GetItemLinkName(cachedItemLink)
+        cachedPrice     = 0
+    end
+    concatToTextbox()
 end

+
 local function doNothing() return end

 local S_ADD_TO_BOX  = "Add data to textbox"
-local S_ID_TO_CHAT  = "ID to chat"
 local S_DIVIDER     = "-"
 local function addMenuItems()
-	AddCustomMenuItem(S_DIVIDER,    doNothing,		 MENU_ADD_OPTION_LABEL)
-	AddCustomMenuItem(S_ADD_TO_BOX,	concatToTextbox, MENU_ADD_OPTION_LABEL)
-	AddCustomMenuItem(S_ID_TO_CHAT,	idToChat, 		 MENU_ADD_OPTION_LABEL)
+  AddCustomMenuItem(S_DIVIDER,    doNothing, MENU_ADD_OPTION_LABEL)
+  AddCustomMenuItem(S_ADD_TO_BOX, concatToTextbox, MENU_ADD_OPTION_LABEL)
 end


-function FurCDevControl_HandleClickEvent(itemLink, button, control)		-- button being mouseButton here
+function FurCDevControl_HandleClickEvent(itemLink, button, control)    -- button being mouseButton here
     if not isMana   then return end

     if (type(itemLink) == 'string' and #itemLink > 0) then
-		cachedItemLink = itemLink
-		cachedName = GetItemLinkName(itemLink)
-		local handled = LINK_HANDLER:FireCallbacks(LINK_HANDLER.LINK_MOUSE_UP_EVENT, itemLink, button, ZO_LinkHandler_ParseLink(itemLink))
-		if (not handled) then
-			FurCDevControl_LinkHandlerBackup_OnLinkMouseUp(itemLink, button, control)
+    local handled = LINK_HANDLER:FireCallbacks(LINK_HANDLER.LINK_MOUSE_UP_EVENT, itemLink, button, ZO_LinkHandler_ParseLink(itemLink))
+    if (not handled) then
+      FurCDevControl_LinkHandlerBackup_OnLinkMouseUp(itemLink, button, control)
         -- end
-			if (button == 2 and itemLink and #itemLink > 0) then
-				addMenuItems()
-			end
-			ShowMenu(control)
+      if (button == 2 and itemLink and #itemLink > 0) then
+        addMenuItems()
+      end
+      ShowMenu(control)
         end
     end
 end
@@ -129,12 +129,12 @@ function FurCDevControl_HandleInventoryContextMenu(control)
     control = control or moc()
     local name, price, canBuy, currencyQuantity1, currencyQuantity2

-	local st = ZO_InventorySlot_GetType(control)
+  local st = ZO_InventorySlot_GetType(control)
     cachedItemLink = nil
     if st == SLOT_TYPE_ITEM
-	or st == SLOT_TYPE_BANK_ITEM
-	or st == SLOT_TYPE_GUILD_BANK_ITEM
-	or st == SLOT_TYPE_TRADING_HOUSE_POST_ITEM then
+  or st == SLOT_TYPE_BANK_ITEM
+  or st == SLOT_TYPE_GUILD_BANK_ITEM
+  or st == SLOT_TYPE_TRADING_HOUSE_POST_ITEM then
         local bagId, slotId = ZO_Inventory_GetBagAndIndex(control)
         cachedItemLink = GetItemLink(bagId, slotId, linkStyle)
         name     = GetItemLinkName(cachedItemLink)
@@ -153,10 +153,10 @@ function FurCDevControl_HandleInventoryContextMenu(control)

     if not FurC.Find(cachedItemLink) then return end

-	zo_callLater(function()
-		addMenuItems()
-		ShowMenu()
-	end, 80)
+  zo_callLater(function()
+    addMenuItems()
+    ShowMenu()
+  end, 80)


 end
@@ -164,28 +164,28 @@ end
 function this.OnControlMouseUp(control, button)
     if not isMana   then return end

-	if (not control) or button ~= 2 then return end
+  if (not control) or button ~= 2 then return end

-	if not control.itemLink or #control.itemLink == 0 then return end
+  if not control.itemLink or #control.itemLink == 0 then return end

     cachedItemLink  = control.itemLink
-    d(cachedItemLink)
-	zo_callLater(function()
-		ItemTooltip:SetHidden(true)
-		ClearMenu()
-		addMenuItems()
-		ShowMenu()
-	end, 50)
+
+  zo_callLater(function()
+    ItemTooltip:SetHidden(true)
+    ClearMenu()
+    addMenuItems()
+    ShowMenu()
+  end, 50)

 end

 function this.InitRightclickMenu()
     if not isMana   then return end
-	FurCDevControl_LinkHandlerBackup_OnLinkMouseUp = ZO_LinkHandler_OnLinkMouseUp
-	ZO_LinkHandler_OnLinkMouseUp = function(itemLink, button, control)
+  FurCDevControl_LinkHandlerBackup_OnLinkMouseUp = ZO_LinkHandler_OnLinkMouseUp
+  ZO_LinkHandler_OnLinkMouseUp = function(itemLink, button, control)
         FurCDevControl_HandleClickEvent(itemLink, button, control)
     end
-	ZO_PreHook('ZO_InventorySlot_ShowContextMenu', function(rowControl)
-		FurCDevControl_HandleInventoryContextMenu(rowControl)
-	end)
+  ZO_PreHook('ZO_InventorySlot_ShowContextMenu', function(rowControl)
+    FurCDevControl_HandleInventoryContextMenu(rowControl)
+  end)
 end
diff --git a/FurnitureCatalogue_DevUtility/FurnitureCatalogue_DevUtility.txt b/FurnitureCatalogue_DevUtility/FurnitureCatalogue_DevUtility.txt
index 8eb4dd7..e2e0a45 100644
--- a/FurnitureCatalogue_DevUtility/FurnitureCatalogue_DevUtility.txt
+++ b/FurnitureCatalogue_DevUtility/FurnitureCatalogue_DevUtility.txt
@@ -2,7 +2,7 @@
 ## Author: manavortex
 ## Description: This is a utility addon that helps me generate text entries for the data files. It won't do anything if you're not me, so feel free to unload it.\nYou're welcome to get in touch if you want to use this, then I can add you to the list.
 ## Version: 1.0.0
-## APIVersion: 100023
+## APIVersion: 10025 10026
 ## DependsOn: FurnitureCatalogue

 Bindings.xml
diff --git a/FurnitureCatalogue_DevUtility/xml.xml b/FurnitureCatalogue_DevUtility/xml.xml
index e4553d9..e3c8e44 100644
--- a/FurnitureCatalogue_DevUtility/xml.xml
+++ b/FurnitureCatalogue_DevUtility/xml.xml
@@ -1,29 +1,29 @@
 <GuiXml>
-	<Controls>
-		<TopLevelControl name="FurCDevControl" clampedToScreen="true"  movable="true" mouseEnabled="true" hidden="true" resizeHandleSize="10">
-			<Dimensions x="600" y="500"/>
-			<Anchor point="CENTER" relativeTo="GUI_ROOT" relativePoint="CENTER" offsetX="-125" offsetY="-140" />
-			<Controls>
-				<Backdrop name="$(parent)_BG" inherits="ZO_DefaultBackdrop"><AnchorFill/></Backdrop>
+  <Controls>
+    <TopLevelControl name="FurCDevControl" clampedToScreen="true"  movable="true" mouseEnabled="true" hidden="true" resizeHandleSize="10">
+      <Dimensions x="600" y="500"/>
+      <Anchor point="CENTER" relativeTo="GUI_ROOT" relativePoint="CENTER" offsetX="-125" offsetY="-140" />
+      <Controls>
+        <Backdrop name="$(parent)_BG" inherits="ZO_DefaultBackdrop"><AnchorFill/></Backdrop>
                 <Button name="$(parent)_hide" inherits="ZO_ButtonBehaviorClickSound" >
                     <OnClicked>FurCDevUtility.setHidden(true)</OnClicked>
-                    <Dimensions x="30" y="30" />
+                    <Dimensions x="30" y="30" />
                     <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="10" offsetY="10"  />
                     <Textures
-                        normal		="/esoui/art/buttons/decline_up.dds"
-                        pressed		="/esoui/art/buttons/decline_down.dds"
-                        mouseOver	="/esoui/art/buttons/decline_over.dds"
-                     />
+                        normal    ="/esoui/art/buttons/decline_up.dds"
+                        pressed    ="/esoui/art/buttons/decline_down.dds"
+                        mouseOver  ="/esoui/art/buttons/decline_over.dds"
+                     />
                 </Button>
                 <Button name="$(parent)_clear" inherits="ZO_ButtonBehaviorClickSound" >
                     <OnClicked>FurCDevUtility.clearControl()</OnClicked>
-                    <Dimensions x="40" y="40" />
+                    <Dimensions x="40" y="40" />
                     <Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT"  offsetX="-10" offsetY="10" />
                     <Textures
-                        normal		="/esoui/art/help/help_tabicon_feedback_up.dds"
-                        pressed		="/esoui/art/help/help_tabicon_feedback_down.dds "
-                        mouseOver	="/esoui/art/help/help_tabicon_feedback_over.dds"
-                     />
+                        normal    ="/esoui/art/help/help_tabicon_feedback_up.dds"
+                        pressed    ="/esoui/art/help/help_tabicon_feedback_down.dds "
+                        mouseOver  ="/esoui/art/help/help_tabicon_feedback_over.dds"
+                     />
                 </Button>

                 <EditBox name="$(parent)Box" inherits="ZO_DefaultEditMultiLine ZO_DefaultEditForDarkBackdrop" >
diff --git a/FurnitureCatalogue_Export/FurCDataExport.lua b/FurnitureCatalogue_Export/FurCDataExport.lua
index 77d218f..96f2e94 100644
--- a/FurnitureCatalogue_Export/FurCDataExport.lua
+++ b/FurnitureCatalogue_Export/FurCDataExport.lua
@@ -1,49 +1,49 @@
-FurnitureCatalogue_Export 		= {}
-FurCExport 						= FurnitureCatalogue_Export
+FurnitureCatalogue_Export     = {}
+FurCExport             = FurnitureCatalogue_Export


-local defaults 					= {
+local defaults           = {
 }


 local function getSortTable(tbl)
-	list = {}
-	for name,	value in pairs(tbl) do
-		list[#list+1] = name
-	end
-	table.sort(list)
-	return list
+  list = {}
+  for name,  value in pairs(tbl) do
+    list[#list+1] = name
+  end
+  table.sort(list)
+  return list
 end

 function FurCExport.Export()
-
-	local itemNames = {}
-	local itemName
-	for itemId, recipeArray in pairs(FurC.settings.data) do
-		if recipeArray.origin == FURC_CRAFTING then
-			itemNames[GetItemLinkName(FurC.GetItemLink(itemId))] = FurC.GetItemLink(itemId)
-		end
-	end
-
-	local tkeys = getSortTable(itemNames)
-	local exportKnown = {}
-	local exportUnknown = {}
-	for key, itemName in pairs(tkeys) do
-		local itemLink = itemNames[itemName]
-		local recipeArray = FurC.Find(itemLink)
-		local known = FurC.IsAccountKnown(itemLink, recipeArray)
-
-		local exportArray = (known and exportKnown) or exportUnknown
-		local mats = FurC.GetMats(itemLink, recipeArray, false, true)
-		local knowledge = (known and (FurC.GetCrafterList(itemLink, recipeArray) .. ": "):gsub("Can be crafted by ", "")) or ""
-		local exportString = zo_strformat("<<1>><<2>>", knowledge, mats)
-		exportArray[itemName] = exportString
-	end
-
-	FurCExport.settings.known 		= exportKnown
-	FurCExport.settings.unknown 	= exportUnknown
-	ReloadUI()
-
+
+  local itemNames = {}
+  local itemName
+  for itemId, recipeArray in pairs(FurC.settings.data) do
+    if recipeArray.origin == FURC_CRAFTING then
+      itemNames[GetItemLinkName(FurC.GetItemLink(itemId))] = FurC.GetItemLink(itemId)
+    end
+  end
+
+  local tkeys = getSortTable(itemNames)
+  local exportKnown = {}
+  local exportUnknown = {}
+  for key, itemName in pairs(tkeys) do
+    local itemLink = itemNames[itemName]
+    local recipeArray = FurC.Find(itemLink)
+    local known = FurC.IsAccountKnown(itemLink, recipeArray)
+
+    local exportArray = (known and exportKnown) or exportUnknown
+    local mats = FurC.GetMats(itemLink, recipeArray, false, true)
+    local knowledge = (known and (FurC.GetCrafterList(itemLink, recipeArray) .. ": "):gsub("Can be crafted by ", "")) or ""
+    local exportString = zo_strformat("<<1>><<2>>", knowledge, mats)
+    exportArray[itemName] = exportString
+  end
+
+  FurCExport.settings.known     = exportKnown
+  FurCExport.settings.unknown   = exportUnknown
+  ReloadUI()
+
 end

 SLASH_COMMANDS["/furcexport"] = function() FurCExport.Export() end
@@ -51,11 +51,11 @@ SLASH_COMMANDS["/furcexport"] = function() FurCExport.Export() end

 -- initialization stuff
 function FurCExport_Initialize(eventCode, addOnName)
-	if (addOnName ~= "FurnitureCatalogue_Export") then return end
-
-	FurCExport.settings 	= ZO_SavedVars:NewAccountWide("FurnitureCatalogue_Export", nil, 0, defaults)
-	FurCExport.makeSettings()
-	EVENT_MANAGER:UnregisterForEvent("FurnitureCatalogue_Export", EVENT_ADD_ON_LOADED)
+  if (addOnName ~= "FurnitureCatalogue_Export") then return end
+
+  FurCExport.settings   = ZO_SavedVars:NewAccountWide("FurnitureCatalogue_Export", nil, 0, defaults)
+  FurCExport.makeSettings()
+  EVENT_MANAGER:UnregisterForEvent("FurnitureCatalogue_Export", EVENT_ADD_ON_LOADED)
 end


diff --git a/FurnitureCatalogue_Export/FurCDataExport_Menu.lua b/FurnitureCatalogue_Export/FurCDataExport_Menu.lua
index f20166d..6f1ce05 100644
--- a/FurnitureCatalogue_Export/FurCDataExport_Menu.lua
+++ b/FurnitureCatalogue_Export/FurCDataExport_Menu.lua
@@ -1,41 +1,41 @@
 function FurCExport.makeSettings()
-
-	local settings = FurCExport.settings
+
+  local settings = FurCExport.settings

-	local LAM = LibStub:GetLibrary("LibAddonMenu-2.0")
-	local panelData = {
-		type = "panel",
-		name = "FurnitureCatalogue_Export",
-		displayName = "FurnitureCatalogue Export",
-	 	author = "manavortex",
-		version = "1.0.0",
-		registerForRefresh = true,
-		registerForDefaults = true,
-	}
+  local LAM = LibStub:GetLibrary("LibAddonMenu-2.0")
+  local panelData = {
+    type = "panel",
+    name = "FurnitureCatalogue_Export",
+    displayName = "FurnitureCatalogue Export",
+     author = "manavortex",
+    version = "1.0.0",
+    registerForRefresh = true,
+    registerForDefaults = true,
+  }

-	LAM:RegisterAddonPanel("FurnitureCatalogueExport_OptionsPanel", panelData)
-	local optionsData = { -- optionsData
-
-
-		{ -- description
-			type = "description",
-			name = "FurnitureCatalogue Export",
-			text = (
-				"After an UI reload, FurnitureCatalogue's database can be found in your \n" ..
-				"SavedVariables folder inside  FurnitureCatalogue_Export.lua \n"
-			),
-		},
-		{ -- button: Reset database
-			type = "button",
-			name = "Export data",
-			warning = "This will reload the UI",
-			func = function()
-				FurCExport.Export()
-			end,
-		},
-	}
-
-
-	LAM:RegisterOptionControls("FurnitureCatalogueExport_OptionsPanel", optionsData)
+  LAM:RegisterAddonPanel("FurnitureCatalogueExport_OptionsPanel", panelData)
+  local optionsData = { -- optionsData
+
+
+    { -- description
+      type = "description",
+      name = "FurnitureCatalogue Export",
+      text = (
+        "After an UI reload, FurnitureCatalogue's database can be found in your \n" ..
+        "SavedVariables folder inside  FurnitureCatalogue_Export.lua \n"
+      ),
+    },
+    { -- button: Reset database
+      type = "button",
+      name = "Export data",
+      warning = "This will reload the UI",
+      func = function()
+        FurCExport.Export()
+      end,
+    },
+  }
+
+
+  LAM:RegisterOptionControls("FurnitureCatalogueExport_OptionsPanel", optionsData)

 end
\ No newline at end of file
diff --git a/FurnitureCatalogue_Export/FurnitureCatalogue_Export.txt b/FurnitureCatalogue_Export/FurnitureCatalogue_Export.txt
index 6a08b2b..cb6ec80 100644
--- a/FurnitureCatalogue_Export/FurnitureCatalogue_Export.txt
+++ b/FurnitureCatalogue_Export/FurnitureCatalogue_Export.txt
@@ -1,7 +1,7 @@
 ## Title: FurnitureCatalogue_Export
 ## Author: manavortex
 ## Version: 1.0.1
-## APIVersion: 100023
+## APIVersion: 10025 10026
 ## SavedVariables: FurnitureCatalogue_Export
 ## DependsOn: FurnitureCatalogue

diff --git a/data/01_Homestead/H_AchievementVendors.lua b/data/01_Homestead/H_AchievementVendors.lua
index e8e94ab..2eb5103 100644
--- a/data/01_Homestead/H_AchievementVendors.lua
+++ b/data/01_Homestead/H_AchievementVendors.lua
@@ -1,77 +1,77 @@
 FurC.AchievementVendors = FurC.AchievementVendors or {}
-FurC.Books	= FurC.Books or {}
+FurC.Books  = FurC.Books or {}

 function tableMerge(t1, t2)
-	if nil == t2 and nil == t1 then
-		return {}
-	elseif nil == t2 then
-		return t1
-	elseif nil == t1 then
-		return t2
-	end
+  if nil == t2 and nil == t1 then
+    return {}
+  elseif nil == t2 then
+    return t1
+  elseif nil == t1 then
+    return t2
+  end

     for k,v in pairs(t2) do
-		t1[k] = v
+    t1[k] = v
     end
     return t1
 end

 local jesterVendor = {
-	-- tree, Jester's Large
-	[120994]	= {
-		itemPrice 		= 15000,
-		achievement  	= 1723,
-	},
-	-- tree, Jester's Small
-	[118529]	= {
-		itemPrice 		= 5000,
-		achievement  	= 1723,
-	},
-	-- Banner of Mayhem
-	[126720]	= {
-		itemPrice 		= 5000,
-		achievement  	= 1883,
-	},
-	-- Corpse of Mayhem, Argonian
-	[126721]	= {
-		itemPrice 		= 15000,
-		achievement  	= 1888,
-	},
-	-- Corpse of Mayhem, Khajiit
-	[126722]	= {
-		itemPrice 		= 15000,
-		achievement  	= 1888,
-	},
-	-- Corpse of Mayhem, Orc
-	[126723]	= {
-		itemPrice 		= 15000,
-		achievement  	= 1888,
-	},
-	-- Probably-Not-Punch-Bowl of Mayhem
-	[126724]	= {
-		itemPrice 		= 30000,
-		achievement  	= 1892,
-	},
-	-- Stamdard of Mayhem
-	[126719]	= {
-		itemPrice 		= 2500,
-		achievement  	= 1883,
-	},
-	[131433] = { -- Witches Festival, Plunder Skulls
-		itemPrice 	= 10000,
-		-- achievement = 2049,
-	},
+  -- tree, Jester's Large
+  [120994]  = {
+    itemPrice     = 15000,
+    achievement    = 1723,
+  },
+  -- tree, Jester's Small
+  [118529]  = {
+    itemPrice     = 5000,
+    achievement    = 1723,
+  },
+  -- Banner of Mayhem
+  [126720]  = {
+    itemPrice     = 5000,
+    achievement    = 1883,
+  },
+  -- Corpse of Mayhem, Argonian
+  [126721]  = {
+    itemPrice     = 15000,
+    achievement    = 1888,
+  },
+  -- Corpse of Mayhem, Khajiit
+  [126722]  = {
+    itemPrice     = 15000,
+    achievement    = 1888,
+  },
+  -- Corpse of Mayhem, Orc
+  [126723]  = {
+    itemPrice     = 15000,
+    achievement    = 1888,
+  },
+  -- Probably-Not-Punch-Bowl of Mayhem
+  [126724]  = {
+    itemPrice     = 30000,
+    achievement    = 1892,
+  },
+  -- Stamdard of Mayhem
+  [126719]  = {
+    itemPrice     = 2500,
+    achievement    = 1883,
+  },
+  [131433] = { -- Witches Festival, Plunder Skulls
+    itemPrice   = 10000,
+    -- achievement = 2049,
+  },
 }

 local capitalVendor = {

-	[119987] = {		-- Coldharbour Urn
-		itemPrice 	= 5000,
-		achievement = 993,
-	},
+  [119987] = {    -- Coldharbour Urn
+    itemPrice   = 5000,
+    achievement = 993,
+  },
     [120064] = { -- Covenant Hero Shield
        itemPrice    = 10000,
-		achievement = 61,
+    achievement = 61,
     },
     [120037] = { -- Decorative Skyshard
        itemPrice    = 25000,
@@ -91,7 +91,7 @@ local capitalVendor = {
     },
     [120063] = { -- Dominion Hero Shield
        itemPrice    = 10000,
-		achievement = 618,
+    achievement = 618,
     },
     [120043] = { -- Fishing Vessel
        itemPrice    = 25000,
@@ -107,7 +107,7 @@ local capitalVendor = {
     },
     [120065] = { -- Pact Hero Shield
        itemPrice    = 10000,
-		achievement = 617,
+    achievement = 617,
     },
     [120039] = { -- Primal Altar to Hircine
        itemPrice    = 50000,
@@ -158,1068 +158,1068 @@ local capitalVendor = {
 }

 local furnishingVendor = {
-		[120998] = {	-- Block,Wood Cutting
-			itemPrice 	= 100,
-		},
-		[117994] = {	-- Rough Block,Stone Slab
-			itemPrice 	= 100,
-		},
-		[117971] = {	-- Rough Clothesline,Post
-			itemPrice 	= 100,
-		},
-		[117980] = {	-- Rough Firewood,Fireplace
-			itemPrice 	= 100,
-		},
-		[117982] = {	-- Rough Firewood,Stack
-			itemPrice 	= 100,
-		},
-		[117977] = {	-- Rough Stool,Round
-			itemPrice 	= 100,
-		},
-		[117990] = {	-- Tea Table,Carved
-			itemPrice 	= 250,
-		},
+    [120998] = {  -- Block,Wood Cutting
+      itemPrice   = 100,
+    },
+    [117994] = {  -- Rough Block,Stone Slab
+      itemPrice   = 100,
+    },
+    [117971] = {  -- Rough Clothesline,Post
+      itemPrice   = 100,
+    },
+    [117980] = {  -- Rough Firewood,Fireplace
+      itemPrice   = 100,
+    },
+    [117982] = {  -- Rough Firewood,Stack
+      itemPrice   = 100,
+    },
+    [117977] = {  -- Rough Stool,Round
+      itemPrice   = 100,
+    },
+    [117990] = {  -- Tea Table,Carved
+      itemPrice   = 250,
+    },

 }

 local morrowindStones = {
-	[120563] = {	-- Stone,Jagged Grey
-		itemPrice 	= 100 ,
-	},
-	[120570] = {	-- Stone,Slanted Grey
-		itemPrice 	= 100 ,
-	},
-	[120571] = {	-- Pebbles,Stacked Grey
-		itemPrice 	= 100,
-	},
-	[120564] = {	-- Pebbles,Stacked Weathered
-		itemPrice 	= 100 ,
-	},
-	[120572] = {	-- Rocks,Jagged Set
-		itemPrice 	= 100,
-	},
+  [120563] = {  -- Stone,Jagged Grey
+    itemPrice   = 100 ,
+  },
+  [120570] = {  -- Stone,Slanted Grey
+    itemPrice   = 100 ,
+  },
+  [120571] = {  -- Pebbles,Stacked Grey
+    itemPrice   = 100,
+  },
+  [120564] = {  -- Pebbles,Stacked Weathered
+    itemPrice   = 100 ,
+  },
+  [120572] = {  -- Rocks,Jagged Set
+    itemPrice   = 100,
+  },
 }

 local structures = {
-	[117984] = {		-- Rough Block, Dark Stone
-		itemPrice 	= 100,
-	},
-	[117983] = {		-- Rough Block, Light Stone
-		itemPrice 	= 100,
-	},
-	[117995] = {		-- Rough Block, Stone Brick
-		itemPrice 	= 100,
-	},
-	[117993] = {		-- Rough Block, Stone Chunk
-		itemPrice 	= 100,
-	},
-	[117992] = {		-- Rough Block, Stone Section
-		itemPrice 	= 100,
-	},
-	[117994] = {		-- Rough Block, Stone Slab
-		itemPrice 	= 100,
-	},
-
-	[117961] = {		-- Rough Block, Woodcutter's
-		itemPrice 	= 100,
-	},
-
-	[117987] = {		-- Rough Plank, Long
-		itemPrice 	= 100,
-	},
-	[117961] = {		-- Rough Planks, Narrow
-		itemPrice 	= 100,
-	},
-	[117988] = {		-- Rough Planks, Platform
-		itemPrice 	= 100,
-	},
-	[117989] = {		-- Rough Plank, Wide
-		itemPrice 	= 100,
-	},
-	[117973] = {		-- Rough Crate, Dry
-		itemPrice 	= 100,
-	},
+  [117984] = {    -- Rough Block, Dark Stone
+    itemPrice   = 100,
+  },
+  [117983] = {    -- Rough Block, Light Stone
+    itemPrice   = 100,
+  },
+  [117995] = {    -- Rough Block, Stone Brick
+    itemPrice   = 100,
+  },
+  [117993] = {    -- Rough Block, Stone Chunk
+    itemPrice   = 100,
+  },
+  [117992] = {    -- Rough Block, Stone Section
+    itemPrice   = 100,
+  },
+  [117994] = {    -- Rough Block, Stone Slab
+    itemPrice   = 100,
+  },
+
+  [117961] = {    -- Rough Block, Woodcutter's
+    itemPrice   = 100,
+  },
+
+  [117987] = {    -- Rough Plank, Long
+    itemPrice   = 100,
+  },
+  [117961] = {    -- Rough Planks, Narrow
+    itemPrice   = 100,
+  },
+  [117988] = {    -- Rough Planks, Platform
+    itemPrice   = 100,
+  },
+  [117989] = {    -- Rough Plank, Wide
+    itemPrice   = 100,
+  },
+  [117973] = {    -- Rough Crate, Dry
+    itemPrice   = 100,
+  },

 }

 local boxes = {
-	[120998] = {	-- Block,Wood Cutting
-				itemPrice 	= 100,
-	},
-	[117959] = {		-- Rough Container, Shipping
-		itemPrice 	= 100,
-	},
-
-	[117959] = {		-- Rough Box, Slatted
-		itemPrice 	= 100,
-	},
-	[117931] = {		-- Rough Crate Lid
-		itemPrice 	= 100,
-	},
-	[117957] = {		-- Rough Crate, Cracked
-		itemPrice 	= 100,
-	},
-	[117958] = {		-- Rough Crate, Empty
-		itemPrice 	= 100,
-	},
-	[117930] = {		-- Rough Crate, Open
-		itemPrice 	= 100,
-	},
-	[117953] = {		-- Rough Crate, Sealed
-		itemPrice 	= 100,
-	},
-	[117928] = {		-- Rough Crate, Sturdy
-		itemPrice 	= 100,
-	},
+  [120998] = {  -- Block,Wood Cutting
+        itemPrice   = 100,
+  },
+  [117959] = {    -- Rough Container, Shipping
+    itemPrice   = 100,
+  },
+
+  [117959] = {    -- Rough Box, Slatted
+    itemPrice   = 100,
+  },
+  [117931] = {    -- Rough Crate Lid
+    itemPrice   = 100,
+  },
+  [117957] = {    -- Rough Crate, Cracked
+    itemPrice   = 100,
+  },
+  [117958] = {    -- Rough Crate, Empty
+    itemPrice   = 100,
+  },
+  [117930] = {    -- Rough Crate, Open
+    itemPrice   = 100,
+  },
+  [117953] = {    -- Rough Crate, Sealed
+    itemPrice   = 100,
+  },
+  [117928] = {    -- Rough Crate, Sturdy
+    itemPrice   = 100,
+  },
 }

 local laundry = {
-		[117968] = {		-- Rough Clothesline, Full
-			itemPrice 	= 100,
-		},
-		[117970] = {		-- Rough Clothesline, Half
-			itemPrice 	= 100,
-		},
-		[117969] = {		-- Rough Clothesline, Long
-			itemPrice 	= 100,
-		},
-		[117972] = {		-- Rough Clothesline, Short
-			itemPrice 	= 100,
-		},
-		[117971] = {		-- Rough Clothesline, Post
-			itemPrice 	= 100,
-		},
-		[117966] = {		-- Rough Tarp, Oversized
-			itemPrice 	= 100,
-		},
-		[117967] = {		-- Rough Tarp, Standard
-			itemPrice 	= 100,
-		},
+    [117968] = {    -- Rough Clothesline, Full
+      itemPrice   = 100,
+    },
+    [117970] = {    -- Rough Clothesline, Half
+      itemPrice   = 100,
+    },
+    [117969] = {    -- Rough Clothesline, Long
+      itemPrice   = 100,
+    },
+    [117972] = {    -- Rough Clothesline, Short
+      itemPrice   = 100,
+    },
+    [117971] = {    -- Rough Clothesline, Post
+      itemPrice   = 100,
+    },
+    [117966] = {    -- Rough Tarp, Oversized
+      itemPrice   = 100,
+    },
+    [117967] = {    -- Rough Tarp, Standard
+      itemPrice   = 100,
+    },
 }

 local fishing_trip = {

-		[117965] = {		-- Rough Campfire, Doused
-			itemPrice 	= 100,
-		},
-		[117978] = {		-- Rough Rod, Fishing
-			itemPrice 	= 100,
-		},
-		[117979] = {		-- Rough Spear, Fishing
-			itemPrice 	= 100,
-		},
-		[117977] = {		-- Rough Stool, Fishing
-			itemPrice 	= 100,
-		},
+    [117965] = {    -- Rough Campfire, Doused
+      itemPrice   = 100,
+    },
+    [117978] = {    -- Rough Rod, Fishing
+      itemPrice   = 100,
+    },
+    [117979] = {    -- Rough Spear, Fishing
+      itemPrice   = 100,
+    },
+    [117977] = {    -- Rough Stool, Fishing
+      itemPrice   = 100,
+    },


 }

 local bookList = {
-	[120197] = { -- 16 accords of madness, vol vi
-		itemPrice = 500,
-	},
-	[120121] = { -- The Glenmoril Wyrd
-		itemPrice = 500,
-	},
-	[120112] = { -- Legend of the fallen drotto
-		itemPrice = 500,
-	},
-	[120115] = { -- The Posting of the hunt
-		itemPrice = 500,
-	},
-	[120117] = { -- The Viridian Sentinel
-		itemPrice = 500,
-	},
-	[120120] = { -- Ancient Scrolls of the Dwemer IV
-		itemPrice = 500,
-	},
-	[120181] = { -- Antecedent of Dwemer Law
-		itemPrice = 500,
-	},
-	[120116] = { -- Aspects of Lord Hircine
-		itemPrice = 500,
-	},
-	[120114] = { -- Bangkorai, Shield of High Rock
-		itemPrice = 500,
-	},
-	[120104] = { -- Bloodfiends of Rivenspire
-		itemPrice = 500,
-	},
-	[120132] = { -- Circus of Cheerful Slaughter
-		itemPrice = 5000,
-	},
-	[120186] = { -- Dwemer Inquiries, Vol I
-		itemPrice = 500,
-	},
-	[120187] = { -- Dwemer Inquiries, Vol II
-		itemPrice = 500,
-	},
-	[120188] = { -- Dwemer Inquiries, Vol III
-		itemPrice = 500,
-	},
-	[120106] = { -- House-Folk of Silverhoof
-		itemPrice = 500,
-	},
-	[120111] = { -- House Ravenwatch Proclamation
-		itemPrice = 500,
-	},
-	[120108] = { -- House Tamrith - A recent history
-		itemPrice = 500,
-	},
-	[120113] = { -- Living with Lycantrophy
-		itemPrice = 500,
-	},
-	[120194] = { -- Myths of Sheogorath, Vol 1
-		itemPrice = 500,
-	},
-	[120110] = { -- Myths of Sheogorath, Vol 2
-		itemPrice = 500,
-	},
-	[120195] = { -- Myths of Sheogorath, Vol 2
-		itemPrice = 500,
-	},
-	[120236] = { -- Proper Life: Three CHants
-		itemPrice = 500,
-	},
-	[120133] = { -- Robier's Vegetable Garden
-		itemPrice = 5000,
-	},
-	[120109] = { -- Shornhelm, city of the north
-		itemPrice = 500,
-	},
-	[120102] = { -- The Barrows of Westmark Moor
-		itemPrice = 500,
-	},
-	[120232] = { -- The Cantatas of Vivec
-		itemPrice = 500,
-	},
-	[120190] = { -- The Homilies of Blessed Almalexia
-		itemPrice = 500,
-	},
-	[120191] = { -- The Legendary Scourge
-		itemPrice = 500,
-	},
-	[120192] = { -- The LUsty Argonian Maid 1
-		itemPrice = 500,
-	},
-	[120193] = { -- The LUsty Argonian Maid 2
-		itemPrice = 500,
-	},
-	[120199] = { -- Wabbajack
-		itemPrice = 500,
-	},
-	[120235] = { -- Ode to the Tundrastriders
-		itemPrice = 500,
-	},
-	[120237] = { -- Song of the Askelde men
-		itemPrice = 500,
-	},
-	[120230] = { -- Battle of Glenumbra Moors
-		itemPrice = 500,
-	},
-	[120231] = { -- Book of Dawn and Dusk
-		itemPrice = 500,
-	},
-	[120196] = { -- Warrior's Charge
-		itemPrice = 500,
-	},
-	[120082] = {
-		itemPrice = 500,
-	},
-	[120083] = {
-		itemPrice = 500,
-	},
-	[120084] = {
-		itemPrice = 500,
-	},
-	[120085] = {
-		itemPrice = 500,
-	},
-	[120086] = {
-		itemPrice = 500,
-	},
-	[120087] = {
-		itemPrice = 500,
-	},
-	[120088] = {
-		itemPrice = 500,
-	},
-	[120089] = {
-		itemPrice = 500,
-	},
-	[120090] = {
-		itemPrice = 500,
-	},
-	[120091] = {
-		itemPrice = 500,
-	},
-	[120092] = {
-		itemPrice = 500,
-	},
-	[120093] = {
-		itemPrice = 500,
-	},
-	[120094] = {
-		itemPrice = 500,
-	},
-	[120095] = {
-		itemPrice = 500,
-	},
-	[120096] = {
-		itemPrice = 500,
-	},
-	[120097] = {
-		itemPrice = 500,
-	},
-	[120098] = {
-		itemPrice = 500,
-	},
-	[120099] = {
-		itemPrice = 500,
-	},
-	[120100] = {
-		itemPrice = 500,
-	},
-	[120101] = {
-		itemPrice = 500,
-	},
-	[120103] = {
-		itemPrice = 500,
-	},
-	[120105] = {
-		itemPrice = 500,
-	},
-	[120107] = {
-		itemPrice = 500,
-	},
-	[120118] = {
-		itemPrice = 500,
-	},
-	[120119] = {
-		itemPrice = 500,
-	},
-	[120122] = {
-		itemPrice = 500,
-	},
-	[120123] = {
-		itemPrice = 500,
-	},
-	[120124] = {
-		itemPrice = 500,
-	},
-	[120125] = {
-		itemPrice = 500,
-	},
-	[120126] = {
-		itemPrice = 500,
-	},
-	[120127] = {
-		itemPrice = 500,
-	},
-	[120128] = {
-		itemPrice = 500,
-	},
-	[120129] = {
-		itemPrice = 500,
-	},
-	[120130] = {
-		itemPrice = 500,
-	},
-	[120131] = {
-		itemPrice = 500,
-	},
-	[120134] = {
-		itemPrice = 500,
-	},
-	[120135] = {
-		itemPrice = 500,
-	},
-	[120136] = {
-		itemPrice = 500,
-	},
-	[120137] = {
-		itemPrice = 500,
-	},
-	[120138] = {
-		itemPrice = 500,
-	},
-	[120139] = {
-		itemPrice = 500,
-	},
-	[120140] = {
-		itemPrice = 500,
-	},
-	[120141] = {
-		itemPrice = 500,
-	},
-	[120142] = {
-		itemPrice = 500,
-	},
-	[120143] = {
-		itemPrice = 500,
-	},
-	[120144] = {
-		itemPrice = 500,
-	},
-	[120145] = {
-		itemPrice = 500,
-	},
-	[120146] = {
-		itemPrice = 500,
-	},
-	[120147] = {
-		itemPrice = 500,
-	},
-	[120148] = {
-		itemPrice = 500,
-	},
-	[120149] = {
-		itemPrice = 500,
-	},
-	[120150] = {
-		itemPrice = 500,
-	},
-	[120151] = {
-		itemPrice = 500,
-	},
-	[120152] = {
-		itemPrice = 500,
-	},
-	[120153] = {
-		itemPrice = 500,
-	},
-	[120154] = {
-		itemPrice = 500,
-	},
-	[120155] = {
-		itemPrice = 500,
-	},
-	[120156] = {
-		itemPrice = 500,
-	},
-	[120157] = {
-		itemPrice = 500,
-	},
-	[120158] = {
-		itemPrice = 500,
-	},
-	[120159] = {
-		itemPrice = 500,
-	},
-	[120160] = {
-		itemPrice = 500,
-	},
-	[120161] = {
-		itemPrice = 500,
-	},
-	[120162] = {
-		itemPrice = 500,
-	},
-	[120163] = {
-		itemPrice = 500,
-	},
-	[120164] = {
-		itemPrice = 500,
-	},
-	[120165] = {
-		itemPrice = 500,
-	},
-	[120166] = {
-		itemPrice = 500,
-	},
-	[120167] = {
-		itemPrice = 500,
-	},
-	[120168] = {
-		itemPrice = 500,
-	},
-	[120169] = {
-		itemPrice = 500,
-	},
-	[120170] = {
-		itemPrice = 500,
-	},
-	[120171] = {
-		itemPrice = 500,
-	},
-	[120172] = {
-		itemPrice = 500,
-	},
-	[120173] = {
-		itemPrice = 500,
-	},
-	[120174] = {
-		itemPrice = 500,
-	},
-	[120175] = {
-		itemPrice = 500,
-	},
-	[120176] = {
-		itemPrice = 500,
-	},
-	[120177] = {
-		itemPrice = 500,
-	},
-	[120178] = {
-		itemPrice = 500,
-	},
-	[120179] = {
-		itemPrice = 500,
-	},
-	[120180] = {
-		itemPrice = 500,
-	},
-	[120182] = {
-		itemPrice = 500,
-	},
-	[120183] = {
-		itemPrice = 500,
-	},
-	[120184] = {
-		itemPrice = 500,
-	},
-	[120185] = {
-		itemPrice = 500,
-	},
-	[120189] = {
-		itemPrice = 500,
-	},
-	[120197] = {
-		itemPrice = 500,
-	},
-	[120198] = {
-		itemPrice = 500,
-	},
-	[120200] = {
-		itemPrice = 500,
-	},
-	[120201] = {
-		itemPrice = 500,
-	},
-	[120202] = {
-		itemPrice = 500,
-	},
-	[120203] = {
-		itemPrice = 500,
-	},
-	[120204] = {
-		itemPrice = 500,
-	},
-	[120205] = {
-		itemPrice = 500,
-	},
-	[120206] = {
-		itemPrice = 500,
-	},
-	[120207] = {
-		itemPrice = 500,
-	},
-	[120208] = {
-		itemPrice = 500,
-	},
-	[120209] = {
-		itemPrice = 500,
-	},
-	[120210] = {
-		itemPrice = 500,
-	},
-	[120211] = {
-		itemPrice = 500,
-	},
-	[120212] = {
-		itemPrice = 500,
-	},
-	[120213] = {
-		itemPrice = 500,
-	},
-	[120214] = {
-		itemPrice = 500,
-	},
-	[120215] = {
-		itemPrice = 500,
-	},
-	[120216] = {
-		itemPrice = 500,
-	},
-	[120217] = {
-		itemPrice = 500,
-	},
-	[120218] = {
-		itemPrice = 500,
-	},
-	[120219] = {
-		itemPrice = 500,
-	},
-	[120220] = {
-		itemPrice = 500,
-	},
-	[120221] = {
-		itemPrice = 500,
-	},
-	[120222] = {
-		itemPrice = 500,
-	},
-	[120223] = {
-		itemPrice = 500,
-	},
-	[120224] = {
-		itemPrice = 500,
-	},
-	[120225] = {
-		itemPrice = 500,
-	},
-	[120226] = {
-		itemPrice = 500,
-	},
-	[120227] = {
-		itemPrice = 500,
-	},
-	[120228] = {
-		itemPrice = 500,
-	},
-	[120229] = {
-		itemPrice = 500,
-	},
-	[120231] = {
-		itemPrice = 500,
-	},
-	[120233] = {
-		itemPrice = 500,
-	},
-	[120234] = {
-		itemPrice = 500,
-	},
-	[120238] = {
-		itemPrice = 500,
-	},
-	[120239] = {
-		itemPrice = 500,
-	},
-	[120240] = {
-		itemPrice = 500,
-	},
-	[120241] = {
-		itemPrice = 500,
-	},
-	[120242] = {
-		itemPrice = 500,
-	},
-	[120243] = {
-		itemPrice = 500,
-	},
-	[120244] = {
-		itemPrice = 500,
-	},
-	[120245] = {
-		itemPrice = 500,
-	},
-	[120246] = {
-		itemPrice = 500,
-	},
-	[120247] = {
-		itemPrice = 500,
-	},
-	[120248] = {
-		itemPrice = 500,
-	},
-	[120249] = {
-		itemPrice = 500,
-	},
-	[120250] = {
-		itemPrice = 500,
-	},
-	[120251] = {
-		itemPrice = 500,
-	},
-	[120252] = {
-		itemPrice = 500,
-	},
-	[120253] = {
-		itemPrice = 500,
-	},
-	[120254] = {
-		itemPrice = 500,
-	},
-	[120255] = {
-		itemPrice = 500,
-	},
-	[120256] = {
-		itemPrice = 500,
-	},
-	[120257] = {
-		itemPrice = 500,
-	},
-	[120258] = {
-		itemPrice = 500,
-	},
-	[120259] = {
-		itemPrice = 500,
-	},
-	[120260] = {
-		itemPrice = 500,
-	},
-	[120261] = {
-		itemPrice = 500,
-	},
-	[120262] = {
-		itemPrice = 500,
-	},
-	[120263] = {
-		itemPrice = 500,
-	},
-	[120264] = {
-		itemPrice = 500,
-	},
-	[120265] = {
-		itemPrice = 500,
-	},
-	[120266] = {
-		itemPrice = 500,
-	},
-	[120267] = {
-		itemPrice = 500,
-	},
-	[120268] = {
-		itemPrice = 500,
-	},
-	[120269] = {
-		itemPrice = 500,
-	},
-	[120270] = {
-		itemPrice = 500,
-	},
-	[120271] = {
-		itemPrice = 500,
-	},
-	[120272] = {
-		itemPrice = 500,
-	},
-	[120273] = {
-		itemPrice = 500,
-	},
-	[120274] = {
-		itemPrice = 500,
-	},
-	[120275] = {
-		itemPrice = 500,
-	},
-	[120276] = {
-		itemPrice = 500,
-	},
-	[120277] = {
-		itemPrice = 500,
-	},
-	[120278] = {
-		itemPrice = 500,
-	},
-	[120279] = {
-		itemPrice = 500,
-	},
-	[120280] = {
-		itemPrice = 500,
-	},
-	[120281] = {
-		itemPrice = 500,
-	},
-	[120282] = {
-		itemPrice = 500,
-	},
-	[120283] = {
-		itemPrice = 500,
-	},
-	[120284] = {
-		itemPrice = 500,
-	},
-	[120285] = {
-		itemPrice = 500,
-	},
-	[120286] = {
-		itemPrice = 500,
-	},
-	[120287] = {
-		itemPrice = 500,
-	},
-	[120288] = {
-		itemPrice = 500,
-	},
-	[120289] = {
-		itemPrice = 500,
-	},
-	[120290] = {
-		itemPrice = 500,
-	},
-	[120291] = {
-		itemPrice = 500,
-	},
-	[120292] = {
-		itemPrice = 500,
-	},
-	[120293] = {
-		itemPrice = 500,
-	},
-	[120294] = {
-		itemPrice = 500,
-	},
-	[120295] = {
-		itemPrice = 500,
-	},
-	[120296] = {
-		itemPrice = 500,
-	},
-	[120297] = {
-		itemPrice = 500,
-	},
-	[120298] = {
-		itemPrice = 500,
-	},
-	[120299] = {
-		itemPrice = 500,
-	},
-	[120300] = {
-		itemPrice = 500,
-	},
-	[120301] = {
-		itemPrice = 500,
-	},
-	[120302] = {
-		itemPrice = 500,
-	},
-	[120303] = {
-		itemPrice = 500,
-	},
-	[120304] = {
-		itemPrice = 500,
-	},
-	[120305] = {
-		itemPrice = 500,
-	},
-	[120306] = {
-		itemPrice = 500,
-	},
-	[120307] = {
-		itemPrice = 500,
-	},
-	[120308] = {
-		itemPrice = 500,
-	},
-	[120309] = {
-		itemPrice = 500,
-	},
-	[120310] = {
-		itemPrice = 500,
-	},
-	[120311] = {
-		itemPrice = 500,
-	},
-	[120312] = {
-		itemPrice = 500,
-	},
-	[120313] = {
-		itemPrice = 500,
-	},
-	[120314] = {
-		itemPrice = 500,
-	},
-	[120315] = {
-		itemPrice = 500,
-	},
-	[120316] = {
-		itemPrice = 500,
-	},
-	[120317] = {
-		itemPrice = 500,
-	},
-	[120318] = {
-		itemPrice = 500,
-	},
-	[120319] = {
-		itemPrice = 500,
-	},
-	[120320] = {
-		itemPrice = 500,
-	},
-	[120321] = {
-		itemPrice = 500,
-	},
-	[120322] = {
-		itemPrice = 500,
-	},
-	[120323] = {
-		itemPrice = 500,
-	},
-	[120324] = {
-		itemPrice = 500,
-	},
-	[120325] = {
-		itemPrice = 500,
-	},
-	[120326] = {
-		itemPrice = 500,
-	},
-	[120327] = {
-		itemPrice = 500,
-	},
-	[120328] = {
-		itemPrice = 500,
-	},
-	[120329] = {
-		itemPrice = 500,
-	},
-	[120330] = {
-		itemPrice = 500,
-	},
-	[120331] = {
-		itemPrice = 500,
-	},
-	[120332] = {
-		itemPrice = 500,
-	},
-	[120333] = {
-		itemPrice = 500,
-	},
-	[120334] = {
-		itemPrice = 500,
-	},
-	[120335] = {
-		itemPrice = 500,
-	},
-	[120336] = {
-		itemPrice = 500,
-	},
-	[120337] = {
-		itemPrice = 500,
-	},
-	[120338] = {
-		itemPrice = 500,
-	},
-	[120339] = {
-		itemPrice = 500,
-	},
-	[120340] = {
-		itemPrice = 500,
-	},
-	[120341] = {
-		itemPrice = 500,
-	},
-	[120342] = {
-		itemPrice = 500,
-	},
-	[120343] = {
-		itemPrice = 500,
-	},
-	[120344] = {
-		itemPrice = 500,
-	},
-	[120345] = {
-		itemPrice = 500,
-	},
-	[120346] = {
-		itemPrice = 500,
-	},
-	[120347] = {
-		itemPrice = 500,
-	},
-	[120348] = {
-		itemPrice = 500,
-	},
-	[120349] = {
-		itemPrice = 500,
-	},
-	[120350] = {
-		itemPrice = 500,
-	},
-	[120351] = {
-		itemPrice = 500,
-	},
-	[120352] = {
-		itemPrice = 500,
-	},
-	[120353] = {
-		itemPrice = 500,
-	},
-	[120354] = {
-		itemPrice = 500,
-	},
-	[120355] = {
-		itemPrice = 500,
-	},
-	[120356] = {
-		itemPrice = 500,
-	},
-	[120357] = {
-		itemPrice = 500,
-	},
-	[120358] = {
-		itemPrice = 500,
-	},
-	[120359] = {
-		itemPrice = 500,
-	},
-	[120360] = {
-		itemPrice = 500,
-	},
-	[120361] = {
-		itemPrice = 500,
-	},
-	[120362] = {
-		itemPrice = 500,
-	},
-	[120363] = {
-		itemPrice = 500,
-	},
-	[120364] = {
-		itemPrice = 500,
-	},
-	[120365] = {
-		itemPrice = 500,
-	},
-	[120366] = {
-		itemPrice = 500,
-	},
-	[120367] = {
-		itemPrice = 500,
-	},
-	[120368] = {
-		itemPrice = 500,
-	},
-	[120369] = {
-		itemPrice = 500,
-	},
-	[120370] = {
-		itemPrice = 500,
-	},
-	[120371] = {
-		itemPrice = 500,
-	},
-	[120372] = {
-		itemPrice = 500,
-	},
-	[120373] = {
-		itemPrice = 500,
-	},
-	[120374] = {
-		itemPrice = 500,
-	},
-	[120375] = {
-		itemPrice = 500,
-	},
-	[120376] = {
-		itemPrice = 500,
-	},
-	[120406] = {
-		itemPrice = 500,
-	},
-	[120407] = {
-		itemPrice = 500,
-	},
+  [120197] = { -- 16 accords of madness, vol vi
+    itemPrice = 500,
+  },
+  [120121] = { -- The Glenmoril Wyrd
+    itemPrice = 500,
+  },
+  [120112] = { -- Legend of the fallen drotto
+    itemPrice = 500,
+  },
+  [120115] = { -- The Posting of the hunt
+    itemPrice = 500,
+  },
+  [120117] = { -- The Viridian Sentinel
+    itemPrice = 500,
+  },
+  [120120] = { -- Ancient Scrolls of the Dwemer IV
+    itemPrice = 500,
+  },
+  [120181] = { -- Antecedent of Dwemer Law
+    itemPrice = 500,
+  },
+  [120116] = { -- Aspects of Lord Hircine
+    itemPrice = 500,
+  },
+  [120114] = { -- Bangkorai, Shield of High Rock
+    itemPrice = 500,
+  },
+  [120104] = { -- Bloodfiends of Rivenspire
+    itemPrice = 500,
+  },
+  [120132] = { -- Circus of Cheerful Slaughter
+    itemPrice = 5000,
+  },
+  [120186] = { -- Dwemer Inquiries, Vol I
+    itemPrice = 500,
+  },
+  [120187] = { -- Dwemer Inquiries, Vol II
+    itemPrice = 500,
+  },
+  [120188] = { -- Dwemer Inquiries, Vol III
+    itemPrice = 500,
+  },
+  [120106] = { -- House-Folk of Silverhoof
+    itemPrice = 500,
+  },
+  [120111] = { -- House Ravenwatch Proclamation
+    itemPrice = 500,
+  },
+  [120108] = { -- House Tamrith - A recent history
+    itemPrice = 500,
+  },
+  [120113] = { -- Living with Lycantrophy
+    itemPrice = 500,
+  },
+  [120194] = { -- Myths of Sheogorath, Vol 1
+    itemPrice = 500,
+  },
+  [120110] = { -- Myths of Sheogorath, Vol 2
+    itemPrice = 500,
+  },
+  [120195] = { -- Myths of Sheogorath, Vol 2
+    itemPrice = 500,
+  },
+  [120236] = { -- Proper Life: Three CHants
+    itemPrice = 500,
+  },
+  [120133] = { -- Robier's Vegetable Garden
+    itemPrice = 5000,
+  },
+  [120109] = { -- Shornhelm, city of the north
+    itemPrice = 500,
+  },
+  [120102] = { -- The Barrows of Westmark Moor
+    itemPrice = 500,
+  },
+  [120232] = { -- The Cantatas of Vivec
+    itemPrice = 500,
+  },
+  [120190] = { -- The Homilies of Blessed Almalexia
+    itemPrice = 500,
+  },
+  [120191] = { -- The Legendary Scourge
+    itemPrice = 500,
+  },
+  [120192] = { -- The LUsty Argonian Maid 1
+    itemPrice = 500,
+  },
+  [120193] = { -- The LUsty Argonian Maid 2
+    itemPrice = 500,
+  },
+  [120199] = { -- Wabbajack
+    itemPrice = 500,
+  },
+  [120235] = { -- Ode to the Tundrastriders
+    itemPrice = 500,
+  },
+  [120237] = { -- Song of the Askelde men
+    itemPrice = 500,
+  },
+  [120230] = { -- Battle of Glenumbra Moors
+    itemPrice = 500,
+  },
+  [120231] = { -- Book of Dawn and Dusk
+    itemPrice = 500,
+  },
+  [120196] = { -- Warrior's Charge
+    itemPrice = 500,
+  },
+  [120082] = {
+    itemPrice = 500,
+  },
+  [120083] = {
+    itemPrice = 500,
+  },
+  [120084] = {
+    itemPrice = 500,
+  },
+  [120085] = {
+    itemPrice = 500,
+  },
+  [120086] = {
+    itemPrice = 500,
+  },
+  [120087] = {
+    itemPrice = 500,
+  },
+  [120088] = {
+    itemPrice = 500,
+  },
+  [120089] = {
+    itemPrice = 500,
+  },
+  [120090] = {
+    itemPrice = 500,
+  },
+  [120091] = {
+    itemPrice = 500,
+  },
+  [120092] = {
+    itemPrice = 500,
+  },
+  [120093] = {
+    itemPrice = 500,
+  },
+  [120094] = {
+    itemPrice = 500,
+  },
+  [120095] = {
+    itemPrice = 500,
+  },
+  [120096] = {
+    itemPrice = 500,
+  },
+  [120097] = {
+    itemPrice = 500,
+  },
+  [120098] = {
+    itemPrice = 500,
+  },
+  [120099] = {
+    itemPrice = 500,
+  },
+  [120100] = {
+    itemPrice = 500,
+  },
+  [120101] = {
+    itemPrice = 500,
+  },
+  [120103] = {
+    itemPrice = 500,
+  },
+  [120105] = {
+    itemPrice = 500,
+  },
+  [120107] = {
+    itemPrice = 500,
+  },
+  [120118] = {
+    itemPrice = 500,
+  },
+  [120119] = {
+    itemPrice = 500,
+  },
+  [120122] = {
+    itemPrice = 500,
+  },
+  [120123] = {
+    itemPrice = 500,
+  },
+  [120124] = {
+    itemPrice = 500,
+  },
+  [120125] = {
+    itemPrice = 500,
+  },
+  [120126] = {
+    itemPrice = 500,
+  },
+  [120127] = {
+    itemPrice = 500,
+  },
+  [120128] = {
+    itemPrice = 500,
+  },
+  [120129] = {
+    itemPrice = 500,
+  },
+  [120130] = {
+    itemPrice = 500,
+  },
+  [120131] = {
+    itemPrice = 500,
+  },
+  [120134] = {
+    itemPrice = 500,
+  },
+  [120135] = {
+    itemPrice = 500,
+  },
+  [120136] = {
+    itemPrice = 500,
+  },
+  [120137] = {
+    itemPrice = 500,
+  },
+  [120138] = {
+    itemPrice = 500,
+  },
+  [120139] = {
+    itemPrice = 500,
+  },
+  [120140] = {
+    itemPrice = 500,
+  },
+  [120141] = {
+    itemPrice = 500,
+  },
+  [120142] = {
+    itemPrice = 500,
+  },
+  [120143] = {
+    itemPrice = 500,
+  },
+  [120144] = {
+    itemPrice = 500,
+  },
+  [120145] = {
+    itemPrice = 500,
+  },
+  [120146] = {
+    itemPrice = 500,
+  },
+  [120147] = {
+    itemPrice = 500,
+  },
+  [120148] = {
+    itemPrice = 500,
+  },
+  [120149] = {
+    itemPrice = 500,
+  },
+  [120150] = {
+    itemPrice = 500,
+  },
+  [120151] = {
+    itemPrice = 500,
+  },
+  [120152] = {
+    itemPrice = 500,
+  },
+  [120153] = {
+    itemPrice = 500,
+  },
+  [120154] = {
+    itemPrice = 500,
+  },
+  [120155] = {
+    itemPrice = 500,
+  },
+  [120156] = {
+    itemPrice = 500,
+  },
+  [120157] = {
+    itemPrice = 500,
+  },
+  [120158] = {
+    itemPrice = 500,
+  },
+  [120159] = {
+    itemPrice = 500,
+  },
+  [120160] = {
+    itemPrice = 500,
+  },
+  [120161] = {
+    itemPrice = 500,
+  },
+  [120162] = {
+    itemPrice = 500,
+  },
+  [120163] = {
+    itemPrice = 500,
+  },
+  [120164] = {
+    itemPrice = 500,
+  },
+  [120165] = {
+    itemPrice = 500,
+  },
+  [120166] = {
+    itemPrice = 500,
+  },
+  [120167] = {
+    itemPrice = 500,
+  },
+  [120168] = {
+    itemPrice = 500,
+  },
+  [120169] = {
+    itemPrice = 500,
+  },
+  [120170] = {
+    itemPrice = 500,
+  },
+  [120171] = {
+    itemPrice = 500,
+  },
+  [120172] = {
+    itemPrice = 500,
+  },
+  [120173] = {
+    itemPrice = 500,
+  },
+  [120174] = {
+    itemPrice = 500,
+  },
+  [120175] = {
+    itemPrice = 500,
+  },
+  [120176] = {
+    itemPrice = 500,
+  },
+  [120177] = {
+    itemPrice = 500,
+  },
+  [120178] = {
+    itemPrice = 500,
+  },
+  [120179] = {
+    itemPrice = 500,
+  },
+  [120180] = {
+    itemPrice = 500,
+  },
+  [120182] = {
+    itemPrice = 500,
+  },
+  [120183] = {
+    itemPrice = 500,
+  },
+  [120184] = {
+    itemPrice = 500,
+  },
+  [120185] = {
+    itemPrice = 500,
+  },
+  [120189] = {
+    itemPrice = 500,
+  },
+  [120197] = {
+    itemPrice = 500,
+  },
+  [120198] = {
+    itemPrice = 500,
+  },
+  [120200] = {
+    itemPrice = 500,
+  },
+  [120201] = {
+    itemPrice = 500,
+  },
+  [120202] = {
+    itemPrice = 500,
+  },
+  [120203] = {
+    itemPrice = 500,
+  },
+  [120204] = {
+    itemPrice = 500,
+  },
+  [120205] = {
+    itemPrice = 500,
+  },
+  [120206] = {
+    itemPrice = 500,
+  },
+  [120207] = {
+    itemPrice = 500,
+  },
+  [120208] = {
+    itemPrice = 500,
+  },
+  [120209] = {
+    itemPrice = 500,
+  },
+  [120210] = {
+    itemPrice = 500,
+  },
+  [120211] = {
+    itemPrice = 500,
+  },
+  [120212] = {
+    itemPrice = 500,
+  },
+  [120213] = {
+    itemPrice = 500,
+  },
+  [120214] = {
+    itemPrice = 500,
+  },
+  [120215] = {
+    itemPrice = 500,
+  },
+  [120216] = {
+    itemPrice = 500,
+  },
+  [120217] = {
+    itemPrice = 500,
+  },
+  [120218] = {
+    itemPrice = 500,
+  },
+  [120219] = {
+    itemPrice = 500,
+  },
+  [120220] = {
+    itemPrice = 500,
+  },
+  [120221] = {
+    itemPrice = 500,
+  },
+  [120222] = {
+    itemPrice = 500,
+  },
+  [120223] = {
+    itemPrice = 500,
+  },
+  [120224] = {
+    itemPrice = 500,
+  },
+  [120225] = {
+    itemPrice = 500,
+  },
+  [120226] = {
+    itemPrice = 500,
+  },
+  [120227] = {
+    itemPrice = 500,
+  },
+  [120228] = {
+    itemPrice = 500,
+  },
+  [120229] = {
+    itemPrice = 500,
+  },
+  [120231] = {
+    itemPrice = 500,
+  },
+  [120233] = {
+    itemPrice = 500,
+  },
+  [120234] = {
+    itemPrice = 500,
+  },
+  [120238] = {
+    itemPrice = 500,
+  },
+  [120239] = {
+    itemPrice = 500,
+  },
+  [120240] = {
+    itemPrice = 500,
+  },
+  [120241] = {
+    itemPrice = 500,
+  },
+  [120242] = {
+    itemPrice = 500,
+  },
+  [120243] = {
+    itemPrice = 500,
+  },
+  [120244] = {
+    itemPrice = 500,
+  },
+  [120245] = {
+    itemPrice = 500,
+  },
+  [120246] = {
+    itemPrice = 500,
+  },
+  [120247] = {
+    itemPrice = 500,
+  },
+  [120248] = {
+    itemPrice = 500,
+  },
+  [120249] = {
+    itemPrice = 500,
+  },
+  [120250] = {
+    itemPrice = 500,
+  },
+  [120251] = {
+    itemPrice = 500,
+  },
+  [120252] = {
+    itemPrice = 500,
+  },
+  [120253] = {
+    itemPrice = 500,
+  },
+  [120254] = {
+    itemPrice = 500,
+  },
+  [120255] = {
+    itemPrice = 500,
+  },
+  [120256] = {
+    itemPrice = 500,
+  },
+  [120257] = {
+    itemPrice = 500,
+  },
+  [120258] = {
+    itemPrice = 500,
+  },
+  [120259] = {
+    itemPrice = 500,
+  },
+  [120260] = {
+    itemPrice = 500,
+  },
+  [120261] = {
+    itemPrice = 500,
+  },
+  [120262] = {
+    itemPrice = 500,
+  },
+  [120263] = {
+    itemPrice = 500,
+  },
+  [120264] = {
+    itemPrice = 500,
+  },
+  [120265] = {
+    itemPrice = 500,
+  },
+  [120266] = {
+    itemPrice = 500,
+  },
+  [120267] = {
+    itemPrice = 500,
+  },
+  [120268] = {
+    itemPrice = 500,
+  },
+  [120269] = {
+    itemPrice = 500,
+  },
+  [120270] = {
+    itemPrice = 500,
+  },
+  [120271] = {
+    itemPrice = 500,
+  },
+  [120272] = {
+    itemPrice = 500,
+  },
+  [120273] = {
+    itemPrice = 500,
+  },
+  [120274] = {
+    itemPrice = 500,
+  },
+  [120275] = {
+    itemPrice = 500,
+  },
+  [120276] = {
+    itemPrice = 500,
+  },
+  [120277] = {
+    itemPrice = 500,
+  },
+  [120278] = {
+    itemPrice = 500,
+  },
+  [120279] = {
+    itemPrice = 500,
+  },
+  [120280] = {
+    itemPrice = 500,
+  },
+  [120281] = {
+    itemPrice = 500,
+  },
+  [120282] = {
+    itemPrice = 500,
+  },
+  [120283] = {
+    itemPrice = 500,
+  },
+  [120284] = {
+    itemPrice = 500,
+  },
+  [120285] = {
+    itemPrice = 500,
+  },
+  [120286] = {
+    itemPrice = 500,
+  },
+  [120287] = {
+    itemPrice = 500,
+  },
+  [120288] = {
+    itemPrice = 500,
+  },
+  [120289] = {
+    itemPrice = 500,
+  },
+  [120290] = {
+    itemPrice = 500,
+  },
+  [120291] = {
+    itemPrice = 500,
+  },
+  [120292] = {
+    itemPrice = 500,
+  },
+  [120293] = {
+    itemPrice = 500,
+  },
+  [120294] = {
+    itemPrice = 500,
+  },
+  [120295] = {
+    itemPrice = 500,
+  },
+  [120296] = {
+    itemPrice = 500,
+  },
+  [120297] = {
+    itemPrice = 500,
+  },
+  [120298] = {
+    itemPrice = 500,
+  },
+  [120299] = {
+    itemPrice = 500,
+  },
+  [120300] = {
+    itemPrice = 500,
+  },
+  [120301] = {
+    itemPrice = 500,
+  },
+  [120302] = {
+    itemPrice = 500,
+  },
+  [120303] = {
+    itemPrice = 500,
+  },
+  [120304] = {
+    itemPrice = 500,
+  },
+  [120305] = {
+    itemPrice = 500,
+  },
+  [120306] = {
+    itemPrice = 500,
+  },
+  [120307] = {
+    itemPrice = 500,
+  },
+  [120308] = {
+    itemPrice = 500,
+  },
+  [120309] = {
+    itemPrice = 500,
+  },
+  [120310] = {
+    itemPrice = 500,
+  },
+  [120311] = {
+    itemPrice = 500,
+  },
+  [120312] = {
+    itemPrice = 500,
+  },
+  [120313] = {
+    itemPrice = 500,
+  },
+  [120314] = {
+    itemPrice = 500,
+  },
+  [120315] = {
+    itemPrice = 500,
+  },
+  [120316] = {
+    itemPrice = 500,
+  },
+  [120317] = {
+    itemPrice = 500,
+  },
+  [120318] = {
+    itemPrice = 500,
+  },
+  [120319] = {
+    itemPrice = 500,
+  },
+  [120320] = {
+    itemPrice = 500,
+  },
+  [120321] = {
+    itemPrice = 500,
+  },
+  [120322] = {
+    itemPrice = 500,
+  },
+  [120323] = {
+    itemPrice = 500,
+  },
+  [120324] = {
+    itemPrice = 500,
+  },
+  [120325] = {
+    itemPrice = 500,
+  },
+  [120326] = {
+    itemPrice = 500,
+  },
+  [120327] = {
+    itemPrice = 500,
+  },
+  [120328] = {
+    itemPrice = 500,
+  },
+  [120329] = {
+    itemPrice = 500,
+  },
+  [120330] = {
+    itemPrice = 500,
+  },
+  [120331] = {
+    itemPrice = 500,
+  },
+  [120332] = {
+    itemPrice = 500,
+  },
+  [120333] = {
+    itemPrice = 500,
+  },
+  [120334] = {
+    itemPrice = 500,
+  },
+  [120335] = {
+    itemPrice = 500,
+  },
+  [120336] = {
+    itemPrice = 500,
+  },
+  [120337] = {
+    itemPrice = 500,
+  },
+  [120338] = {
+    itemPrice = 500,
+  },
+  [120339] = {
+    itemPrice = 500,
+  },
+  [120340] = {
+    itemPrice = 500,
+  },
+  [120341] = {
+    itemPrice = 500,
+  },
+  [120342] = {
+    itemPrice = 500,
+  },
+  [120343] = {
+    itemPrice = 500,
+  },
+  [120344] = {
+    itemPrice = 500,
+  },
+  [120345] = {
+    itemPrice = 500,
+  },
+  [120346] = {
+    itemPrice = 500,
+  },
+  [120347] = {
+    itemPrice = 500,
+  },
+  [120348] = {
+    itemPrice = 500,
+  },
+  [120349] = {
+    itemPrice = 500,
+  },
+  [120350] = {
+    itemPrice = 500,
+  },
+  [120351] = {
+    itemPrice = 500,
+  },
+  [120352] = {
+    itemPrice = 500,
+  },
+  [120353] = {
+    itemPrice = 500,
+  },
+  [120354] = {
+    itemPrice = 500,
+  },
+  [120355] = {
+    itemPrice = 500,
+  },
+  [120356] = {
+    itemPrice = 500,
+  },
+  [120357] = {
+    itemPrice = 500,
+  },
+  [120358] = {
+    itemPrice = 500,
+  },
+  [120359] = {
+    itemPrice = 500,
+  },
+  [120360] = {
+    itemPrice = 500,
+  },
+  [120361] = {
+    itemPrice = 500,
+  },
+  [120362] = {
+    itemPrice = 500,
+  },
+  [120363] = {
+    itemPrice = 500,
+  },
+  [120364] = {
+    itemPrice = 500,
+  },
+  [120365] = {
+    itemPrice = 500,
+  },
+  [120366] = {
+    itemPrice = 500,
+  },
+  [120367] = {
+    itemPrice = 500,
+  },
+  [120368] = {
+    itemPrice = 500,
+  },
+  [120369] = {
+    itemPrice = 500,
+  },
+  [120370] = {
+    itemPrice = 500,
+  },
+  [120371] = {
+    itemPrice = 500,
+  },
+  [120372] = {
+    itemPrice = 500,
+  },
+  [120373] = {
+    itemPrice = 500,
+  },
+  [120374] = {
+    itemPrice = 500,
+  },
+  [120375] = {
+    itemPrice = 500,
+  },
+  [120376] = {
+    itemPrice = 500,
+  },
+  [120406] = {
+    itemPrice = 500,
+  },
+  [120407] = {
+    itemPrice = 500,
+  },
 }

 FurC.Books[FURC_HOMESTEAD] = bookList
 --[[
-			[""] = {		--
-				itemPrice 	= 100,
-			},
+      [""] = {    --
+        itemPrice   = 100,
+      },
 ]]

 local miscVendor = tableMerge(tableMerge(tableMerge(structures, boxes), laundry), fishing_trip)
@@ -1227,750 +1227,750 @@ local miscVendor = tableMerge(tableMerge(tableMerge(structures, boxes), laundry)

 FurC.AchievementVendors[FURC_HOMESTEAD] = {

-	[GetString(FURC_AV_CAPITAL)] = {
-		[GetString(FURC_AV_NAR)] = capitalVendor,
-		[GetString(FURC_AV_HER)] = jesterVendor,
-	},
-	-- location name
-	["Mournhold Bank"] = {
-		-- vendor name
-		[GetString(FURC_AV_LTS)]	  = {
-			[119908] = {	-- Swamp Anemone
-				itemPrice 	= 15000,
-			},
-			[119914] = {	-- Touch of Plague
-				itemPrice 	= 500,
-			},
-			[119913] = {	-- Tribunal Altar
-				itemPrice 	= 25000,
-			},
-			[119911] = {	-- Tribunal Rug
-				itemPrice 	= 5000,
-			},
-			[119910] = {	-- Veloth's Reliquary
-				itemPrice 	= 50000,
-			},
-		},
-		[GetString(FURC_AV_FRO)] = {
-			[120567] = {	-- Bush,Vibrant Barberry
-				itemPrice 	= 250,
-			},
-			[120566] = {	-- Fern Plant,Healthy Green
-				itemPrice 	= 100,
-			},
-			[120574] = {	-- Mushroom,Huge Chanterelle
-				itemPrice 	= 250,
-			},
-			[120568] = {	-- Mushroom,Tall Chanterelle
-				itemPrice 	= 250,
-			},
-		},
-
-	},
-	["Dhalmora, Bal Foyen"] = {
-
-		[GetString(FURC_AV_FRO)] = {
-			[120502] = {	-- Flower, Grandmother Hibiscus
-				itemPrice 	= 1000,
-			},
-			[120621] = {	-- Plant, Red Aloe
-				itemPrice 	= 250,
-			},
-			[120620] = {	-- Plant, Red Aloe Succulent
-				itemPrice 	= 250,
-			},
-			[120618] = {	-- Tree, Gnarled Ashflower
-				itemPrice 	= 5000,
-			},
-			[120619] = {	-- Tree, Twisted Ashflower
-				itemPrice 	= 7500,
-			},
-			[120622] = {	-- Vines, Clustered Ivy
-				itemPrice 	= 600,
-			},
-
-		},
-		[GetString(FURC_AV_LTS)]	  = {
-			[120956] = {	-- Atmoran Eagle Totem Medallion
-				itemPrice 	= 3000,
-			},
-			[120954] = {	-- Atmoran Snake Totem Medallion
-				itemPrice 	= 3000,
-			},
-			[120955] = {	-- Atmoran Whale Totem Medallion
-				itemPrice 	= 3000,
-			},
-		},
-
-	},
-	["Stonefalls, Ebonheart"] = {
-
-		[GetString(FURC_AV_FRO)] = {
-			[120502] = {	-- Flower, Grandmother Hibiscus
-				itemPrice 	= 1000,
-			},
-			[121028] = {	-- Hedge, Dense Low Wall
-				itemPrice 	= 1300,
-			},
-
-			[121284] = {	-- Dark Elf Column Lantern
-				itemPrice 	= 250,
-			},
-
-			[120621] = {	-- Plant, Red Aloe
-				itemPrice 	= 250,
-			},[120620] = {	-- Plant, Red Aloe Succulent
-				itemPrice 	= 250,
-			},
-			[120618] = {	-- Tree, Gnarled Ashflower
-				itemPrice 	= 5000,
-			},
-			[120619] = {	-- Tree, Twisted Ashflower
-				itemPrice 	= 7500,
-			},
-			[120622] = {	-- Vines, Clustered Ivy
-				itemPrice 	= 600,
-			},
-			[120680] = {	-- Topiary, Fragile Cypress
-				itemPrice 	= 2500,
-			},
-			[120681] = {	-- Topiary, Pruned Cypress
-				itemPrice 	= 1100,
-			},
-			[120677] = {	-- Tree, Autumn Cherry Blossom
-				itemPrice 	= 15000,
-			},
-		},
-
-		[GetString(FURC_AV_LTS)]	  = {
-			[119890] = {	-- Blood Fountain
-				itemPrice 	= 100000,
-			},
-			[119889] = {	-- Daedric Sconce
-				itemPrice 	= 5000,
-			},
-			[119888] = {	-- Lacquered Kwama Egg
-				itemPrice 	= 1000,
-			},
-			[119892] = {	-- Remnant of Balreth
-				itemPrice 	= 15000,
-			},
-			[119887] = {	-- Serien's Stand
-				itemPrice 	= 10000,
-			},
-		},
-
-	},
-	["Eastmarch, Fort Amol"] = {
-
-		[GetString(FURC_AV_FRO)] = miscVendor,
-
-
-		[GetString(FURC_AV_LTS)]	  = {
-			[119905] = {	-- Dragon Shrine Altar
-				itemPrice 	= 20000,
-			},
-			[119901] = {	-- Lob's Challenge Horn
-				itemPrice 	= 1000,
-			},
-			[119904] = {	-- Standing Slab
-				itemPrice 	= 1000,
-			},
-			[119906] = {	-- Throne of the Skald King
-				itemPrice 	= 50000,
-			},
-			[119907] = {	-- Visage of the Skald
-				itemPrice 	= 25000,
-			},
-		},
-
-	},
-	["Shadowfen, Alten Corimont"] = {
-
-		[GetString(FURC_AV_FRO)] = {
-			[120502] = {	-- Flower, Grandmother Hibiscus
-				itemPrice 	= 1000,
-			},
-			[120630] = {	-- Pebble, Stacked Lichen
-				itemPrice 	= 100,
-			},
-			[120632] = {	-- Pebble, Stacked Mossy
-				itemPrice 	= 100,
-			},
-			[120637] = {	-- Plant, Dry Spike
-				itemPrice 	= 100,
-			},
-			[120627] = {	-- Rocks, Stacked Angular
-				itemPrice 	= 100,
-			},
-			[120628] = {	-- Rocks, Slanted Mossy
-				itemPrice 	= 100,
-			},
-			[120629] = {	-- Rocks, Smooth Mossy
-				itemPrice 	= 100,
-			},
-			[120634] = {	-- Tree, Towering Swamp Palm
-				itemPrice 	= 250,
-			},
-			[120636] = {	-- Tree, Mud Palm
-				itemPrice 	= 250,
-			},
-
-		},
-
-		[GetString(FURC_AV_LTS)]	  = {
-			[119897] = {	-- Argonian Egg
-				itemPrice 	= 2500,
-			},
-			[119893] = {	-- Mimic Hist Tree
-				itemPrice 	= 20000,
-			},
-			[119900] = {	-- Oblivion Stone
-				itemPrice 	= 5000,
-			},
-			[119898] = {	-- Replica Mnemic Egg
-				itemPrice 	= 100000,
-			},
-			[119899] = {	-- Replica Stone Nest
-				itemPrice 	= 10000,
-			},
-		},
-
-	},
-	["Riften, Market, Armorer"] = {
-
-		[GetString(FURC_AV_FRO)] = {
-			[120502] = {	-- Flower, Grandmother Hibiscus
-				itemPrice 	= 1000,
-			},
-			[120492] = {	-- Boulder, Flat , Weathered
-				itemPrice 	= 100,
-			},
-			[120496] = {	-- Fern, dead
-				itemPrice 	= 100,
-			},
-			[120494] = {	-- Pebble, Stacked, Weathered
-				itemPrice 	= 100,
-			},
-			[120493] = {	-- Rock, Slanted, Tan
-				itemPrice 	= 100,
-			},
-			[120495] = {	-- Sapling, Budding Red
-				itemPrice 	= 100,
-			},
-			[120500] = {	-- Sapling, Tender Autumn
-				itemPrice 	= 100,
-			},
-			[120499] = {	-- Sapling, Tender Harvest
-				itemPrice 	= 250,
-			},
-		},
-
-		[GetString(FURC_AV_LTS)]	  = {
-			[119915] = {	-- Ancient Cultist Totem
-				itemPrice 	= 5000,
-			},
-			[119918] = {	-- Statue of the Wolf
-				itemPrice 	= 7500,
-			},
-			[119922] = {	-- Torn Worm Cult Banner
-				itemPrice 	= 10000,
-			},
-			[119920] = {	-- Totem of the Reach
-				itemPrice 	= 40000,
-			},
-			[119916] = {	-- Ysgramor Statue
-				itemPrice 	= 20000,
-			},
-		},
-	},
-
-
-	["Alik'r, Kozanzet, Sweetwater Inn"] = {
-		[GetString(FURC_AV_LOT)] = {
-			[119879]	= { 		-- Kneeling Ansei Statue
-				itemPrice 	= 15000,
-			},
-			[119877]	= { 		-- Reconstructed Necromantic Focus
-				itemPrice 	= 5000,
-			},
-			[119880]	= { 		-- Replica Of Shattered Ansei Sword
-				itemPrice 	= 35000,
-			},
-			[119878]	= { 		-- Standing Ansei Statue
-				itemPrice 	= 15000,
-			},
-			[119876]	= { 		-- Tu'whacca's Braizer
-				itemPrice 	= 5000,
-			},
-		},
-		[GetString(FURC_AV_ROH)] = miscVendor,
-	},
-	["Bangkorai, Evermore"] = {
-		[GetString(FURC_AV_LOT)] = {
-			[119885] = {		-- ceremonial Redguard vessel
-				itemPrice 	= 3000,
-			},
-			[119882] = {		-- Damaged Knight of St. Pelin statue
-				itemPrice 	= 5000,
-			},
-			[119883] = {		-- Evermore Mourning Banner
-				itemPrice 	= 4000,
-			},
-			[119881] = {		-- Glenmoril Wyrd Stone
-				itemPrice 	= 5000,
-			},
-			[119884] = {		-- Ragged Imperial Banner
-				itemPrice 	= 4000,
-			},
-
-		},
-		[GetString(FURC_AV_ROH)] = {
-			[120449] = {		-- Bush, Desert Scrub
-				itemPrice 	= 100,
-			},
-			[120457] = {		-- Pebble, smooth desert
-				itemPrice 	= 100,
-			},
-			[120461] = {		-- Cactus, Desert Wine
-				itemPrice 	= 500,
-			},
-			[120452] = {		-- Pebble, smooth grey
-				itemPrice 	= 100,
-			},
-			[120460] = {		-- Plant, green water
-				itemPrice 	= 100,
-			},
-			[120450] = {		-- plant, squat Yucca
-				itemPrice 	= 100,
-			},
-			[120462] = {		-- Plant, tall flowering Yucca
-				itemPrice 	= 100,
-			},
-			[120440] = {		-- Rocks, Scattered, Weatherd
-				itemPrice 	= 100,
-			},
-			[120454] = {		-- Rocks, Stacked Desert
-				itemPrice 	= 100,
-			},
-			[120438] = {		-- Rocks, Stacked Weathered
-				itemPrice 	= 100,
-			},
-			[120441] = {		-- Sapling, Short Highland
-				itemPrice 	= 100,
-			},
-			[120443] = {		-- Sapling, Strong Highland
-				itemPrice 	= 100,
-			},
-			[120443] = {		-- Sapling, Tall Highland
-				itemPrice 	= 100,
-			},
-			[120442] = {		-- Sapling, Squat Highland
-				itemPrice 	= 100,
-			},
-			[120459] = {		-- Shrub, Browncrub
-				itemPrice 	= 100,
-			},
-			[120458] = {		-- Shrub, Speckled Forest
-				itemPrice 	= 250,
-			},
-			[120446] = {		-- Small Juniper Tree
-				itemPrice 	= 100,
-			},
-			[120451] = {		-- Stones, Smooth Gray
-				itemPrice 	= 100,
-			},
-			[120455] = {		-- Stone, stacked desert
-				itemPrice 	= 100,
-			},
-			[120439] = {		-- Stone, tapered weathered
-				itemPrice 	= 100,
-			},
-			[120445] = {		-- Sturdy Juniper Tree
-				itemPrice 	= 100,
-			},
-			[120453] = {		-- Tree, hardened Juniper
-				itemPrice 	= 100,
-			},
-			[120448] = {		-- Tree, old Juniper
-				itemPrice 	= 100,
-			},
-
-		},
-	},
-	["Bethnikh, near tavern"] = {
-		[GetString(FURC_AV_LOT)] = {
-			[119984] = {		-- Pirate Banner
-				itemPrice 	= 10000,
-			},
-		},
-		[GetString(FURC_AV_ROH)] = miscVendor,
-	},
-	["Glenumbra, Daggerfall, The Rosy Lion"] = {
-		[GetString(FURC_AV_LOT)] = {
-			[119855] = {		-- Wyrstone
-				itemPrice 	= 2500,
-			},
-			[119856] = {		-- Torn Lion Guard Banner
-				itemPrice 	= 5000,
-			},
-			[119862] = {		-- Hagraven Totem
-				itemPrice 	= 5000,
-			},
-			[119857] = {		-- Breton Gravewatcher Statue
-				itemPrice 	= 25000,
-			},
-			[119858] = {		-- Bloodthorn Vines, small
-				itemPrice 	= 5000,
-			},
-		},
-		[GetString(FURC_AV_ROH)] = {
-			[121011] = {		-- Trees, young autumn birch
-				itemPrice 	= 100,
-			},
-			[120713] = {		-- Trees, Towering Autumn Birch
-				itemPrice 	= 250,
-			},
-			[120720] = {		-- Shrubs, Small Berry
-				itemPrice 	= 100,
-			},
-			[120718] = {		-- Shrub, Dense Forest
-				itemPrice 	= 100,
-			},
-			[120717] = {		-- Shrub, Autumn Forest
-				itemPrice 	= 100,
-			},
-			[120711] = {		-- Sapling, Young Birch
-				itemPrice 	= 250,
-			},
-			[120716] = {		-- Sapling, Autumn Cluster
-				itemPrice 	= 100,
-			},
-			[120708] = {		-- Rocks, Craggy set
-				itemPrice 	= 100,
-			},
-			[120527] = {		-- Fern Plant, Green Curly
-				itemPrice 	= 100,
-			},
-			[120707] = {		-- Boulder, Mossy Weathered
-				itemPrice 	= 100,
-			},
-			[120705] = {		-- Boulder, Mossy Grey
-				itemPrice 	= 100,
-			},
-			[120706] = {		-- Boulder, Giant Mossy
-				itemPrice 	= 100,
-			},
-
-		},
-	},
-	["Rivenspire, Shornhelm, Dead Wolf Inn"] = {
-		[GetString(FURC_AV_LOT)] = {
-			[119871] = {		-- Wagon of DETH
-				itemPrice 	= 25000,
-			},
-			[120951] = {		-- Hope of Rivenspire
-				itemPrice 	= 5000,
-			},
-			[119875] = {		-- Gargoyle Statue
-				itemPrice 	= 50000,
-			},
-			[120040] = {		-- Crimson-Stained Bowl
-				itemPrice 	= 2500,
-			},
-			[119870] = {		-- Constellation: The Tower
-				itemPrice 	= 10000,
-			},
-			[119869] = {		-- Constellation: The Shadow
-				itemPrice 	= 10000,
-			},
-			[119868] = {		-- Constellation: The Ritual
-				itemPrice 	= 10000,
-			},
-		},
-		[GetString(FURC_AV_ROH)] = {
-			[120578] = {		-- Sapling, Young Aspen
-				itemPrice 	= 100,
-			},
-			[120576] = {		-- Sapling ,Fragile Aspen
-				itemPrice 	= 100,
-			},
-			[120579] = {		-- Flower, Stout Hibiscus
-				itemPrice 	= 250,
-			},
-			[120580] = {		-- Flower, Healthy Hibiscus
-				itemPrice 	= 250,
-			},
-		},
-	},
-	["Stormhaven, Wayrest, Merchant district"] = {
-		[GetString(FURC_AV_LOT)] = {
-			[119865] = {		-- Wayrest Guillotine
-				itemPrice 	= 75000,
-			},
-			[119867] = {		-- Vaermina Statue
-				itemPrice 	= 75000,
-			},
-			[119864] = {		-- Spirit Warden Azura Statue
-				itemPrice 	= 75000,
-			},
-			[119866] = {		-- Replica Dreamshard
-				itemPrice 	= 2000,
-			},
-			[119863] = {		-- Knights of the Flame Banner
-				itemPrice 	= 10000,
-			},
-		},
-		[GetString(FURC_AV_ROH)] = {
-
-			[120582] = {		-- Tree, Yellowing Oak
-				itemPrice 	= 20000,
-			},
-			[120442] = {		-- Sapling, Squat Highland
-				itemPrice 	= 100,
-			},
-			[120444] = {		-- Sapling, Tall Highland
-				itemPrice 	= 100,
-			},
-			[120443] = {		-- Sapling, strong Highland
-				itemPrice 	= 100,
-			},
-		}
-	},
-
-	["Skywatch, Auridon"]	= {
-		[GetString(FURC_AV_ATH)] = {
-			[119823] = {		-- Tanzelwil Culanda Stone
-				itemPrice 	= 5000,
-			},
-			[119824] = {		-- Veiled Crystal
-				itemPrice 	= 5000,
-			},
-			[119825] = {		-- Mehrunes Dagon Brazier
-				itemPrice 	= 10000,
-			},
-			[119826] = {		-- High Elf Throne
-				itemPrice 	= 25000,
-			},
-			[119827] = {		-- Ancient High Elf Statue
-				itemPrice 	= 35000,
-			},
-		},
-		[GetString(FURC_AV_MAL)] = {
-			[120663] = {		-- Saplings, Healthy Forest
-				itemPrice 	= 100,
-			},
-			[120662] = {		-- Saplings, Squat Forest
-				itemPrice 	= 100,
-			},
-			[120661] = {		-- Saplings, Young Forest
-				itemPrice 	= 100,
-			},
-
-		},
-	},
-	["Greenshade, Marbruk"] = {
-		[GetString(FURC_AV_MAL)] = {
-			[120597] = { 		-- Fern Plant, Vibrant
-				itemPrice 	= 100,
-			},
-			[120599] = { 		-- Fern, Healthy Green
-				itemPrice 	= 100,
-			},
-			[120595] = { 		-- Fern, Lush
-				itemPrice 	= 100,
-			},
-			[120600] = { 		-- Fern, Young, Healthy
-				itemPrice 	= 100,
-			},
-			[120598] = { 		-- Plants, Low weeds
-				itemPrice 	= 100,
-			},
-			[120588] = { 		-- Rock, Slanted Algae
-				itemPrice 	= 100,
-			},
-			[120590] = { 		-- Rocks, Smooth Set
-				itemPrice 	= 100,
-			},
-			[120592] = { 		-- Saplings, Highland Cluster
-				itemPrice 	= 100,
-			},
-			[120593] = { 		-- Saplings, Twin Highland
-				itemPrice 	= 100,
-			},
-			[120589] = { 		-- Stone, Slanted Weathered
-				itemPrice 	= 100,
-			},
-			[120591] = { 		-- Tree, Vibrant Privet
-				itemPrice 	= 250,
-			},
-			[120587] = { 		-- Boulder, Flat Grey
-				itemPrice 	= 250,
-			},
-			[120586] = { 		-- Boulder, Moss Covered
-				itemPrice 	= 250,
-			},
-
-		},
-
-
-		[GetString(FURC_AV_ATH)] = {
-			[119839] = { 		-- Fires of the WIlderking
-				itemPrice 	= 4000,
-			},
-			[119841] = { 		-- Hectahame Arboretum Relic
-				itemPrice 	= 10000,
-			},
-			[120991] = { 		-- Rise of the Silvenaar
-				itemPrice 	= 5000,
-			},
-			[119840] = { 		-- Sea Elf Banner
-				itemPrice 	= 10000,
-			},
-			[119842] = { 		--
-				itemPrice 	= 7500,
-			},
-		},
-
-	},
-	["Khenarthi's Roost, Mistral"] = {
-			[GetString(FURC_AV_MAL)] = miscVendor,
-			[GetString(FURC_AV_ATH)] = {
-				[119986] = {		-- Maomer Totem
-					itemPrice 	= 10000,
-				},
-			},
-	},
-	["Malabal Tor, Vulkwaesten, tavern"] = {
-			[GetString(FURC_AV_MAL)] = {
-				[120529] = {		-- Fern Cluster, Healthy
-					itemPrice 	= 100,
-				},
-				[120531] = {		-- Fern Fronts, Healthy Green
-					itemPrice 	= 100,
-				},
-				[120530] = {		-- Fern Fronds, Sunburst
-					itemPrice 	= 100,
-				},
-				[120527] = {		-- Fern Plant, Green Curly
-					itemPrice 	= 100,
-				},
-				[120528] = {		-- Fern Plant, Sturdy Mature
-					itemPrice 	= 100,
-				},
-				[120640] = {		-- Fern, Budding Forest
-					itemPrice 	= 100,
-				},
-				[120641] = {		-- Fern, Low Red
-					itemPrice 	= 100,
-				},
-				[120642] = {		-- Mushrooms, Brown Gilled
-					itemPrice 	= 100,
-				},
-				[120534] = {		-- Mushroom, Bruising Webcap
-					itemPrice 	= 250,
-				},
-				[120532] = {		-- Mushrooms, Poison Pax Cluster
-					itemPrice 	= 100,
-				},
-				[120533] = {		-- Mushrooms, Poison Pax Group
-					itemPrice 	= 100,
-				},
-				[120638] = {		-- Rock, Slanted Weathered
-					itemPrice 	= 100,
-				},
-				[120523] = {		-- Rocks, Mossy Cluster
-					itemPrice 	= 100,
-				},
-				[120524] = {		-- Rocks, Mossy Set
-					itemPrice 	= 100,
-				},
-				[120639] = {		-- Stones, Smooth Mossy
-					itemPrice 	= 100,
-				},
-				[120525] = {		-- Tree, Mossy Swamp
-					itemPrice 	= 100,
-				},
-				[120643] = {		-- Vines, Curtain Ivy
-					itemPrice 	= 750,
-				},
-				[120645] = {		-- Vines, Draped Ivy
-					itemPrice 	= 750,
-				},
-				[120644] = {		-- Vines, Lush Ivy
-					itemPrice 	= 600,
-				},
-			},
-			[GetString(FURC_AV_ATH)] = {
-				[119847] = {		-- Handfast
-					itemPrice 	= 25000,
-				},
-				[119846] = {		-- Handfast Pedestal
-					itemPrice 	= 5000,
-				},
-				[119845] = {		-- Wood Elf Union Trellis
-					itemPrice 	= 15000,
-				},
-				[119843] = {		-- Wood Orc Dream Catcher
-					itemPrice 	= 4000,
-				},
-				[119844] = {		-- Wood Orc Malacath Banner
-					itemPrice 	= 10000,
-				},
-			},
-	},
-	["Grahtwood, Redfur Trading Post"] = {
-			[GetString(FURC_AV_MAL)] = {
-				[120725] = {		-- Boulder, Mossy Crag
-					itemPrice 	= 100,
-				},
-				[121285] = {		-- Tree, Ancient Banyan
-					itemPrice 	= 25000,
-				},
-				[121286] = {		-- Tree, Giant Cypress
-					itemPrice 	= 5000,
-				},
-				[121287] = {		-- Tree, Towering Cypress
-					itemPrice 	= 5000,
-				},
-				[120742] = {		-- Tree, Twisted Banyan
-					itemPrice 	= 25000,
-				},
-				[119578] = {		-- Tree, Towering Palm Cluster
-					itemPrice 	= 100,
-				},
-				[120741] = {		-- Tree, Towering Wax Palm
-					itemPrice 	= 250,
-				},
-				[121288] = {		-- Tree, Mossy Murkmire Cluster
-					itemPrice 	= 250,
-				},
-				[117975] = {		-- Rough Hay Bed, Sloppy
-					itemPrice 	= 100,
-				},
-			},
-			[GetString(FURC_AV_ATH)] = {
-				[119834] = {		-- Aulus's Captive Audience
-					itemPrice 	= 10000,
-				},
-				[119836] = {		-- Guardian Mane
-					itemPrice 	= 10000,
-				},
-				[119837] = {		-- Orrery Control Pillar Replica
-					itemPrice 	= 10000,
-				},
-				[119835] = {		-- Ukaezai's Ward
-					itemPrice 	= 10000,
-				},
-				[119838] = {		-- Valenwood Brazier
-					itemPrice 	= 4000,
-				},
-			},
-	},
-
-	["Reaper's March, Rawl'Kha, Market"] = {
-			[GetString(FURC_AV_MAL)] = {
-				[120998] = { -- Block, Wood Cutting
+  [GetString(FURC_AV_CAPITAL)] = {
+    [GetString(FURC_AV_NAR)] = capitalVendor,
+    [GetString(FURC_AV_HER)] = jesterVendor,
+  },
+  -- location name
+  ["Mournhold Bank"] = {
+    -- vendor name
+    [GetString(FURC_AV_LTS)]    = {
+      [119908] = {  -- Swamp Anemone
+        itemPrice   = 15000,
+      },
+      [119914] = {  -- Touch of Plague
+        itemPrice   = 500,
+      },
+      [119913] = {  -- Tribunal Altar
+        itemPrice   = 25000,
+      },
+      [119911] = {  -- Tribunal Rug
+        itemPrice   = 5000,
+      },
+      [119910] = {  -- Veloth's Reliquary
+        itemPrice   = 50000,
+      },
+    },
+    [GetString(FURC_AV_FRO)] = {
+      [120567] = {  -- Bush,Vibrant Barberry
+        itemPrice   = 250,
+      },
+      [120566] = {  -- Fern Plant,Healthy Green
+        itemPrice   = 100,
+      },
+      [120574] = {  -- Mushroom,Huge Chanterelle
+        itemPrice   = 250,
+      },
+      [120568] = {  -- Mushroom,Tall Chanterelle
+        itemPrice   = 250,
+      },
+    },
+
+  },
+  ["Dhalmora, Bal Foyen"] = {
+
+    [GetString(FURC_AV_FRO)] = {
+      [120502] = {  -- Flower, Grandmother Hibiscus
+        itemPrice   = 1000,
+      },
+      [120621] = {  -- Plant, Red Aloe
+        itemPrice   = 250,
+      },
+      [120620] = {  -- Plant, Red Aloe Succulent
+        itemPrice   = 250,
+      },
+      [120618] = {  -- Tree, Gnarled Ashflower
+        itemPrice   = 5000,
+      },
+      [120619] = {  -- Tree, Twisted Ashflower
+        itemPrice   = 7500,
+      },
+      [120622] = {  -- Vines, Clustered Ivy
+        itemPrice   = 600,
+      },
+
+    },
+    [GetString(FURC_AV_LTS)]    = {
+      [120956] = {  -- Atmoran Eagle Totem Medallion
+        itemPrice   = 3000,
+      },
+      [120954] = {  -- Atmoran Snake Totem Medallion
+        itemPrice   = 3000,
+      },
+      [120955] = {  -- Atmoran Whale Totem Medallion
+        itemPrice   = 3000,
+      },
+    },
+
+  },
+  ["Stonefalls, Ebonheart"] = {
+
+    [GetString(FURC_AV_FRO)] = {
+      [120502] = {  -- Flower, Grandmother Hibiscus
+        itemPrice   = 1000,
+      },
+      [121028] = {  -- Hedge, Dense Low Wall
+        itemPrice   = 1300,
+      },
+
+      [121284] = {  -- Dark Elf Column Lantern
+        itemPrice   = 250,
+      },
+
+      [120621] = {  -- Plant, Red Aloe
+        itemPrice   = 250,
+      },[120620] = {  -- Plant, Red Aloe Succulent
+        itemPrice   = 250,
+      },
+      [120618] = {  -- Tree, Gnarled Ashflower
+        itemPrice   = 5000,
+      },
+      [120619] = {  -- Tree, Twisted Ashflower
+        itemPrice   = 7500,
+      },
+      [120622] = {  -- Vines, Clustered Ivy
+        itemPrice   = 600,
+      },
+      [120680] = {  -- Topiary, Fragile Cypress
+        itemPrice   = 2500,
+      },
+      [120681] = {  -- Topiary, Pruned Cypress
+        itemPrice   = 1100,
+      },
+      [120677] = {  -- Tree, Autumn Cherry Blossom
+        itemPrice   = 15000,
+      },
+    },
+
+    [GetString(FURC_AV_LTS)]    = {
+      [119890] = {  -- Blood Fountain
+        itemPrice   = 100000,
+      },
+      [119889] = {  -- Daedric Sconce
+        itemPrice   = 5000,
+      },
+      [119888] = {  -- Lacquered Kwama Egg
+        itemPrice   = 1000,
+      },
+      [119892] = {  -- Remnant of Balreth
+        itemPrice   = 15000,
+      },
+      [119887] = {  -- Serien's Stand
+        itemPrice   = 10000,
+      },
+    },
+
+  },
+  ["Eastmarch, Fort Amol"] = {
+
+    [GetString(FURC_AV_FRO)] = miscVendor,
+
+
+    [GetString(FURC_AV_LTS)]    = {
+      [119905] = {  -- Dragon Shrine Altar
+        itemPrice   = 20000,
+      },
+      [119901] = {  -- Lob's Challenge Horn
+        itemPrice   = 1000,
+      },
+      [119904] = {  -- Standing Slab
+        itemPrice   = 1000,
+      },
+      [119906] = {  -- Throne of the Skald King
+        itemPrice   = 50000,
+      },
+      [119907] = {  -- Visage of the Skald
+        itemPrice   = 25000,
+      },
+    },
+
+  },
+  ["Shadowfen, Alten Corimont"] = {
+
+    [GetString(FURC_AV_FRO)] = {
+      [120502] = {  -- Flower, Grandmother Hibiscus
+        itemPrice   = 1000,
+      },
+      [120630] = {  -- Pebble, Stacked Lichen
+        itemPrice   = 100,
+      },
+      [120632] = {  -- Pebble, Stacked Mossy
+        itemPrice   = 100,
+      },
+      [120637] = {  -- Plant, Dry Spike
+        itemPrice   = 100,
+      },
+      [120627] = {  -- Rocks, Stacked Angular
+        itemPrice   = 100,
+      },
+      [120628] = {  -- Rocks, Slanted Mossy
+        itemPrice   = 100,
+      },
+      [120629] = {  -- Rocks, Smooth Mossy
+        itemPrice   = 100,
+      },
+      [120634] = {  -- Tree, Towering Swamp Palm
+        itemPrice   = 250,
+      },
+      [120636] = {  -- Tree, Mud Palm
+        itemPrice   = 250,
+      },
+
+    },
+
+    [GetString(FURC_AV_LTS)]    = {
+      [119897] = {  -- Argonian Egg
+        itemPrice   = 2500,
+      },
+      [119893] = {  -- Mimic Hist Tree
+        itemPrice   = 20000,
+      },
+      [119900] = {  -- Oblivion Stone
+        itemPrice   = 5000,
+      },
+      [119898] = {  -- Replica Mnemic Egg
+        itemPrice   = 100000,
+      },
+      [119899] = {  -- Replica Stone Nest
+        itemPrice   = 10000,
+      },
+    },
+
+  },
+  ["Riften, Market, Armorer"] = {
+
+    [GetString(FURC_AV_FRO)] = {
+      [120502] = {  -- Flower, Grandmother Hibiscus
+        itemPrice   = 1000,
+      },
+      [120492] = {  -- Boulder, Flat , Weathered
+        itemPrice   = 100,
+      },
+      [120496] = {  -- Fern, dead
+        itemPrice   = 100,
+      },
+      [120494] = {  -- Pebble, Stacked, Weathered
+        itemPrice   = 100,
+      },
+      [120493] = {  -- Rock, Slanted, Tan
+        itemPrice   = 100,
+      },
+      [120495] = {  -- Sapling, Budding Red
+        itemPrice   = 100,
+      },
+      [120500] = {  -- Sapling, Tender Autumn
+        itemPrice   = 100,
+      },
+      [120499] = {  -- Sapling, Tender Harvest
+        itemPrice   = 250,
+      },
+    },
+
+    [GetString(FURC_AV_LTS)]    = {
+      [119915] = {  -- Ancient Cultist Totem
+        itemPrice   = 5000,
+      },
+      [119918] = {  -- Statue of the Wolf
+        itemPrice   = 7500,
+      },
+      [119922] = {  -- Torn Worm Cult Banner
+        itemPrice   = 10000,
+      },
+      [119920] = {  -- Totem of the Reach
+        itemPrice   = 40000,
+      },
+      [119916] = {  -- Ysgramor Statue
+        itemPrice   = 20000,
+      },
+    },
+  },
+
+
+  ["Alik'r, Kozanzet, Sweetwater Inn"] = {
+    [GetString(FURC_AV_LOT)] = {
+      [119879]  = {     -- Kneeling Ansei Statue
+        itemPrice   = 15000,
+      },
+      [119877]  = {     -- Reconstructed Necromantic Focus
+        itemPrice   = 5000,
+      },
+      [119880]  = {     -- Replica Of Shattered Ansei Sword
+        itemPrice   = 35000,
+      },
+      [119878]  = {     -- Standing Ansei Statue
+        itemPrice   = 15000,
+      },
+      [119876]  = {     -- Tu'whacca's Braizer
+        itemPrice   = 5000,
+      },
+    },
+    [GetString(FURC_AV_ROH)] = miscVendor,
+  },
+  ["Bangkorai, Evermore"] = {
+    [GetString(FURC_AV_LOT)] = {
+      [119885] = {    -- ceremonial Redguard vessel
+        itemPrice   = 3000,
+      },
+      [119882] = {    -- Damaged Knight of St. Pelin statue
+        itemPrice   = 5000,
+      },
+      [119883] = {    -- Evermore Mourning Banner
+        itemPrice   = 4000,
+      },
+      [119881] = {    -- Glenmoril Wyrd Stone
+        itemPrice   = 5000,
+      },
+      [119884] = {    -- Ragged Imperial Banner
+        itemPrice   = 4000,
+      },
+
+    },
+    [GetString(FURC_AV_ROH)] = {
+      [120449] = {    -- Bush, Desert Scrub
+        itemPrice   = 100,
+      },
+      [120457] = {    -- Pebble, smooth desert
+        itemPrice   = 100,
+      },
+      [120461] = {    -- Cactus, Desert Wine
+        itemPrice   = 500,
+      },
+      [120452] = {    -- Pebble, smooth grey
+        itemPrice   = 100,
+      },
+      [120460] = {    -- Plant, green water
+        itemPrice   = 100,
+      },
+      [120450] = {    -- plant, squat Yucca
+        itemPrice   = 100,
+      },
+      [120462] = {    -- Plant, tall flowering Yucca
+        itemPrice   = 100,
+      },
+      [120440] = {    -- Rocks, Scattered, Weatherd
+        itemPrice   = 100,
+      },
+      [120454] = {    -- Rocks, Stacked Desert
+        itemPrice   = 100,
+      },
+      [120438] = {    -- Rocks, Stacked Weathered
+        itemPrice   = 100,
+      },
+      [120441] = {    -- Sapling, Short Highland
+        itemPrice   = 100,
+      },
+      [120443] = {    -- Sapling, Strong Highland
+        itemPrice   = 100,
+      },
+      [120443] = {    -- Sapling, Tall Highland
+        itemPrice   = 100,
+      },
+      [120442] = {    -- Sapling, Squat Highland
+        itemPrice   = 100,
+      },
+      [120459] = {    -- Shrub, Browncrub
+        itemPrice   = 100,
+      },
+      [120458] = {    -- Shrub, Speckled Forest
+        itemPrice   = 250,
+      },
+      [120446] = {    -- Small Juniper Tree
+        itemPrice   = 100,
+      },
+      [120451] = {    -- Stones, Smooth Gray
+        itemPrice   = 100,
+      },
+      [120455] = {    -- Stone, stacked desert
+        itemPrice   = 100,
+      },
+      [120439] = {    -- Stone, tapered weathered
+        itemPrice   = 100,
+      },
+      [120445] = {    -- Sturdy Juniper Tree
+        itemPrice   = 100,
+      },
+      [120453] = {    -- Tree, hardened Juniper
+        itemPrice   = 100,
+      },
+      [120448] = {    -- Tree, old Juniper
+        itemPrice   = 100,
+      },
+
+    },
+  },
+  ["Bethnikh, near tavern"] = {
+    [GetString(FURC_AV_LOT)] = {
+      [119984] = {    -- Pirate Banner
+        itemPrice   = 10000,
+      },
+    },
+    [GetString(FURC_AV_ROH)] = miscVendor,
+  },
+  ["Glenumbra, Daggerfall, The Rosy Lion"] = {
+    [GetString(FURC_AV_LOT)] = {
+      [119855] = {    -- Wyrstone
+        itemPrice   = 2500,
+      },
+      [119856] = {    -- Torn Lion Guard Banner
+        itemPrice   = 5000,
+      },
+      [119862] = {    -- Hagraven Totem
+        itemPrice   = 5000,
+      },
+      [119857] = {    -- Breton Gravewatcher Statue
+        itemPrice   = 25000,
+      },
+      [119858] = {    -- Bloodthorn Vines, small
+        itemPrice   = 5000,
+      },
+    },
+    [GetString(FURC_AV_ROH)] = {
+      [121011] = {    -- Trees, young autumn birch
+        itemPrice   = 100,
+      },
+      [120713] = {    -- Trees, Towering Autumn Birch
+        itemPrice   = 250,
+      },
+      [120720] = {    -- Shrubs, Small Berry
+        itemPrice   = 100,
+      },
+      [120718] = {    -- Shrub, Dense Forest
+        itemPrice   = 100,
+      },
+      [120717] = {    -- Shrub, Autumn Forest
+        itemPrice   = 100,
+      },
+      [120711] = {    -- Sapling, Young Birch
+        itemPrice   = 250,
+      },
+      [120716] = {    -- Sapling, Autumn Cluster
+        itemPrice   = 100,
+      },
+      [120708] = {    -- Rocks, Craggy set
+        itemPrice   = 100,
+      },
+      [120527] = {    -- Fern Plant, Green Curly
+        itemPrice   = 100,
+      },
+      [120707] = {    -- Boulder, Mossy Weathered
+        itemPrice   = 100,
+      },
+      [120705] = {    -- Boulder, Mossy Grey
+        itemPrice   = 100,
+      },
+      [120706] = {    -- Boulder, Giant Mossy
+        itemPrice   = 100,
+      },
+
+    },
+  },
+  ["Rivenspire, Shornhelm, Dead Wolf Inn"] = {
+    [GetString(FURC_AV_LOT)] = {
+      [119871] = {    -- Wagon of DETH
+        itemPrice   = 25000,
+      },
+      [120951] = {    -- Hope of Rivenspire
+        itemPrice   = 5000,
+      },
+      [119875] = {    -- Gargoyle Statue
+        itemPrice   = 50000,
+      },
+      [120040] = {    -- Crimson-Stained Bowl
+        itemPrice   = 2500,
+      },
+      [119870] = {    -- Constellation: The Tower
+        itemPrice   = 10000,
+      },
+      [119869] = {    -- Constellation: The Shadow
+        itemPrice   = 10000,
+      },
+      [119868] = {    -- Constellation: The Ritual
+        itemPrice   = 10000,
+      },
+    },
+    [GetString(FURC_AV_ROH)] = {
+      [120578] = {    -- Sapling, Young Aspen
+        itemPrice   = 100,
+      },
+      [120576] = {    -- Sapling ,Fragile Aspen
+        itemPrice   = 100,
+      },
+      [120579] = {    -- Flower, Stout Hibiscus
+        itemPrice   = 250,
+      },
+      [120580] = {    -- Flower, Healthy Hibiscus
+        itemPrice   = 250,
+      },
+    },
+  },
+  ["Stormhaven, Wayrest, Merchant district"] = {
+    [GetString(FURC_AV_LOT)] = {
+      [119865] = {    -- Wayrest Guillotine
+        itemPrice   = 75000,
+      },
+      [119867] = {    -- Vaermina Statue
+        itemPrice   = 75000,
+      },
+      [119864] = {    -- Spirit Warden Azura Statue
+        itemPrice   = 75000,
+      },
+      [119866] = {    -- Replica Dreamshard
+        itemPrice   = 2000,
+      },
+      [119863] = {    -- Knights of the Flame Banner
+        itemPrice   = 10000,
+      },
+    },
+    [GetString(FURC_AV_ROH)] = {
+
+      [120582] = {    -- Tree, Yellowing Oak
+        itemPrice   = 20000,
+      },
+      [120442] = {    -- Sapling, Squat Highland
+        itemPrice   = 100,
+      },
+      [120444] = {    -- Sapling, Tall Highland
+        itemPrice   = 100,
+      },
+      [120443] = {    -- Sapling, strong Highland
+        itemPrice   = 100,
+      },
+    }
+  },
+
+  ["Skywatch, Auridon"]  = {
+    [GetString(FURC_AV_ATH)] = {
+      [119823] = {    -- Tanzelwil Culanda Stone
+        itemPrice   = 5000,
+      },
+      [119824] = {    -- Veiled Crystal
+        itemPrice   = 5000,
+      },
+      [119825] = {    -- Mehrunes Dagon Brazier
+        itemPrice   = 10000,
+      },
+      [119826] = {    -- High Elf Throne
+        itemPrice   = 25000,
+      },
+      [119827] = {    -- Ancient High Elf Statue
+        itemPrice   = 35000,
+      },
+    },
+    [GetString(FURC_AV_MAL)] = {
+      [120663] = {    -- Saplings, Healthy Forest
+        itemPrice   = 100,
+      },
+      [120662] = {    -- Saplings, Squat Forest
+        itemPrice   = 100,
+      },
+      [120661] = {    -- Saplings, Young Forest
+        itemPrice   = 100,
+      },
+
+    },
+  },
+  ["Greenshade, Marbruk"] = {
+    [GetString(FURC_AV_MAL)] = {
+      [120597] = {     -- Fern Plant, Vibrant
+        itemPrice   = 100,
+      },
+      [120599] = {     -- Fern, Healthy Green
+        itemPrice   = 100,
+      },
+      [120595] = {     -- Fern, Lush
+        itemPrice   = 100,
+      },
+      [120600] = {     -- Fern, Young, Healthy
+        itemPrice   = 100,
+      },
+      [120598] = {     -- Plants, Low weeds
+        itemPrice   = 100,
+      },
+      [120588] = {     -- Rock, Slanted Algae
+        itemPrice   = 100,
+      },
+      [120590] = {     -- Rocks, Smooth Set
+        itemPrice   = 100,
+      },
+      [120592] = {     -- Saplings, Highland Cluster
+        itemPrice   = 100,
+      },
+      [120593] = {     -- Saplings, Twin Highland
+        itemPrice   = 100,
+      },
+      [120589] = {     -- Stone, Slanted Weathered
+        itemPrice   = 100,
+      },
+      [120591] = {     -- Tree, Vibrant Privet
+        itemPrice   = 250,
+      },
+      [120587] = {     -- Boulder, Flat Grey
+        itemPrice   = 250,
+      },
+      [120586] = {     -- Boulder, Moss Covered
+        itemPrice   = 250,
+      },
+
+    },
+
+
+    [GetString(FURC_AV_ATH)] = {
+      [119839] = {     -- Fires of the WIlderking
+        itemPrice   = 4000,
+      },
+      [119841] = {     -- Hectahame Arboretum Relic
+        itemPrice   = 10000,
+      },
+      [120991] = {     -- Rise of the Silvenaar
+        itemPrice   = 5000,
+      },
+      [119840] = {     -- Sea Elf Banner
+        itemPrice   = 10000,
+      },
+      [119842] = {     --
+        itemPrice   = 7500,
+      },
+    },
+
+  },
+  ["Khenarthi's Roost, Mistral"] = {
+      [GetString(FURC_AV_MAL)] = miscVendor,
+      [GetString(FURC_AV_ATH)] = {
+        [119986] = {    -- Maomer Totem
+          itemPrice   = 10000,
+        },
+      },
+  },
+  ["Malabal Tor, Vulkwaesten, tavern"] = {
+      [GetString(FURC_AV_MAL)] = {
+        [120529] = {    -- Fern Cluster, Healthy
+          itemPrice   = 100,
+        },
+        [120531] = {    -- Fern Fronts, Healthy Green
+          itemPrice   = 100,
+        },
+        [120530] = {    -- Fern Fronds, Sunburst
+          itemPrice   = 100,
+        },
+        [120527] = {    -- Fern Plant, Green Curly
+          itemPrice   = 100,
+        },
+        [120528] = {    -- Fern Plant, Sturdy Mature
+          itemPrice   = 100,
+        },
+        [120640] = {    -- Fern, Budding Forest
+          itemPrice   = 100,
+        },
+        [120641] = {    -- Fern, Low Red
+          itemPrice   = 100,
+        },
+        [120642] = {    -- Mushrooms, Brown Gilled
+          itemPrice   = 100,
+        },
+        [120534] = {    -- Mushroom, Bruising Webcap
+          itemPrice   = 250,
+        },
+        [120532] = {    -- Mushrooms, Poison Pax Cluster
+          itemPrice   = 100,
+        },
+        [120533] = {    -- Mushrooms, Poison Pax Group
+          itemPrice   = 100,
+        },
+        [120638] = {    -- Rock, Slanted Weathered
+          itemPrice   = 100,
+        },
+        [120523] = {    -- Rocks, Mossy Cluster
+          itemPrice   = 100,
+        },
+        [120524] = {    -- Rocks, Mossy Set
+          itemPrice   = 100,
+        },
+        [120639] = {    -- Stones, Smooth Mossy
+          itemPrice   = 100,
+        },
+        [120525] = {    -- Tree, Mossy Swamp
+          itemPrice   = 100,
+        },
+        [120643] = {    -- Vines, Curtain Ivy
+          itemPrice   = 750,
+        },
+        [120645] = {    -- Vines, Draped Ivy
+          itemPrice   = 750,
+        },
+        [120644] = {    -- Vines, Lush Ivy
+          itemPrice   = 600,
+        },
+      },
+      [GetString(FURC_AV_ATH)] = {
+        [119847] = {    -- Handfast
+          itemPrice   = 25000,
+        },
+        [119846] = {    -- Handfast Pedestal
+          itemPrice   = 5000,
+        },
+        [119845] = {    -- Wood Elf Union Trellis
+          itemPrice   = 15000,
+        },
+        [119843] = {    -- Wood Orc Dream Catcher
+          itemPrice   = 4000,
+        },
+        [119844] = {    -- Wood Orc Malacath Banner
+          itemPrice   = 10000,
+        },
+      },
+  },
+  ["Grahtwood, Redfur Trading Post"] = {
+      [GetString(FURC_AV_MAL)] = {
+        [120725] = {    -- Boulder, Mossy Crag
+          itemPrice   = 100,
+        },
+        [121285] = {    -- Tree, Ancient Banyan
+          itemPrice   = 25000,
+        },
+        [121286] = {    -- Tree, Giant Cypress
+          itemPrice   = 5000,
+        },
+        [121287] = {    -- Tree, Towering Cypress
+          itemPrice   = 5000,
+        },
+        [120742] = {    -- Tree, Twisted Banyan
+          itemPrice   = 25000,
+        },
+        [119578] = {    -- Tree, Towering Palm Cluster
+          itemPrice   = 100,
+        },
+        [120741] = {    -- Tree, Towering Wax Palm
+          itemPrice   = 250,
+        },
+        [121288] = {    -- Tree, Mossy Murkmire Cluster
+          itemPrice   = 250,
+        },
+        [117975] = {    -- Rough Hay Bed, Sloppy
+          itemPrice   = 100,
+        },
+      },
+      [GetString(FURC_AV_ATH)] = {
+        [119834] = {    -- Aulus's Captive Audience
+          itemPrice   = 10000,
+        },
+        [119836] = {    -- Guardian Mane
+          itemPrice   = 10000,
+        },
+        [119837] = {    -- Orrery Control Pillar Replica
+          itemPrice   = 10000,
+        },
+        [119835] = {    -- Ukaezai's Ward
+          itemPrice   = 10000,
+        },
+        [119838] = {    -- Valenwood Brazier
+          itemPrice   = 4000,
+        },
+      },
+  },
+
+  ["Reaper's March, Rawl'Kha, Market"] = {
+      [GetString(FURC_AV_MAL)] = {
+        [120998] = { -- Block, Wood Cutting
                  itemPrice = 100,
                 },
                 [120511] = { -- Bush, Mountain Scrub
@@ -2033,12 +2033,12 @@ FurC.AchievementVendors[FURC_HOMESTEAD] = {
                 [120687] = { -- Tree, Sturdy Shade
                  itemPrice = 250,
                 },
-				[120558] = {		-- Sapling, Eucalyptus Shrub
-					itemPrice 	= 100,
-				},
+        [120558] = {    -- Sapling, Eucalyptus Shrub
+          itemPrice   = 100,
+        },

-			},
-			[GetString(FURC_AV_ATH)] = {
+      },
+      [GetString(FURC_AV_ATH)] = {
                 [119848] = { -- Colovian Projection Crystal
                   itemPrice      = 5000,
                   achievement    = 536,
@@ -2068,528 +2068,528 @@ FurC.AchievementVendors[FURC_HOMESTEAD] = {
                   achievement    = 602,
                 },
             },
-	},
-	["Craglorn, Belkarth Woodworking store"] = {
-		[GetString(FURC_AV_LOT)] = {
-			[119933] = {		-- Craglorn Brazier
-				itemPrice 	= 5000,
-			},
-			[119934] = {		-- Craglorn Sconce
-				itemPrice 	= 5000,
-			},
-			[119931] = {		-- Craglorn Tapestrie
-				itemPrice 	= 35000,
-			},
-			[119925] = {		-- Nirncrux Bowl
-				itemPrice 	= 4000,
-			},
-			[119935] = {		-- Observatory Banner
-				itemPrice 	= 25000,
-			},
-			[119923] = {		-- Serpent Stone
-				itemPrice 	= 5000,
-			},
-			[119929] = {		-- Snake Prayer Tile
-				itemPrice 	= 5000,
-			},
-			[119930] = {		-- Totem of the Serpent
-				itemPrice 	= 10000,
-			},
-
-		},
-		[GetString(FURC_AV_KRR)] = {
-			[120964] = {		-- Boulder, Craggy Heap
-				itemPrice 	= 100,
-			},
-			[120545] = {		-- Tree, Sturdy Summer
-				itemPrice 	= 250,
-			},
-			[120963] = {		-- Boulder, Jagged Crag
-				itemPrice 	= 100,
-			},
-			[120552] = {		-- Bush, Flowering Scrub
-				itemPrice 	= 250,
-			},
-			[120555] = {		-- Flowers, Healthy Goldenrod
-				itemPrice 	= 250,
-			},
-			[120551] = {		-- Plant, Healthy Sage
-				itemPrice 	= 100,
-			},
-			[120977] = {		-- Plant, Strong Sage
-				itemPrice 	= 100,
-			},
-			[120966] = {		-- Rock, Craggy Rubble
-				itemPrice 	= 100,
-			},
-			[120539] = {		-- Rock, Jagged Craggy
-				itemPrice 	= 100,
-			},
-			[120969] = {		-- Sapling, Crabapple
-				itemPrice 	= 100,
-			},
-			[120972] = {		-- Sapling, Desert
-				itemPrice 	= 100,
-			},
-			[120548] = {		-- Sapling, Leaning Ash
-				itemPrice 	= 100,
-			},
-			[120973] = {		-- Sapling, Mountain
-				itemPrice 	= 100,
-			},
-			[120983] = {		-- Sapling, Mountain
-				itemPrice 	= 100,
-			},
-			[120971] = {		-- Sapling, Tall Scrub
-				itemPrice 	= 100,
-			},
-			[120982] = {		-- Sapling, Twisted
-				itemPrice 	= 100,
-			},
-			[120553] = {		-- Sapling, Young Scrub
-				itemPrice 	= 100,
-			},
-			[120976] = {		-- Sapling, Juniper Cluster
-				itemPrice 	= 100,
-			},
-			[120981] = {		-- Sapling, Desert Scrub
-				itemPrice 	= 100,
-			},
-			[120967] = {		-- Stone, Angled Grey
-				itemPrice 	= 100,
-			},
-			[120975] = {		-- Tree, Angled Ash
-				itemPrice 	= 100,
-			},
-			[120543] = {		-- Tree, Blooming Crabapple
-				itemPrice 	= 6000,
-			},
-			[120549] = {		-- Tree, Large Twisted Ash
-				itemPrice 	= 250,
-			},
-			[120547] = {		-- Tree, Leaning Ash
-				itemPrice 	= 250,
-			},
-			[120970] = {		-- Tree, Sturdy Crabapple
-				itemPrice 	= 13000,
-			},
-			[120974] = {		-- Tree, Sturdy Summer
-				itemPrice 	= 250,
-			},
-			[120550] = {		-- Tree, Twisted
-				itemPrice 	= 100,
-			},
-
-		},
-	},
-
-	["Coldharbour, Hollow City, Cicero's General Good"] = {
-
-		[GetString(FURC_AV_LOT)] = {
-			[119828] = {		-- Ayleid Throne
-				itemPrice 	= 50000,
-			},
-			[119830] = {		-- Coldharbour Chandelier
-				itemPrice 	= 25000,
-			},
-			[119831] = {		-- Cowering Statue
-				itemPrice 	= 10000,
-			},
-			[119832] = {		-- Light of Meridia
-				itemPrice 	= 10000,
-			},
-			[119833] = {		-- Molag Bal Banner
-				itemPrice 	= 20000,
-			},
-			[119829] = {		-- Shackle Control Stone
-				itemPrice 	= 25000,
-			},
-		},
-		[GetString(FURC_AV_KRR)] = boxes,
-	},
-
-	["Gold Coast, Kvatch"] = {
-		[GetString(FURC_AV_ATH)] = {
-			[119947] = {		-- Banner of the Kvatch Guard
-				itemPrice 	= 15000,
-			},
-			[119697] = {	-- Blade of Woe, Replica
-				itemPrice 	= 25000,
-			},
-			[119941] = {		-- Brotherhood Poison Vial
-				itemPrice 	= 2500,
-			},
-			[119945] = {		-- Dark Brotherhood Banner
-				itemPrice 	= 10000,
-			},
-			[119953] = {		-- Dark Ledger
-				itemPrice 	= 50000,
-			},
-			[119937] = {		-- Gold Coast Estate Keg
-				itemPrice 	= 500000,
-			},
-			[120950] = {		-- Hanging Hourglass
-				itemPrice 	= 15000,
-			},
-			[119939] = {		-- Hourglass Rug
-				itemPrice 	= 10000,
-			},
-			[119951] = {		-- Litany of Blood
-				itemPrice 	= 25000,
-			},
-			[119944] = {		-- Order of the Hour banner
-				itemPrice 	= 5000,
-			},
-			[119950] = {		-- Preserved Sweetrolls
-				itemPrice 	= 500,
-			},
-			[119940] = {		-- Sanctuary Sconce
-				itemPrice 	= 10000,
-			},
-			[119948] = {		-- Statue of the Mother
-				itemPrice 	= 100000,
-			},
-		},
-		[GetString(FURC_AV_FRO)] = structures,
-	},
-
-	["Hew's Bane"] = {
-		[GetString(FURC_AV_LTS)] = {
-			[119965] = {		-- Abah's Landing Banner
-				itemPrice 	= 10000,
-			},
-			[119961] = {		-- An Adoring Fan
-				itemPrice 	= 2500,
-			},
-			[119969] = {		-- Banner of TAneth
-				itemPrice 	= 10000,
-			},
-			[119968] = {		-- Distracting Harpy Egg
-				itemPrice 	= 1500,
-			},
-			[120989] = {		-- Hanging Wedding Lantern
-				itemPrice 	= 3000,
-			},
-			[119974] = {		-- Hiding Place
-				itemPrice 	= 1000,
-			},
-			[119974] = {		-- Iron Wheel Banner
-				itemPrice 	= 15000,
-			},
-			[119960] = {		-- Jar of Green Dye
-				itemPrice 	= 500,
-			},
-			[120990] = {		-- Large Covered Well
-				itemPrice 	= 15000,
-			},
-			[120952] = {		-- Opulent Dowry Chest
-				itemPrice 	= 50000,
-			},
-			[119955] = {		-- Pale Garden Flowers
-				itemPrice 	= 500,
-			},
-			[119954] = {		-- Reliquary Skull
-				itemPrice 	= 25000,
-			},
-			[119954] = {		-- Statue of Shadows
-				itemPrice 	= 25000,
-			},
-			[119967] = {		-- Vibrant Garden Flowers
-				itemPrice 	= 500,
-			},
-			[119963] = {		-- Yokudan Puzzle Column
-				itemPrice 	= 5000,
-			},
-		},
-		["Rohiza"] = structures,
-	},
-
-	["Orsinium"] = {
-
-		[GetString(FURC_AV_LOT)] = {
-			[119979] = {		-- Fur Throne
-				itemPrice 	= 25000,
-			},
-			[119976] = {		-- Orc Adventuring Backpack
-				itemPrice 	= 500,
-			},
-			[119978] = {		-- Orcish Battle Totem
-				itemPrice 	= 7500,
-			},
-			[119980] = {		-- Orcish Totem
-				itemPrice 	= 10000,
-			},
-			[119977] = {		-- Orcish War Totem
-				itemPrice 	= 5000,
-			},
-			[119975] = {		-- Orsinium Cart
-				itemPrice 	= 10000,
-			},
-			[119981] = {		-- Throne of the Orc King
-				itemPrice 	= 50000,
-			},
-		},
-
-		[GetString(FURC_AV_MAL)] = {
-			[117955] = {		-- Box, Slatted
-				itemPrice 	= 100,
-			},
-			[117964] = {		-- Rough Fire, doused
-				itemPrice 	= 100,
-			},
-			[117985] = {		-- Rough Bread, Morsel
-				itemPrice 	= 100,
-			},
-			[117981] = {		-- Rough Firewood, Smoldering
-				itemPrice 	= 100,
-			},
-			[117976] = {		-- Rough Hay Bed, Sloppy
-				itemPrice 	= 100,
-			},
-			[117976] = {		-- Rough Hay Bed, Covered
-				itemPrice 	= 100,
-			},
-			[117974] = {		-- Rough Hay Bed, Tidy
-				itemPrice 	= 100,
-			},
-			[117986] = {		-- Rough Plank, Long
-				itemPrice 	= 100,
-			},
-
-		},
-
-	},
-
-	["any city"] = {
-		[GetString(FURC_AV_ENC)] = {
-			[120050] = { -- Enchanter's Sign
-				itemPrice 	= 5000,
-			},
-			[120051] = { -- Enchanting Gem
-				itemPrice 	= 5000,
-				achievement = 1317,
-			},
-		},
-		[GetString(FURC_AV_ALC)] = {
-			[120044] = { -- Alchemy sign
-				itemPrice 	= 10000,
-				achievement = 1031,
-			},
-			[120058] = { -- Harvester's Herbs
-				itemPrice 	= 1000,
-			},
-			[120045] = { -- Poison Satchel
-				itemPrice 	= 5000,
-				achievement = 1464
-			},
-		},
-		[GetString(FURC_AV_COO)] = {
-			[120053] = { -- Chef's Cleaver
-				itemPrice 	= 2500,
-				achievement = 1028,
-			},
-			[120052] = { -- Provisioner's Sign
-				itemPrice 	= 5000,
-				achievement = 1035,
-			},
-		},
-		[GetString(FURC_AV_CLO)] = {
-			[120048] = { -- clothier's sign
-				itemPrice 	= 5000,
-				achievement = 1033,
-			},
-			[120060] = { -- Harvester's Critter Trap
-				itemPrice 	= 5000,
-				achievement = 68,
-			},
-			[120061] = { -- Harvester's Garden Shrub
-				itemPrice 	= 10000,
-				achievement = 68,
-			},
-		},
-		[GetString(FURC_AV_CAR)] = {
-			[120057] = { -- Harvester's Woodpile
-				itemPrice 	= 1000,
-				achievement = 68,
-			},
-			[120054] = { -- Woodworker's Sign
-				itemPrice 	= 5000,
-				achievement = 1036,
-			},
-		},
-		[GetString(FURC_AV_BSM)] = {
-
-			[120046] = { -- Blacksmith's Sign
-				itemPrice 	= 5000,
-				achievement = 1032,
-			},
-			[120059] = { -- Harvester's Ore
-				itemPrice 	= 1000,
-				achievement = 68,
-			},
-			[120062] = { -- Smith's Bellow
-				itemPrice 	= 10000,
-				achievement = 1022,
-			},
-		},
-		[GetString(FURC_AV_OUT)] = {
-			[120028] = { -- Death Marker
-				itemPrice 	= 5000,
-			},
-			[120033] = { -- Decorative Safebox
-				itemPrice 	= 5000,
-				achievement = 1200, -- Safebox Cracker
-			},
-			[120032] = { -- Decorative Thieves Trove
-				itemPrice 	= 5000,
-				achievement = "", -- No Stash Left Behind
-			},
-			[120957] = { -- Faded fence banner
-				itemPrice 	= 10000,
-				achievement = "Ledgerdmain Rank 20",
-			},
-			[120027] = { -- Mass Tombstone
-				itemPrice 	= 10000,
-			},
-			[120026] = { -- Mountain of Loot
-				itemPrice 	= 10000,
-				achievement = "", -- Black Market Mogul
-			},
-			[120029] = { -- Noble Pocket Lint
-				itemPrice 	= 1000,
-				achievement = 1192,-- Sneak Thief Extraordinaire
-			},
-			[120023] = { -- Outlaw Banner
-				itemPrice 	= 5000,
-				achievement = "Ledgerdmain Rank 20",
-			},
-			[120025] = { -- Pile of Coins
-				itemPrice 	= 2500,
-				achievement = 1196, -- Felonious Recompense
-			},
-			[120030] = { -- Pocket Change
-				itemPrice 	= 500,
-			},
-			[120031] = { -- Replica Key, Blank
-				itemPrice 	= 1000,
-				achievement = 1208, -- Master Burglar
-			},
-			[120993] = { -- Scales of Felonious Recompense
-				itemPrice 	= 5000,
-				achievement = 1196, -- Felonious Recompense
-			},
-		},
-
-	},
-
-	["the Mages' guild"] = {
-		["the Mystic as part of a collection"] = {},
-		["the Mystic"] = {
-			[120003] = { -- cheese cutter
-				itemPrice 	= 5000,
-			},
-			[120011] = { -- Mages' Guild Banner
-				itemPrice 	= 10000,
-			},
-		}
-
-	},
-	["the Fighters' guild"] = {
-		["Hall Steward"] = {
-			[120019] = { --Broken Chain
-				itemPrice 	= 50000,
-			},
-			[119999] = { -- Daedric Chest
-				itemPrice 	= 10000,
-			},
-			[120948] = { -- Dark Anchor Pinion
-				itemPrice 	= 100000,
-			},
-			[120019] = { -- Fighters' Guild Banner
-				itemPrice 	= 10000,
-			},
-		},
-	},
-	["the Undaunted Enclaves"] = {
-		["Undaunted Quartermaster"] = {
-			[120036] = { -- Undaunted Banner
-				itemPrice 	= 15000,
-			},
-			[120035] = { -- Undaunted Chest
-				itemPrice 	= 5000,
-			},
-			[120034] = { -- Undaunted Mug
-				itemPrice 	= 1000,
-			},
-		},
-	},
+  },
+  ["Craglorn, Belkarth Woodworking store"] = {
+    [GetString(FURC_AV_LOT)] = {
+      [119933] = {    -- Craglorn Brazier
+        itemPrice   = 5000,
+      },
+      [119934] = {    -- Craglorn Sconce
+        itemPrice   = 5000,
+      },
+      [119931] = {    -- Craglorn Tapestrie
+        itemPrice   = 35000,
+      },
+      [119925] = {    -- Nirncrux Bowl
+        itemPrice   = 4000,
+      },
+      [119935] = {    -- Observatory Banner
+        itemPrice   = 25000,
+      },
+      [119923] = {    -- Serpent Stone
+        itemPrice   = 5000,
+      },
+      [119929] = {    -- Snake Prayer Tile
+        itemPrice   = 5000,
+      },
+      [119930] = {    -- Totem of the Serpent
+        itemPrice   = 10000,
+      },
+
+    },
+    [GetString(FURC_AV_KRR)] = {
+      [120964] = {    -- Boulder, Craggy Heap
+        itemPrice   = 100,
+      },
+      [120545] = {    -- Tree, Sturdy Summer
+        itemPrice   = 250,
+      },
+      [120963] = {    -- Boulder, Jagged Crag
+        itemPrice   = 100,
+      },
+      [120552] = {    -- Bush, Flowering Scrub
+        itemPrice   = 250,
+      },
+      [120555] = {    -- Flowers, Healthy Goldenrod
+        itemPrice   = 250,
+      },
+      [120551] = {    -- Plant, Healthy Sage
+        itemPrice   = 100,
+      },
+      [120977] = {    -- Plant, Strong Sage
+        itemPrice   = 100,
+      },
+      [120966] = {    -- Rock, Craggy Rubble
+        itemPrice   = 100,
+      },
+      [120539] = {    -- Rock, Jagged Craggy
+        itemPrice   = 100,
+      },
+      [120969] = {    -- Sapling, Crabapple
+        itemPrice   = 100,
+      },
+      [120972] = {    -- Sapling, Desert
+        itemPrice   = 100,
+      },
+      [120548] = {    -- Sapling, Leaning Ash
+        itemPrice   = 100,
+      },
+      [120973] = {    -- Sapling, Mountain
+        itemPrice   = 100,
+      },
+      [120983] = {    -- Sapling, Mountain
+        itemPrice   = 100,
+      },
+      [120971] = {    -- Sapling, Tall Scrub
+        itemPrice   = 100,
+      },
+      [120982] = {    -- Sapling, Twisted
+        itemPrice   = 100,
+      },
+      [120553] = {    -- Sapling, Young Scrub
+        itemPrice   = 100,
+      },
+      [120976] = {    -- Sapling, Juniper Cluster
+        itemPrice   = 100,
+      },
+      [120981] = {    -- Sapling, Desert Scrub
+        itemPrice   = 100,
+      },
+      [120967] = {    -- Stone, Angled Grey
+        itemPrice   = 100,
+      },
+      [120975] = {    -- Tree, Angled Ash
+        itemPrice   = 100,
+      },
+      [120543] = {    -- Tree, Blooming Crabapple
+        itemPrice   = 6000,
+      },
+      [120549] = {    -- Tree, Large Twisted Ash
+        itemPrice   = 250,
+      },
+      [120547] = {    -- Tree, Leaning Ash
+        itemPrice   = 250,
+      },
+      [120970] = {    -- Tree, Sturdy Crabapple
+        itemPrice   = 13000,
+      },
+      [120974] = {    -- Tree, Sturdy Summer
+        itemPrice   = 250,
+      },
+      [120550] = {    -- Tree, Twisted
+        itemPrice   = 100,
+      },
+
+    },
+  },
+
+  ["Coldharbour, Hollow City, Cicero's General Good"] = {
+
+    [GetString(FURC_AV_LOT)] = {
+      [119828] = {    -- Ayleid Throne
+        itemPrice   = 50000,
+      },
+      [119830] = {    -- Coldharbour Chandelier
+        itemPrice   = 25000,
+      },
+      [119831] = {    -- Cowering Statue
+        itemPrice   = 10000,
+      },
+      [119832] = {    -- Light of Meridia
+        itemPrice   = 10000,
+      },
+      [119833] = {    -- Molag Bal Banner
+        itemPrice   = 20000,
+      },
+      [119829] = {    -- Shackle Control Stone
+        itemPrice   = 25000,
+      },
+    },
+    [GetString(FURC_AV_KRR)] = boxes,
+  },
+
+  ["Gold Coast, Kvatch"] = {
+    [GetString(FURC_AV_ATH)] = {
+      [119947] = {    -- Banner of the Kvatch Guard
+        itemPrice   = 15000,
+      },
+      [119697] = {  -- Blade of Woe, Replica
+        itemPrice   = 25000,
+      },
+      [119941] = {    -- Brotherhood Poison Vial
+        itemPrice   = 2500,
+      },
+      [119945] = {    -- Dark Brotherhood Banner
+        itemPrice   = 10000,
+      },
+      [119953] = {    -- Dark Ledger
+        itemPrice   = 50000,
+      },
+      [119937] = {    -- Gold Coast Estate Keg
+        itemPrice   = 500000,
+      },
+      [120950] = {    -- Hanging Hourglass
+        itemPrice   = 15000,
+      },
+      [119939] = {    -- Hourglass Rug
+        itemPrice   = 10000,
+      },
+      [119951] = {    -- Litany of Blood
+        itemPrice   = 25000,
+      },
+      [119944] = {    -- Order of the Hour banner
+        itemPrice   = 5000,
+      },
+      [119950] = {    -- Preserved Sweetrolls
+        itemPrice   = 500,
+      },
+      [119940] = {    -- Sanctuary Sconce
+        itemPrice   = 10000,
+      },
+      [119948] = {    -- Statue of the Mother
+        itemPrice   = 100000,
+      },
+    },
+    [GetString(FURC_AV_FRO)] = structures,
+  },
+
+  ["Hew's Bane"] = {
+    [GetString(FURC_AV_LTS)] = {
+      [119965] = {    -- Abah's Landing Banner
+        itemPrice   = 10000,
+      },
+      [119961] = {    -- An Adoring Fan
+        itemPrice   = 2500,
+      },
+      [119969] = {    -- Banner of TAneth
+        itemPrice   = 10000,
+      },
+      [119968] = {    -- Distracting Harpy Egg
+        itemPrice   = 1500,
+      },
+      [120989] = {    -- Hanging Wedding Lantern
+        itemPrice   = 3000,
+      },
+      [119974] = {    -- Hiding Place
+        itemPrice   = 1000,
+      },
+      [119974] = {    -- Iron Wheel Banner
+        itemPrice   = 15000,
+      },
+      [119960] = {    -- Jar of Green Dye
+        itemPrice   = 500,
+      },
+      [120990] = {    -- Large Covered Well
+        itemPrice   = 15000,
+      },
+      [120952] = {    -- Opulent Dowry Chest
+        itemPrice   = 50000,
+      },
+      [119955] = {    -- Pale Garden Flowers
+        itemPrice   = 500,
+      },
+      [119954] = {    -- Reliquary Skull
+        itemPrice   = 25000,
+      },
+      [119954] = {    -- Statue of Shadows
+        itemPrice   = 25000,
+      },
+      [119967] = {    -- Vibrant Garden Flowers
+        itemPrice   = 500,
+      },
+      [119963] = {    -- Yokudan Puzzle Column
+        itemPrice   = 5000,
+      },
+    },
+    ["Rohiza"] = structures,
+  },
+
+  ["Orsinium"] = {
+
+    [GetString(FURC_AV_LOT)] = {
+      [119979] = {    -- Fur Throne
+        itemPrice   = 25000,
+      },
+      [119976] = {    -- Orc Adventuring Backpack
+        itemPrice   = 500,
+      },
+      [119978] = {    -- Orcish Battle Totem
+        itemPrice   = 7500,
+      },
+      [119980] = {    -- Orcish Totem
+        itemPrice   = 10000,
+      },
+      [119977] = {    -- Orcish War Totem
+        itemPrice   = 5000,
+      },
+      [119975] = {    -- Orsinium Cart
+        itemPrice   = 10000,
+      },
+      [119981] = {    -- Throne of the Orc King
+        itemPrice   = 50000,
+      },
+    },
+
+    [GetString(FURC_AV_MAL)] = {
+      [117955] = {    -- Box, Slatted
+        itemPrice   = 100,
+      },
+      [117964] = {    -- Rough Fire, doused
+        itemPrice   = 100,
+      },
+      [117985] = {    -- Rough Bread, Morsel
+        itemPrice   = 100,
+      },
+      [117981] = {    -- Rough Firewood, Smoldering
+        itemPrice   = 100,
+      },
+      [117976] = {    -- Rough Hay Bed, Sloppy
+        itemPrice   = 100,
+      },
+      [117976] = {    -- Rough Hay Bed, Covered
+        itemPrice   = 100,
+      },
+      [117974] = {    -- Rough Hay Bed, Tidy
+        itemPrice   = 100,
+      },
+      [117986] = {    -- Rough Plank, Long
+        itemPrice   = 100,
+      },
+
+    },
+
+  },
+
+  ["any city"] = {
+    [GetString(FURC_AV_ENC)] = {
+      [120050] = { -- Enchanter's Sign
+        itemPrice   = 5000,
+      },
+      [120051] = { -- Enchanting Gem
+        itemPrice   = 5000,
+        achievement = 1317,
+      },
+    },
+    [GetString(FURC_AV_ALC)] = {
+      [120044] = { -- Alchemy sign
+        itemPrice   = 10000,
+        achievement = 1031,
+      },
+      [120058] = { -- Harvester's Herbs
+        itemPrice   = 1000,
+      },
+      [120045] = { -- Poison Satchel
+        itemPrice   = 5000,
+        achievement = 1464
+      },
+    },
+    [GetString(FURC_AV_COO)] = {
+      [120053] = { -- Chef's Cleaver
+        itemPrice   = 2500,
+        achievement = 1028,
+      },
+      [120052] = { -- Provisioner's Sign
+        itemPrice   = 5000,
+        achievement = 1035,
+      },
+    },
+    [GetString(FURC_AV_CLO)] = {
+      [120048] = { -- clothier's sign
+        itemPrice   = 5000,
+        achievement = 1033,
+      },
+      [120060] = { -- Harvester's Critter Trap
+        itemPrice   = 5000,
+        achievement = 68,
+      },
+      [120061] = { -- Harvester's Garden Shrub
+        itemPrice   = 10000,
+        achievement = 68,
+      },
+    },
+    [GetString(FURC_AV_CAR)] = {
+      [120057] = { -- Harvester's Woodpile
+        itemPrice   = 1000,
+        achievement = 68,
+      },
+      [120054] = { -- Woodworker's Sign
+        itemPrice   = 5000,
+        achievement = 1036,
+      },
+    },
+    [GetString(FURC_AV_BSM)] = {
+
+      [120046] = { -- Blacksmith's Sign
+        itemPrice   = 5000,
+        achievement = 1032,
+      },
+      [120059] = { -- Harvester's Ore
+        itemPrice   = 1000,
+        achievement = 68,
+      },
+      [120062] = { -- Smith's Bellow
+        itemPrice   = 10000,
+        achievement = 1022,
+      },
+    },
+    [GetString(FURC_AV_OUT)] = {
+      [120028] = { -- Death Marker
+        itemPrice   = 5000,
+      },
+      [120033] = { -- Decorative Safebox
+        itemPrice   = 5000,
+        achievement = 1200, -- Safebox Cracker
+      },
+      [120032] = { -- Decorative Thieves Trove
+        itemPrice   = 5000,
+        achievement = "", -- No Stash Left Behind
+      },
+      [120957] = { -- Faded fence banner
+        itemPrice   = 10000,
+        achievement = "Ledgerdmain Rank 20",
+      },
+      [120027] = { -- Mass Tombstone
+        itemPrice   = 10000,
+      },
+      [120026] = { -- Mountain of Loot
+        itemPrice   = 10000,
+        achievement = "", -- Black Market Mogul
+      },
+      [120029] = { -- Noble Pocket Lint
+        itemPrice   = 1000,
+        achievement = 1192,-- Sneak Thief Extraordinaire
+      },
+      [120023] = { -- Outlaw Banner
+        itemPrice   = 5000,
+        achievement = "Ledgerdmain Rank 20",
+      },
+      [120025] = { -- Pile of Coins
+        itemPrice   = 2500,
+        achievement = 1196, -- Felonious Recompense
+      },
+      [120030] = { -- Pocket Change
+        itemPrice   = 500,
+      },
+      [120031] = { -- Replica Key, Blank
+        itemPrice   = 1000,
+        achievement = 1208, -- Master Burglar
+      },
+      [120993] = { -- Scales of Felonious Recompense
+        itemPrice   = 5000,
+        achievement = 1196, -- Felonious Recompense
+      },
+    },
+
+  },
+
+  ["the Mages' guild"] = {
+    ["the Mystic as part of a collection"] = {},
+    ["the Mystic"] = {
+      [120003] = { -- cheese cutter
+        itemPrice   = 5000,
+      },
+      [120011] = { -- Mages' Guild Banner
+        itemPrice   = 10000,
+      },
+    }
+
+  },
+  ["the Fighters' guild"] = {
+    ["Hall Steward"] = {
+      [120019] = { --Broken Chain
+        itemPrice   = 50000,
+      },
+      [119999] = { -- Daedric Chest
+        itemPrice   = 10000,
+      },
+      [120948] = { -- Dark Anchor Pinion
+        itemPrice   = 100000,
+      },
+      [120019] = { -- Fighters' Guild Banner
+        itemPrice   = 10000,
+      },
+    },
+  },
+  ["the Undaunted Enclaves"] = {
+    ["Undaunted Quartermaster"] = {
+      [120036] = { -- Undaunted Banner
+        itemPrice   = 15000,
+      },
+      [120035] = { -- Undaunted Chest
+        itemPrice   = 5000,
+      },
+      [120034] = { -- Undaunted Mug
+        itemPrice   = 1000,
+      },
+    },
+  },
 }

 function FurC.SetupHomesteadItems()
-	local generatedTable, listTable
+  local generatedTable, listTable

-	FurC.AchievementVendors[FURC_HOMESTEAD]["the Mages' guild"]["the Mystic as part of a collection"] = bookList
+  FurC.AchievementVendors[FURC_HOMESTEAD]["the Mages' guild"]["the Mystic as part of a collection"] = bookList


-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Dhalmora, Bal Foyen"][GetString(FURC_AV_FRO)]
-	addTable = tableMerge(furnishingVendor, morrowindStones)
-	listTable = tableMerge(listTable, addTable)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Dhalmora, Bal Foyen"][GetString(FURC_AV_FRO)]
+  addTable = tableMerge(furnishingVendor, morrowindStones)
+  listTable = tableMerge(listTable, addTable)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Mournhold Bank"][GetString(FURC_AV_FRO)]
-	listTable = tableMerge(listTable, addTable)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Mournhold Bank"][GetString(FURC_AV_FRO)]
+  listTable = tableMerge(listTable, addTable)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Stonefalls, Ebonheart"][GetString(FURC_AV_FRO)]
-	listTable = tableMerge(listTable, addTable)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Stonefalls, Ebonheart"][GetString(FURC_AV_FRO)]
+  listTable = tableMerge(listTable, addTable)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Shadowfen, Alten Corimont"][GetString(FURC_AV_FRO)]
-	addTable = furnishingVendor
-	listTable = tableMerge(listTable, addTable)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Shadowfen, Alten Corimont"][GetString(FURC_AV_FRO)]
+  addTable = furnishingVendor
+  listTable = tableMerge(listTable, addTable)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Riften, Market, Armorer"][GetString(FURC_AV_FRO)]
-	addTable = furnishingVendor
-	listTable = tableMerge(listTable, addTable)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Riften, Market, Armorer"][GetString(FURC_AV_FRO)]
+  addTable = furnishingVendor
+  listTable = tableMerge(listTable, addTable)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Bangkorai, Evermore"][GetString(FURC_AV_ROH)]
-	listTable = tableMerge(listTable, addTable)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Bangkorai, Evermore"][GetString(FURC_AV_ROH)]
+  listTable = tableMerge(listTable, addTable)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Stormhaven, Wayrest, Merchant district"][GetString(FURC_AV_ROH)]
-	listTable = tableMerge(listTable, addTable)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Stormhaven, Wayrest, Merchant district"][GetString(FURC_AV_ROH)]
+  listTable = tableMerge(listTable, addTable)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Greenshade, Marbruk"][GetString(FURC_AV_MAL)]
-	listTable = tableMerge(listTable, addTable)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Greenshade, Marbruk"][GetString(FURC_AV_MAL)]
+  listTable = tableMerge(listTable, addTable)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Malabal Tor, Vulkwaesten, tavern"][GetString(FURC_AV_MAL)]
-	listTable = tableMerge(listTable, addTable)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Malabal Tor, Vulkwaesten, tavern"][GetString(FURC_AV_MAL)]
+  listTable = tableMerge(listTable, addTable)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Reaper's March, Rawl'Kha, Market"][GetString(FURC_AV_MAL)]
-	listTable = tableMerge(listTable, structures)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Reaper's March, Rawl'Kha, Market"][GetString(FURC_AV_MAL)]
+  listTable = tableMerge(listTable, structures)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Grahtwood, Redfur Trading Post"][GetString(FURC_AV_MAL)]
-	listTable = tableMerge(listTable, furnishingVendor)
-	listTable = tableMerge(listTable, miscVendor)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Grahtwood, Redfur Trading Post"][GetString(FURC_AV_MAL)]
+  listTable = tableMerge(listTable, furnishingVendor)
+  listTable = tableMerge(listTable, miscVendor)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Craglorn, Belkarth Woodworking store"][GetString(FURC_AV_KRR)]
-	listTable = tableMerge(listTable, furnishingVendor)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Craglorn, Belkarth Woodworking store"][GetString(FURC_AV_KRR)]
+  listTable = tableMerge(listTable, furnishingVendor)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Coldharbour, Hollow City, Cicero's General Good"][GetString(FURC_AV_KRR)]
-	listTable = tableMerge(listTable, structures)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Coldharbour, Hollow City, Cicero's General Good"][GetString(FURC_AV_KRR)]
+  listTable = tableMerge(listTable, structures)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Gold Coast, Kvatch"][GetString(FURC_AV_FRO)]
-	listTable = tableMerge(listTable, furnishingVendor)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Gold Coast, Kvatch"][GetString(FURC_AV_FRO)]
+  listTable = tableMerge(listTable, furnishingVendor)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Hew's Bane"]["Rohiza"]
-	listTable = tableMerge(listTable, furnishingVendor)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Hew's Bane"]["Rohiza"]
+  listTable = tableMerge(listTable, furnishingVendor)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Orsinium"][GetString(FURC_AV_MAL)]
-	listTable = tableMerge(listTable, furnishingVendor)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Orsinium"][GetString(FURC_AV_MAL)]
+  listTable = tableMerge(listTable, furnishingVendor)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Glenumbra, Daggerfall, The Rosy Lion"]["Rohiza"]
-	listTable = tableMerge(listTable, furnishingVendor)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Glenumbra, Daggerfall, The Rosy Lion"]["Rohiza"]
+  listTable = tableMerge(listTable, furnishingVendor)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Rivenspire, Shornhelm, Dead Wolf Inn"]["Rohiza"]
-	listTable = tableMerge(listTable, furnishingVendor)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Rivenspire, Shornhelm, Dead Wolf Inn"]["Rohiza"]
+  listTable = tableMerge(listTable, furnishingVendor)

-	listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Orsinium"][GetString(FURC_AV_MAL)]
-	listTable = tableMerge(listTable, structures)
+  listTable = FurC.AchievementVendors[FURC_HOMESTEAD]["Orsinium"][GetString(FURC_AV_MAL)]
+  listTable = tableMerge(listTable, structures)
 end

diff --git a/data/01_Homestead/H_Cyrodiil.lua b/data/01_Homestead/H_Cyrodiil.lua
index bea13c3..c7abd97 100644
--- a/data/01_Homestead/H_Cyrodiil.lua
+++ b/data/01_Homestead/H_Cyrodiil.lua
@@ -3,133 +3,133 @@ FURC_CYRO = "Cyrodiil"
 FURC_IC = "Imperial City"
 FURC_ITEMSOURCE_VENDOR = "Furnishing vendor"
 FurC.PVP[FURC_HOMESTEAD] = {
-	[FURC_ITEMSOURCE_VENDOR] = {
-		[FURC_CYRO] = {
-			[119656] = {	-- Pennant, Small
-				itemPrice 	= 200,
-				achievement = 92,	-- Volunteer
-			},
-			[119634] = {	-- Pact Wall Banner, Small
-				itemPrice 	= 400,
-				achievement = 93,	-- Recruit
-			},
-			[119656] = {	-- Wall Banner, Small
-				itemPrice 	= 400,
-				achievement = 93,	-- Recruit
-			},
-			[119635] = {	-- Wall Banner, Medium
-				itemPrice 	= 600,
-				achievement = 94,	-- Tyro
-			},
-			[119636] = {	-- Camp Banner
-				itemPrice 	= 1000,
-				achievement = 95,	-- Legionary
-			},
-			[119675] = {	-- Defaced Covenant Flag
-				itemPrice 	= 2000,
-				achievement = 110,
-			},
-			[119629] = {	-- Defaced Dominion Flag
-				itemPrice 	= 2000,
-				achievement = 110,
-			},
-			[119637] = {	-- Wall Banner, Large
-				itemPrice 	= 3000,
-				achievement = 96,	-- Veteran
-			},
-			[119638] = {	-- Point Capture Flag
-				itemPrice 	= 4000,
-				achievement = 97,	-- Corporal
-			},
-			[119639] = {	-- Spare figurehead
-				itemPrice 	= 5000,
-				achievement = 98, -- Sergeant
-			},
-			[119655] = {	-- Keep Pennant
-				itemPrice 	= 8000,
-				achievement = 113, -- Grand Warlord
-			},
-			[119617] = {	-- Flaming Oil
-				itemPrice 	= 10000,
-				achievement = 104,	-- Tribune
-			},
-			[119642] = {	-- Scattershot Catapult
-				itemPrice 	= 15000,
-				achievement = 100,	-- Captain
-			},
-			[120002] = {	-- Dueling Banner
-				itemPrice 	= 20000,
-				achievement = 1689,
-			},
-			[119641] = {	-- Ballista
-				itemPrice 	= 20000,
-				achievement = 99,
-			},
-			[119644] = {	-- Battering ram
-				itemPrice 	= 25000,
-				achievement = 102,
-			},
-			[119646] = {	-- Oil Catapult
-				itemPrice 	= 25000,
-				achievement = 104,
-			},
-			[119653] = {	-- Cold fire ballista
-				itemPrice 	= 30000,
-				achievement = 111,
-			},
-			[119645] = {	-- Fire Ballista
-				itemPrice 	= 30000,
-				achievement = 103, -- Colonel
-			},
-			[119649] = {	-- Lightning Ballista
-				itemPrice 	= 30000,
-				achievement = 107,
-			},
-			[119650] = {	-- Meatbag Catapult
-				itemPrice 	= 30000,
-				achievement = 107,
-			},
-			[119643] = {	-- Stone Trebuchet
-				itemPrice 	= 40000,
-				achievement = 108,
-			},
-			[119647] = {	-- Fire
-				itemPrice 	= 45000,
-				achievement = 105,
-			},
-			[119654] = {	-- Cold Fire
-				itemPrice 	= 50000,
-				achievement = 112,
-			},
-			[119648] = {	-- Forward Camp
-				itemPrice 	= 50000,
-				achievement = 106,
-			},
-			[119651] = {	-- Iceball Treb
-				itemPrice 	= 50000,
-				achievement = 109,
-			},
-			[120079] = {	-- Transitus shrine
-				itemPrice 	= 100000,
-				achievement = 114,
-			},
-			[120075] = {	-- Elder Scroll
-				itemPrice 	= 200000,
-				achievement = 935,
-			},
-			[120038] = {	-- Throne
-				itemPrice 	= 250000,
-				achievement = 935,
-			},
-		},
-		["Imperial City"] = {
-			[119983] = {	-- Imperial Banner
-				itemPrice 	= 15000,
-			},
-			[119982] = {	-- Molag Bal Brazier
-				itemPrice 	= 25000,
-			},
-		}
-	}
+  [FURC_ITEMSOURCE_VENDOR] = {
+    [FURC_CYRO] = {
+      [119656] = {  -- Pennant, Small
+        itemPrice   = 200,
+        achievement = 92,  -- Volunteer
+      },
+      [119634] = {  -- Pact Wall Banner, Small
+        itemPrice   = 400,
+        achievement = 93,  -- Recruit
+      },
+      [119656] = {  -- Wall Banner, Small
+        itemPrice   = 400,
+        achievement = 93,  -- Recruit
+      },
+      [119635] = {  -- Wall Banner, Medium
+        itemPrice   = 600,
+        achievement = 94,  -- Tyro
+      },
+      [119636] = {  -- Camp Banner
+        itemPrice   = 1000,
+        achievement = 95,  -- Legionary
+      },
+      [119675] = {  -- Defaced Covenant Flag
+        itemPrice   = 2000,
+        achievement = 110,
+      },
+      [119629] = {  -- Defaced Dominion Flag
+        itemPrice   = 2000,
+        achievement = 110,
+      },
+      [119637] = {  -- Wall Banner, Large
+        itemPrice   = 3000,
+        achievement = 96,  -- Veteran
+      },
+      [119638] = {  -- Point Capture Flag
+        itemPrice   = 4000,
+        achievement = 97,  -- Corporal
+      },
+      [119639] = {  -- Spare figurehead
+        itemPrice   = 5000,
+        achievement = 98, -- Sergeant
+      },
+      [119655] = {  -- Keep Pennant
+        itemPrice   = 8000,
+        achievement = 113, -- Grand Warlord
+      },
+      [119617] = {  -- Flaming Oil
+        itemPrice   = 10000,
+        achievement = 104,  -- Tribune
+      },
+      [119642] = {  -- Scattershot Catapult
+        itemPrice   = 15000,
+        achievement = 100,  -- Captain
+      },
+      [120002] = {  -- Dueling Banner
+        itemPrice   = 20000,
+        achievement = 1689,
+      },
+      [119641] = {  -- Ballista
+        itemPrice   = 20000,
+        achievement = 99,
+      },
+      [119644] = {  -- Battering ram
+        itemPrice   = 25000,
+        achievement = 102,
+      },
+      [119646] = {  -- Oil Catapult
+        itemPrice   = 25000,
+        achievement = 104,
+      },
+      [119653] = {  -- Cold fire ballista
+        itemPrice   = 30000,
+        achievement = 111,
+      },
+      [119645] = {  -- Fire Ballista
+        itemPrice   = 30000,
+        achievement = 103, -- Colonel
+      },
+      [119649] = {  -- Lightning Ballista
+        itemPrice   = 30000,
+        achievement = 107,
+      },
+      [119650] = {  -- Meatbag Catapult
+        itemPrice   = 30000,
+        achievement = 107,
+      },
+      [119643] = {  -- Stone Trebuchet
+        itemPrice   = 40000,
+        achievement = 108,
+      },
+      [119647] = {  -- Fire
+        itemPrice   = 45000,
+        achievement = 105,
+      },
+      [119654] = {  -- Cold Fire
+        itemPrice   = 50000,
+        achievement = 112,
+      },
+      [119648] = {  -- Forward Camp
+        itemPrice   = 50000,
+        achievement = 106,
+      },
+      [119651] = {  -- Iceball Treb
+        itemPrice   = 50000,
+        achievement = 109,
+      },
+      [120079] = {  -- Transitus shrine
+        itemPrice   = 100000,
+        achievement = 114,
+      },
+      [120075] = {  -- Elder Scroll
+        itemPrice   = 200000,
+        achievement = 935,
+      },
+      [120038] = {  -- Throne
+        itemPrice   = 250000,
+        achievement = 935,
+      },
+    },
+    ["Imperial City"] = {
+      [119983] = {  -- Imperial Banner
+        itemPrice   = 15000,
+      },
+      [119982] = {  -- Molag Bal Brazier
+        itemPrice   = 25000,
+      },
+    }
+  }
 }

diff --git a/data/01_Homestead/H_EventItems.lua b/data/01_Homestead/H_EventItems.lua
index 86138f3..226036f 100644
--- a/data/01_Homestead/H_EventItems.lua
+++ b/data/01_Homestead/H_EventItems.lua
@@ -1,11 +1,11 @@
 FurC.EventItems = FurC.EventItems or {}
 FurC.EventItems[FURC_HOMESTEAD] = {
-	["Jester Festival"] = {
-		["Jester Boxes"] = {
-			[120995] = true, 	-- Banner, Jester's Standard
-			[134680] = true, 	-- Banner, Jester's Standard
-		}
-	}
+  ["Jester Festival"] = {
+    ["Jester Boxes"] = {
+      [120995] = true,   -- Banner, Jester's Standard
+      [134680] = true,   -- Banner, Jester's Standard
+    }
+  }

 }

diff --git a/data/01_Homestead/H_LuxuryFurnisher.lua b/data/01_Homestead/H_LuxuryFurnisher.lua
index bb7ff14..4316371 100644
--- a/data/01_Homestead/H_LuxuryFurnisher.lua
+++ b/data/01_Homestead/H_LuxuryFurnisher.lua
@@ -2,54 +2,25 @@ FurC.LuxuryFurnisher = FurC.LuxuryFurnisher or {}

 FurC.LuxuryFurnisher[FURC_HOMESTEAD] = {

-	[120821] = {	-- Sigil Stendarr
-		itemPrice 	= 15000,
-		itemDate	= "2017-04-28",
-	},
+  [120821] = {  -- Sigil Stendarr
+    itemPrice   = 15000,
+    itemDate  = "2017-04-28",
+  },
+
+
+
+  [120803] = {  -- Hews Bane Bed, Royal
+    itemPrice   = 20000,
+    itemDate  = "2018-02-24",
+  },
+  [121266] = {  -- Hews Bane Lantern
+    itemPrice   = 5000,
+    itemDate  = "2018-02-24",
+  },
+  [121267] = {  -- Hews Bane Merchants Basket
+    itemPrice   = 2500,
+    itemDate  = "2018-02-24",
+  },

-
-
-	[120803] = {	-- Hews Bane Bed, Royal
-		itemPrice 	= 20000,
-		itemDate	= "2018-02-24",
-	},
-	[121266] = {	-- Hews Bane Lantern
-		itemPrice 	= 5000,
-		itemDate	= "2018-02-24",
-	},
-	[121267] = {	-- Hews Bane Merchants Basket
-		itemPrice 	= 2500,
-		itemDate	= "2018-02-24",
-	},
-
-	[120802] = {	-- Shrine of Mara, Decorative
-		itemPrice 	= 50000,
-		itemDate	= "2018-02-17",
-	},
-	[120799] = {	-- Wedding Blossoms, Peach
-		itemPrice 	= 2500,
-		itemDate	= "2018-02-17",
-	},
-	[120893] = {	-- Wedding Gazebo
-		itemPrice 	= 50000,
-		itemDate	= "2018-02-17",
-	},
-
-	[120798] = {	-- Wedding Blossoms, Blue
-		itemPrice 	= 2500,
-		itemDate	= "2018-02-10",
-	},
-	[120800] = {	-- Wedding Curtain
-		itemPrice 	= 7500,
-		itemDate	= "2018-02-10",
-	},
-	[120801] = {	-- Wedding Lantern
-		itemPrice 	= 5000,
-		itemDate	= "2018-02-10",
-	},
-	[120797] = {	-- Wedding Flower Trellis
-		itemPrice 	= 10000,
-		itemDate	= "2018-02-10",
-	},
 }

diff --git a/data/01_Homestead/H_Recipes.lua b/data/01_Homestead/H_Recipes.lua
index 9fe36f6..0f640d0 100644
--- a/data/01_Homestead/H_Recipes.lua
+++ b/data/01_Homestead/H_Recipes.lua
@@ -2,1057 +2,1057 @@ FurC.Recipes = FurC.Recipes or {}

 FurC.Recipes[FURC_HOMESTEAD] = {

-	115721, -- Argonian Chimney Stack
-	115722, -- Argonian Rack, Sturdy
-	115723, -- Argonian Shelves, Half
-	115724, -- Argonian Shelves, Full
-	115725, -- Argonian Snakes on a Rope
-	115726, -- Argonian Dried Leaves
-	115727, -- Argonian Lattice, Rough
-	115728, -- Argonian Tarp, Woven
-	115729, -- Argonian Tarp, Sturdy
-	115730, -- Argonian Counter, Long
-	115731, -- Argonian Pole, Split
-	115732, -- Argonian Stool, Roped
-	115733, -- Argonian Chair, Rough
-	115734, -- Argonian Table, Rough
-	115735, -- Argonian Cup, Tall
-	115736, -- Argonian Cup, Short
-	115737, -- Argonian Bowl, Wooden
-	115738, -- Argonian Baskets, Double
-	115739, -- Argonian Basket, Serving
-	115740, -- Argonian Mug, Tooth
-	115741, -- Argonian Ramekin, Hardened
-	115742, -- Argonian Pan, Frying
-	115743, -- Argonian Banner, Hanging
-	115744, -- Argonian Post, Sturdy
-	115745, -- Argonian Post, Rough
-	115746, -- Argonian Mat, Tidy Reed
-	115747, -- Argonian Mat, Rolled Reed
-	115748, -- Argonian Mat, Reed
-	115749, -- Argonian Tent, Reed
-	115750, -- Argonian Canopy, Reed
-	115751, -- Argonian Basket, Closed
-	115752, -- Argonian Bin, Woven
-	115753, -- Argonian Totem, Painted Skull
-	115754, -- Argonian Rack, Drying
-	115755, -- Argonian Totem, Frilled Skull
-	115756, -- Argonian Cage, Rat
-	115757, -- Argonian Cage, Bird
-	115758, -- Argonian Wind Chimes
-	115759, -- Argonian Bar, Woven Corner
-	115760, -- Argonian Snakes in a Basket
-	115761, -- Argonian Bed, Woven
-	115762, -- Argonian Bench, Woven
-	115763, -- Argonian Chair, Woven
-	115764, -- Argonian Trunk, Sturdy
-	115765, -- Argonian Bookshelf, Woven
-	115766, -- Argonian Dresser, Sturdy
-	115767, -- Argonian Shelf, Woven
-	115768, -- Argonian Bookcase, Sturdy
-	115769, -- Argonian Stool, Woven
-	115770, -- Argonian Table, Formal
-	115771, -- Argonian End Table, Woven
-	115772, -- Argonian Bowl, Serving
-	115773, -- Argonian Cup, Bordered
-	115774, -- Argonian Basket, Woven
-	115775, -- Argonian Bowl, Bordered
-	115776, -- Argonian Ramekin, Bordered
-	115777, -- Argonian Urn, Clawfoot
-	115778, -- Argonian Tray, Woven
-	115779, -- Argonian Curtain, Woven
-	115780, -- Argonian Curtains, Woven
-	115781, -- Argonian Medallion, Stone
-	115782, -- Argonian Scaleskin, Pale
-	115783, -- Argonian Scaleskin, Striped
-	115784, -- Argonian Scaleskin, Faded
-	115785, -- Argonian Lamppost
-	115787, -- Argonian Canopy, Frilled
-	115788, -- Argonian Canopy, Skull
-	115789, -- Argonian Canopy, Scaled
-	115790, -- Argonian Trunk, Painted
-	115791, -- Argonian Chest, Carved
-	115792, -- Argonian Skull, Crocodile
-	115793, -- Argonian Totem of the Snake
-	115794, -- Argonian Skull, Lizard
-	115795, -- Argonian Bone Chimes
-	115796, -- Argonian Hamper, Woven
-	115799, -- Argonian Table, Horn
-	115800, -- Argonian Curtain of Smoke
-	115801, -- Argonian Curtain of the Nest
-	115802, -- Argonian Drum, Ceremonial
-	115803, -- Argonian Bowl, Ritual
-	115804, -- Argonian Jug, Ritual
-	115805, -- Argonian Pot, Ritual
-	115806, -- Argonian Pestle, Bone
-	115807, -- Argonian Seat of Authority
-	115808, -- Argonian Seat of Honor
-	115809, -- Argonian Mortar and Pestle, Bone
-	115810, -- Argonian Mortar, Bone
-	115811, -- Argonian Pedestal, Altar
-	115812, -- Argonian Censer
-	115813, -- Argonian Relic, Small Serpent
-	115814, -- Argonian Relic, Serpent
-	115815, -- Argonian Seat of Comfort
-	115816, -- Argonian Divider, Stretched
-	115817, -- Argonian Bedroll, Woven
-	115818, -- Argonian Banners, Frilled
-	115819, -- Argonian Banner, Half Hands
-	115820, -- Argonian Post, Frilled
-	115821, -- Argonian Lanterns, String
-	115822, -- Argonian Lanterns, Strand
-	115823, -- Argonian Light, Stick
-	115824, -- Argonian Lamp, Mud
-	115825, -- Argonian Brazier, Mud
-	115826, -- Argonian Lights, Branch
-	115827, -- Argonian Bark, Painted
-	115828, -- Argonian Relic, Basin
-	115829, -- Argonian Totem of Skulls
-	115830, -- Argonian Gravestick
-	115831, -- Argonian Tree of Lights
-	115832, -- Argonian Tile, Inscribed
-	115833, -- Wood Elf Stool, Leather
-	115834, -- Wood Elf Counter, Long Leather
-	115835, -- Wood Elf Shelf, Tiered
-	115836, -- Wood Elf Table, Leather
-	115837, -- Wood Elf Bar, Sturdy
-	115838, -- Wood Elf Bar, Long
-	115839, -- Wood Elf Bar, Drying
-	115840, -- Wood Elf Bar, Short
-	115841, -- Wood Elf Rack, Brace
-	115842, -- Wood Elf Divider, Stretched
-	115843, -- Wood Elf Divider, Narrow
-	115844, -- Wood Elf Vase, Swirled
-	115845, -- Wood Elf Urn, Scratched
-	115846, -- Wood Elf Urn, Deer
-	115847, -- Wood Elf Cup, Ceramic
-	115848, -- Wood Elf Cup, Chipped
-	115849, -- Wood Elf Cup, Striped
-	115850, -- Wood Elf Pedestal, Engraved
-	115851, -- Wood Elf Basin, Stone
-	115852, -- Wood Elf Awning, Leather
-	115853, -- Wood Elf Canopy, Leather
-	115854, -- Wood Elf Bedding, Scattered
-	115855, -- Wood Elf Grinding Stone
-	115856, -- Wood Elf Hide, Heavy
-	115857, -- Wood Elf Wall Hide, Pierced
-	115858, -- Wood Elf Wall Hide, Fur
-	115859, -- Wood Elf Wall Hide, Spotted
-	115860, -- Wood Elf Cauldron, Stone
-	115861, -- Wood Elf Tent, Sturdy
-	115862, -- Wood Elf Chair, Leather
-	115863, -- Wood Elf Bookcase, Leather
-	115864, -- Wood Elf Table, Formal
-	115865, -- Wood Elf Barrel, Ceramic
-	115866, -- Wood Elf Cask, Ceramic
-	115867, -- Wood Elf Bladder, Fermenting
-	115868, -- Wood Elf Cauldron, Ceramic
-	115869, -- Wood Elf Hammock, Single
-	115870, -- Wood Elf Hammock, Double
-	115871, -- Wood Elf Rack, Single
-	115872, -- Wood Elf Rack, Double
-	115873, -- Wood Elf Divider, Relaxed
-	115874, -- Wood Elf Divider, Taut
-	115875, -- Wood Elf Vessel, Tiered Ceramic
-	115876, -- Wood Elf Vessel, Tiered Painted
-	115877, -- Wood Elf Pitcher, Painted
-	115878, -- Wood Elf Pitcher, Marked
-	115879, -- Wood Elf Vase, Painted
-	115880, -- Wood Elf Vase, Chipped
-	115881, -- Wood Elf Pitcher, Chipped
-	115882, -- Wood Elf Pitcher, Ceramic
-	115883, -- Wood Elf Bowl, Striped
-	115884, -- Wood Elf Canopy, Braced
-	115885, -- Wood Elf Bedding, Layered
-	115886, -- Wood Elf Censer, Hanging
-	115887, -- Wood Elf Tent, Frame
-	115888, -- Wood Elf Rack, Meat
-	115889, -- Wood Elf Totem, Framed
-	115890, -- Wood Elf Totem, Skull
-	115891, -- Wood Elf Trough, Slop
-	115892, -- Wood Elf Bin, Blue Feathers
-	115893, -- Wood Elf Bin, Feathers
-	115894, -- Wood Elf Cask, Painted
-	121371, -- Wood Elf Hearth, Forest
-	121309, -- High Elf Medal, Winged
-	115895, -- Wood Elf Fish Dish
-	115896, -- Wood Elf Tapestry, Painted
-	115897, -- Wood Elf Tapestry, Deer
-	115898, -- Wood Elf Tapestry, Vine
-	115899, -- Wood Elf Canopy, Spine
-	115900, -- Wood Elf Bedding, Padded
-	115901, -- Wood Elf Skull and Bones
-	115902, -- Wood Elf Bone Chimes
-	115903, -- Wood Elf Rack, Dried Fish
-	115904, -- Wood Elf Rack, Dried Meat
-	115906, -- Breton Stall, Merchant
-	115907, -- Breton Cart, Wheelbarrow
-	115908, -- Breton Bed, Bunk
-	115909, -- Breton Bed, Single
-	115910, -- Breton Pew, Windowed
-	115911, -- Breton Bench, Plain
-	115912, -- Breton Nightstand, Open
-	115913, -- Breton Bookcase, Tall
-	115914, -- Breton Chair, Slatted
-	115915, -- Breton Chair, Windowed
-	115916, -- Breton Shelves, Double
-	115917, -- Breton Rack, Barrel
-	115918, -- Breton Dresser, Open
-	115919, -- Breton Desk
-	115920, -- Breton Table, Dining
-	115921, -- Breton Trestle, Sturdy
-	115922, -- Breton Table, Kitchen
-	115923, -- Breton Shelf, Long
-	115924, -- Breton Pitcher, Ceramic
-	115925, -- Breton Carpet, Bordered
-	115926, -- Breton Carpet, Square
-	115927, -- Breton Amphora, Ceramic
-	115928, -- Breton Vase, Ceramic
-	115929, -- Breton Lightpost, Single
-	115930, -- Breton Sconce, Sturdy Torch
-	115931, -- Breton Street Post, Stone
-	115932, -- Breton Sconce, Torch
-	115933, -- Breton Street Post, Plain
-	115934, -- Breton Bed, Four-poster
-	115935, -- Breton Bed, Full
-	115936, -- Breton Pew, Knotwork
-	115937, -- Breton Bench, Knotwork
-	115938, -- Breton Bookcase, Knotwork
-	115939, -- Breton Chair, Rocking
-	115940, -- Breton Chest, Knotwork
-	115941, -- Breton Hutch, Knotwork
-	115942, -- Breton Cupboard, Knotwork
-	115943, -- Breton Chest of Drawers
-	115944, -- Breton Counter, Long Cabinet
-	115945, -- Breton Shelf, Barrel Rack
-	115946, -- Breton Stool, Plain
-	115947, -- Breton Desk, Knotwork
-	115948, -- Breton Table, Round
-	115949, -- Breton Table, Square
-	115950, -- Breton Shelf, Scrolled
-	115951, -- Breton Rack, Wine
-	115952, -- Breton Carpet, Full
-	115953, -- Breton Rug, Starburst
-	115954, -- Breton Carpet, Dark
-	115955, -- Breton Pottery, Lid
-	115956, -- Breton Urn, Glazed
-	115957, -- Breton Amphora, Glazed
-	115959, -- Breton Vase, Glazed
-	115961, -- Breton Streetlight, Arched Stone
-	115962, -- Breton Streetlight, Paired Stone
-	115963, -- Breton Cart, Covered Open
-	115964, -- Breton Stall, Vending
-	115965, -- Breton Lightpost, Arched
-	115966, -- Breton Streetlight, Paired
-	115967, -- Breton Figure, Stone
-	115968, -- Breton Chandelier, Wrought Iron
-	115969, -- Breton Curtains, Window
-	115970, -- Breton Bed, Canopy
-	115971, -- Breton Sideboard, Knotwork
-	115972, -- Breton Chair, Padded
-	115973, -- Breton Armchair, Padded
-	115974, -- Breton Cabinet, Knotwork
-	115975, -- Breton Curio, Knotwork
-	115976, -- Breton Drapes, Grand
-	115977, -- Breton Coffer, Knotwork
-	115978, -- Breton Cradle, Infant
-	115979, -- Breton Dresser, Knotwork
-	115980, -- Breton Counter, Corner
-	115981, -- Breton Counter, Cabinet
-	115982, -- Breton Mirror, Knotwork
-	115983, -- Breton Nightstand, Knotwork
-	115984, -- Breton Divider, Folded Knotwork
-	115985, -- Breton Divider, Curved Knotwork
-	115986, -- Breton Stool, Padded
-	115987, -- Breton Desk, Scholar's
-	115988, -- Breton Table, Formal
-	115989, -- Breton Trestle, Formal
-	115990, -- Breton Rug, Bordered
-	115991, -- Breton Runner, Bordered
-	115992, -- Breton Carpet, Bordered
-	115993, -- Breton Medallion, Lion
-	115994, -- Breton Tablecloth, Blue
-	115995, -- Breton Lamp, Oil
-	115996, -- Breton Tablecloth, Striped
-	115997, -- Breton Footlocker, Knotwork
-	115998, -- Breton Armoire, Knotwork
-	115999, -- Breton Cart, Palanquin
-	116000, -- Breton Tapestry, Vines
-	116001, -- Breton Tapestry, Boughs
-	116002, -- Breton Urn Lid, Striated
-	116003, -- Breton Urn, Striated
-	116004, -- Breton Lamp, Hanging
-	116005, -- Breton Streetlight, Full Stone
-	116006, -- Breton Vase, Delicate
-	116007, -- Breton Streetlight, Full
-	116008, -- Breton Sconce, Floor
-	116009, -- Breton Sconce, Grand
-	116010, -- Breton Candelabra, Formal
-	116011, -- Breton Sconce, Wall
-	116012, -- Dark Elf Cart, Merchant
-	116013, -- Dark Elf Rack, Barrel
-	116014, -- Dark Elf Armchair, Angled
-	116015, -- Dark Elf Chest of Drawers
-	116016, -- Dark Elf Bed, Single
-	116017, -- Dark Elf Table, Formal
-	116018, -- Dark Elf Shelf, Wall
-	116019, -- Dark Elf Urn, Banded
-	116020, -- Dark Elf Basin, Ringed
-	116021, -- Dark Elf Runner, Bordered
-	116022, -- Dark Elf Carpet, Mottled
-	116023, -- Dark Elf Carpet, Patterned
-	116024, -- Dark Elf Tapestry, Emblazoned
-	116025, -- Dark Elf Candle, Claw Base
-	116026, -- Dark Elf Lantern, Oil
-	116027, -- Dark Elf Streetpost, Banner
-	116028, -- Dark Elf Streetpost, Banners
-	116029, -- Dark Elf Wagon, Merchant
-	116030, -- Dark Elf Caravan, Cargo
-	116031, -- Dark Elf Dresser, Angled
-	116032, -- Dark Elf Bookcase, Sectioned
-	116033, -- Dark Elf Chair, Angled
-	116034, -- Dark Elf Counter, Bar
-	116035, -- Dark Elf Wardrobe, Scaled
-	116036, -- Dark Elf Desk, Angled
-	116037, -- Dark Elf Bed, Full
-	116038, -- Dark Elf Pillow, Body
-	116039, -- Dark Elf Stool, Angled
-	116040, -- Dark Elf Table, Tea
-	116041, -- Dark Elf Trestle, Scaled
-	116042, -- Dark Elf Wine Rack, Sturdy
-	116043, -- Dark Elf Shelf, Barrel
-	116044, -- Dark Elf Pot, Scaled
-	116045, -- Dark Elf Decanter, Glass
-	116046, -- Dark Elf Cruet, Glass
-	116047, -- Dark Elf Flags, Hanging
-	116048, -- Dark Elf Cauldron, Banded
-	116049, -- Dark Elf Carpet, Mossy
-	116050, -- Dark Elf Carpet, Fungal
-	116051, -- Dark Elf Rug, Fungal
-	116052, -- Dark Elf Hook, Wall
-	116053, -- Dark Elf Lantern, Caged
-	116054, -- Dark Elf Lantern, Hanging
-	116055, -- Dark Elf Streetlamp, Stone
-	116056, -- Dark Elf Streetlamps, Stone
-	116057, -- Dark Elf Sofa, Angled
-	116058, -- Dark Elf Bed, Canopy
-	116059, -- Dark Elf Counter, Corner
-	116060, -- Dark Elf Counter, Block
-	116061, -- Dark Elf Nightstand, Angled
-	116062, -- Dark Elf Pillow, Cushion
-	116063, -- Dark Elf Pillow, Roll
-	116064, -- Dark Elf Divider, Folded
-	116065, -- Dark Elf End Table, Angled
-	116066, -- Dark Elf Trunk, Buckled
-	116067, -- Dark Elf Wardrobe, Angled
-	116068, -- Dark Elf Kettle Cooker
-	116069, -- Dark Elf Pot, Banded
-	116070, -- Dark Elf Carpet, Ashen
-	116071, -- Dark Elf Rug, Mossy
-	116072, -- Dark Elf Rug, Striated
-	116073, -- Dark Elf Medallion, Tribunal
-	116074, -- Dark Elf Censer, Hanging
-	116075, -- Dark Elf Thurible, Caged
-	116077, -- Dark Elf Cauldron, Ringed
-	116078, -- Dark Elf Lantern, Ashen
-	116079, -- Dark Elf Candelabra, Angled
-	116080, -- Dark Elf Candle, Votive Tray
-	116081, -- Khajiit Firepit, Brick
-	116082, -- Khajiit Loft, Reed
-	116083, -- Khajiit Dresser, Faded
-	116084, -- Khajiit Stool, Crescent
-	116085, -- Khajiit End Table, Faded
-	116086, -- Khajiit Drapes, Tattered
-	116087, -- Khajiit Bottle, Amber
-	116088, -- Khajiit Flask, Amber
-	116089, -- Khajiit Carpet, Crescent Moons
-	116090, -- Khajiit Vase, Amber
-	116091, -- Khajiit Banner, Moons
-	116092, -- Khajiit Banner, Crescents
-	116093, -- Khajiit Candle, Clawfoot
-	116094, -- Khajiit Frame, Arched
-	116095, -- Khajiit Banner, Claw
-	116096, -- Khajiit Bed, Fur
-	116097, -- Khajiit Bedding, Padded
-	116098, -- Khajiit Signpost, Fortified
-	116099, -- Khajiit Bed, Faded
-	116100, -- Khajiit Bench, Padded
-	116101, -- Khajiit Bookshelf, Arched
-	116102, -- Khajiit Trunk, Arched
-	116103, -- Khajiit Counter, Faded
-	116104, -- Khajiit Nightstand, Gilded
-	116105, -- Khajiit Table, Formal
-	116106, -- Khajiit Jug, Amber
-	116107, -- Khajiit Pitcher, Amber
-	116108, -- Khajiit Carpet, Sun
-	116109, -- Khajiit Cushion, Long
-	116110, -- Khajiit Cushion, Single
-	116111, -- Khajiit Carafe, Amber
-	116112, -- Khajiit Decanter, Amber
-	116113, -- Khajiit Banner, Hooked
-	116114, -- Khajiit Brazier, Claw
-	116115, -- Khajiit Basin, Claw
-	116116, -- Khajiit Lantern, Hanging
-	116117, -- Khajiit Tent, Mercantile
-	116118, -- Khajiit Tent, Storage
-	116119, -- Khajiit Wagon, Reed
-	116120, -- Khajiit Curtains, Moons
-	116121, -- Khajiit Barstool, Clawfoot
-	116122, -- Khajiit Barstool, Padded
-	116123, -- Khajiit Skooma Bubbler
-	116124, -- Khajiit Tent, Vacation
-	116125, -- Khajiit Bed, Canopy
-	116126, -- Khajiit Couch, Padded
-	116127, -- Khajiit Bookcase, Arched
-	116128, -- Khajiit Footlocker, Arched
-	116129, -- Khajiit Counter, Long Cabinet
-	116130, -- Khajiit Desk, Faded
-	116131, -- Khajiit Divider, Folding
-	116132, -- Khajiit Table, Round
-	116133, -- Khajiit Wardrobe, Arched
-	116134, -- Khajiit Rug, Moons
-	116135, -- Khajiit Drapes, Grand
-	116136, -- Khajiit Pillow, Crescents
-	116137, -- Khajiit Vial, Amber
-	116138, -- Khajiit Urn, Amber
-	116139, -- Khajiit Vessel, Amber
-	116140, -- Khajiit Candles, Clawfoot
-	116141, -- Khajiit Sofa, Padded
-	116142, -- Khajiit Pillow, Roll
-	116143, -- Khajiit Rug, Sun
-	116144, -- Khajiit Brazier, Hanging
-	116145, -- Khajiit Sconce, Spiked
-	116146, -- Khajiit Candle-Filled Lamp
-	116147, -- Nord Cart, Hay
-	116148, -- Nord Trunk, Heavy
-	116149, -- Nord Hutch, Rough
-	116150, -- Nord Dresser, Rough
-	116151, -- Nord Nightstand, Rough
-	116152, -- Nord Lantern, Cage
-	116153, -- Nord Pot, Ceramic
-	116154, -- Nord Urn, Ceramic
-	116155, -- Nord Bed, Single
-	116156, -- Nord Bench, Braced
-	116157, -- Nord Stool, Rough
-	116158, -- Nord Table, Kitchen
-	116159, -- Nord Shelf, Wall
-	116160, -- Nord Shelf, Braced
-	116161, -- Nord Pot, Covered
-	116162, -- Nord Pot, Stew
-	116163, -- Nord Candle, Tealight
-	116164, -- Nord Candleholder, Cup
-	116165, -- Nord Torch, Triple
-	116166, -- Nord Cart, Cargo
-	116167, -- Nord Trunk, Faded
-	116168, -- Nord Cauldron, Glazed
-	116169, -- Nord Pot, Chunky Stew
-	116170, -- Nord Amphora, Glazed
-	116171, -- Nord Vase, Bent
-	116172, -- Nord Bed, Sleigh
-	116173, -- Nord Bench, Plank
-	116174, -- Nord Bookshelf, Alcove
-	116175, -- Nord Chair, Braced
-	116176, -- Nord Counter, Long
-	116177, -- Nord Dresser, Braced
-	116178, -- Nord Stool, Braced
-	116179, -- Nord Table, Dining
-	116180, -- Nord Table, Round
-	116181, -- Nord Table, Braced
-	116182, -- Nord Trestle, Braced
-	116183, -- Nord Footlocker, Braced
-	116184, -- Nord Armoire, Lattice
-	116185, -- Nord Rack, Wine
-	116186, -- Nord Crockpot, Carrot Soup
-	116187, -- Nord Crockpot, Covered
-	116188, -- Nord Tapestry, Dragon
-	116189, -- Nord Lantern, Hanging
-	116190, -- Nord Drinking Horn, Empty
-	116191, -- Nord Cart, Covered
-	116192, -- Nord Chest, Latched
-	116193, -- Nord Urn, Braided
-	116194, -- Nord Bed, Canopy
-	116195, -- Nord Bookcase, Alcove
-	116196, -- Nord Chair, Lattice
-	116197, -- Nord Counter, Corner
-	116198, -- Nord Counter, Cabinet
-	116199, -- Nord Desk, Tied
-	116200, -- Nord Nightstand, Braced
-	116201, -- Nord Divider, Folding
-	116202, -- Nord Table, Great
-	116203, -- Nord Table, Formal
-	116204, -- Nord Table, Game
-	116205, -- Nord Trestle, Tied
-	116206, -- Nord Rug, Bearskin
-	116207, -- Nord Banner, Knotwork
-	116208, -- Nord Tapestry, Ship
-	116209, -- Nord Candle, Antler
-	116210, -- Nord Chandelier, Antler
-	116211, -- Nord Streetlamps, Stone
-	116212, -- Nord Lamppost, Stone
-	116213, -- Nord Brazier, Hanging
-	116216, -- Nord Trunk, Buckled
-	118916, -- High Elf Wagon, Covered
-	118917, -- High Elf Bed, Winged Double
-	118918, -- High Elf Bench, Covered
-	118919, -- High Elf Bookshelf, Winged
-	118920, -- High Elf Armoire, Winged
-	118921, -- High Elf Bookcase, Winged
-	118922, -- High Elf Dresser, Corner
-	118923, -- High Elf Chair, Regal Verdant
-	118924, -- High Elf Chair, Regal Winged
-	118925, -- High Elf Trunk, Jeweled
-	118926, -- High Elf Counter, Block
-	118927, -- High Elf Cabinet, Corner
-	118928, -- High Elf Desk, Regal Winged
-	118929, -- High Elf Dresser, Winged
-	118930, -- High Elf Divider, Delicate
-	118931, -- High Elf Divider, Carved
-	118932, -- High Elf Table, Tea
-	118933, -- High Elf Stool, Covered
-	118934, -- High Elf End Table, Winged
-	118935, -- High Elf Table, Winged Formal
-	118936, -- High Elf Table, Winged Kitchen
-	118937, -- High Elf Trestle, Winged
-	118938, -- High Elf Bowl, Serving
-	118939, -- High Elf Pot, Hanging
-	118940, -- High Elf Basin, Standing
-	118941, -- High Elf Platter, Winged
-	118942, -- High Elf Carpet, Eagle
-	118943, -- High Elf Tapestry, Eagle
-	118944, -- High Elf Vase, Winged
-	118945, -- High Elf Decanter, Glass
-	118946, -- High Elf Goblet, Winged
-	118947, -- High Elf Goblet, Glass
-	118948, -- High Elf Brazier, Winged
-	118949, -- High Elf Chandelier, Winged
-	118950, -- High Elf Candle, Winged
-	118951, -- High Elf Lamppost, Stone
-	118952, -- High Elf Candelabra, Winged
-	118953, -- High Elf Crest, Winged
-	118954, -- High Elf Streetlight, Stone
-	118955, -- Breton Cart, Covered Closed
-	118956, -- High Elf Wagon, Sturdy
-	118957, -- High Elf Bed, Winged
-	118958, -- High Elf Bed, Verdant
-	118959, -- High Elf Chest of Drawers
-	118960, -- High Elf Bookcase, Verdant
-	118961, -- High Elf Chair, Verdant
-	118962, -- High Elf Chair, Winged
-	118963, -- High Elf Bar, Overhanging
-	118964, -- High Elf Desk, Verdant
-	118965, -- High Elf Dresser, Verdant
-	118966, -- High Elf End Table, Verdant
-	118967, -- High Elf Table, Verdant Formal
-	118968, -- High Elf Table, Verdant Kitchen
-	118969, -- High Elf Trestle, Verdant
-	118970, -- High Elf Trunk, Winged
-	118971, -- High Elf Wine Rack, Folding
-	118972, -- High Elf Platter, Gilded
-	118973, -- High Elf Carpet, Water-Themed
-	118974, -- High Elf Carpet, Tree-Themed
-	118975, -- High Elf Tapestry, Water-Themed
-	118976, -- High Elf Tapestry, Tree-Themed
-	118977, -- High Elf Carafe, Gilded
-	118978, -- High Elf Vase, Gilded
-	118979, -- High Elf Bottle, Winged
-	118980, -- High Elf Flute, Wine
-	118981, -- High Elf Basin, Winged
-	118982, -- High Elf Lamppost, Spiked
-	118983, -- High Elf Lamp, Oil
-	118984, -- High Elf Bed, Bunk
-	118985, -- High Elf Bed, Single
-	118986, -- High Elf Bench, Curved
-	118987, -- High Elf Bookshelf, Verdant
-	118988, -- High Elf Counter, Long Cabinet
-	118989, -- High Elf Desk, Sturdy
-	118990, -- High Elf Dresser, Sturdy
-	118991, -- High Elf Stool, Curved
-	118992, -- High Elf End Table, Sturdy
-	118993, -- High Elf Table, Sturdy Formal
-	118994, -- High Elf Table, Sturdy Kitchen
-	118995, -- High Elf Trestle, Sturdy
-	118996, -- High Elf Shelf, Short
-	118997, -- High Elf Shelf, Long
-	118998, -- High Elf Basin, Gilded
-	118999, -- High Elf Cup, Gilded
-	119000, -- High Elf Flask, Gilded
-	119001, -- High Elf Plate, Dinner
-	119002, -- High Elf Carpet, Rustic
-	119003, -- High Elf Tapestry, Rustic
-	119004, -- High Elf Candleholder, Sturdy
-	119005, -- Orcish Tent, Shingled
-	119006, -- Orcish Platform, Block
-	119007, -- Orcish Counter, Island Stall
-	119008, -- Orcish Wash Tub
-	119009, -- Orcish Bedding, Stone
-	119010, -- Orcish Bedding, Fur
-	119011, -- Orcish Table, Block
-	119012, -- Orcish Table, Braced Formal
-	119013, -- Orcish Table, Braced Kitchen
-	119014, -- Orcish Trunk, Braced
-	119015, -- Orcish Bench, Cabled
-	119016, -- Orcish Shelves, Braced
-	119017, -- Orcish Bar, Long Block
-	119018, -- Orcish Counter, Block
-	119019, -- Orcish Bar, Side
-	119020, -- Orcish Shelf, Long
-	119021, -- Orcish Shelf, Short
-	119022, -- Orcish Stool, Cabled
-	119023, -- Orcish Bowl, Rugged
-	119024, -- Orcish Mug, Rugged
-	119025, -- Orcish Canister, Rugged
-	119026, -- Orcish Cask, Rugged
-	119027, -- Orcish Carpet, Fringed
-	119028, -- Orcish Brazier, Smoldering
-	119029, -- Orcish Lantern, Hooded
-	119030, -- Orcish Banner, Faded
-	119031, -- Orcish Banner, Worn
-	119032, -- Breton Chamberstick, Short
-	119033, -- Breton Chamberstick, Tall
-	119034, -- Orcish Canopy, Shingled
-	119035, -- Orcish Shelter, Shingled
-	119036, -- Orcish Platform, Stage
-	119037, -- Orcish Sack, Grain
-	119038, -- Orcish Sack, Flour
-	119039, -- Orcish Sack, Bean
-	119040, -- Orcish Bucket, Cistern
-	119041, -- Orcish Curtain, Folding
-	119042, -- Orcish Curtain, Curved
-	119043, -- Orcish Armchair, Peaked
-	119044, -- Orcish Pew, Peaked
-	119045, -- Orcish Bedding, Peaked
-	119046, -- Orcish Bookshelf, Engraved
-	119047, -- Orcish Bunkbed, Leather
-	119048, -- Orcish Chair, Peaked
-	119049, -- Orcish Trunk, Heavy
-	119050, -- Orcish Desk, Engraved
-	119051, -- Orcish Bar, Long Branded Block
-	119052, -- Orcish Counter, Branded
-	119053, -- Orcish Cabinet, Branded
-	119054, -- Orcish Dresser, Open
-	119055, -- Orcish Nightstand, Open
-	119056, -- Orcish Table, Engraved
-	119057, -- Orcish Trestle, Engraved
-	119058, -- Orcish Table, Kitchen
-	119059, -- Orcish Table, Formal
-	119060, -- Orcish Footlocker, Buckled
-	119061, -- Orcish Bowl, Stone
-	119062, -- Orcish Goblet, Stone
-	119063, -- Orcish Plate, Stone
-	119064, -- Orcish Saucer, Stone
-	119065, -- Orcish Vessel, Sealed Ceramic
-	119066, -- Orcish Urn, Ceramic
-	119067, -- Orcish Lantern, Hanging
-	119068, -- Orcish Brazier, Pedestal
-	119069, -- Orcish Chandelier, Practical
-	119070, -- Orcish Sconce, Caged
-	119071, -- Orcish Banner, Hammer Fist
-	119072, -- Orcish Strongbox, Buckled
-	119073, -- Orcish Trunk, Buckled
-	119074, -- Orcish Chest, Buckled
-	119075, -- Orcish Chair, Peaked
-	119076, -- Orcish Throne, Stone
-	119077, -- Orcish Throne, Engraved
-	119078, -- Orcish Capsule, Sealed
-	119079, -- Orcish Armoire, Peaked
-	119080, -- Orcish Bed, Peaked
-	119081, -- Orcish Bookcase, Peaked
-	119082, -- Orcish Bookshelf, Peaked
-	119083, -- Orcish Sideboard, Engraved
-	119084, -- Orcish Cabinet, Engraved
-	119085, -- Orcish Hutch, Engraved
-	119086, -- Orcish Coffer, Bolted
-	119087, -- Orcish Cupboards, Peaked
-	119088, -- Orcish Dresser, Engraved
-	119089, -- Orcish Cabinet, Bedside
-	119090, -- Orcish Counter, Corner
-	119091, -- Orcish Hutch, Storage
-	119092, -- Orcish Shelves, Storage
-	119093, -- Orcish Nightstand, Engraved
-	119094, -- Orcish Divider, Folded
-	119095, -- Orcish Divider, Curved
-	119096, -- Orcish Table, Game
-	119097, -- Orcish Table, Grand
-	119098, -- Orcish Throne, Peaked
-	119099, -- Orcish Stein, Horn
-	119100, -- Orcish Mug, Horn
-	119101, -- Orcish Knife, Kitchen
-	119102, -- Orcish Backpack
-	119103, -- Orcish Bowl, Buffed
-	119104, -- Orcish Platter, Serving
-	119105, -- Orcish Urn, Sealed
-	119106, -- Orcish Tapestry, Axe
-	119107, -- Orcish Tapestry, Heroes
-	119108, -- Orcish Tapestry, Sword
-	119109, -- Orcish Vessel, Sealed
-	119110, -- Orcish Cauldron, Sealed
-	119111, -- Orcish Candleholder, Horn
-	119112, -- Orcish Candlestick, Horn
-	119113, -- Orcish Candle Sconce, Horn
-	119114, -- Orcish Brazier, Bordered
-	119115, -- Orcish Brazier, Hanging
-	119116, -- Orcish Brazier, Tabletop
-	119117, -- Orcish Brazier, Floor
-	119118, -- Orcish Sconce, Bordered
-	119119, -- Orcish Sconce, Scrolled
-	119120, -- Orcish Cradle, Peaked
-	121306, -- Orcish Figurine, Strength
-	119121, -- Orcish Mirror, Peaked
-	119122, -- Orcish Tapestry, War
-	119123, -- Orcish Chandelier, Spiked
-	119124, -- Redguard Carriage, Practical
-	119125, -- Redguard Cart, Practical
-	119126, -- Redguard Wagon, Merchant
-	119127, -- Redguard Cart, Work
-	119128, -- Redguard Bin, Roped
-	119129, -- Redguard Bin, Sealed
-	119130, -- Redguard Pot, Sealed
-	119131, -- Redguard Pot, Capped
-	119132, -- Redguard Desk, Florid
-	119133, -- Redguard Rack, Barrel
-	119134, -- Redguard Bar, Long Cabinet
-	119135, -- Redguard Trunk, Heavy
-	119136, -- Redguard Bed, Wide
-	119137, -- Redguard Bed, Full
-	119138, -- Redguard Couch, Bolted
-	119139, -- Redguard Bench, Slatted
-	119140, -- Redguard Armchair, Slatted
-	119141, -- Redguard Chair, Backless
-	119142, -- Redguard Chair, Slatted
-	119143, -- Redguard Desk, Sturdy
-	119144, -- Redguard Nightstand, Sturdy
-	119145, -- Redguard Table, Sturdy
-	119146, -- Redguard Stool, Sturdy
-	119147, -- Redguard Stool, Block
-	119148, -- Redguard Shelf, Sturdy
-	119149, -- Redguard Pot, Hanging Brushed
-	119150, -- Redguard Kabobs, Wax
-	119151, -- Redguard Vessel, Lacquered
-	119152, -- Redguard Urn, Lacquered
-	119153, -- Redguard Pot, Ceramic
-	119154, -- Redguard Curtain, Smoky
-	119155, -- Redguard Curtain, Desert Rose
-	119156, -- Redguard Banner, Post
-	119157, -- Redguard Candlestick, Practical
-	119158, -- Redguard Candleholder, Practical
-	119159, -- Redguard Candelabra, Practical
-	119160, -- Redguard Well, Covered
-	119161, -- Redguard Cup, Empty
-	119162, -- Redguard Cup, Full
-	119163, -- Redguard Caravan, Practical
-	119164, -- Redguard Carriage, Merchant
-	119165, -- Redguard Vase, Lacquered
-	119166, -- Redguard Pot, Lacquered
-	119167, -- Redguard Amphora, Polished
-	119168, -- Redguard Cask, Sealed
-	119169, -- Redguard Keg, Hefty
-	119170, -- Redguard Couch, Padded
-	119171, -- Redguard Cabinet, Inlaid
-	119172, -- Redguard Armchair, Cushioned
-	119173, -- Redguard Cupboard, Lattice
-	119174, -- Redguard Vanity, Florid
-	119175, -- Redguard Counter, Corner
-	119176, -- Redguard Counter, Cabinet
-	119177, -- Redguard Shelf, Barrel
-	119178, -- Redguard Nightstand, Florid
-	119179, -- Redguard Divider, Florid
-	119180, -- Redguard Sofa, Desert Flame
-	119181, -- Redguard Tuffet, Flames
-	119182, -- Redguard Stool, Padded
-	119183, -- Redguard Bed, Wide Grand
-	119184, -- Redguard Bed, Full Arched
-	119185, -- Redguard Bowl, Hanging Star
-	119186, -- Redguard Urn, Star
-	119187, -- Redguard Footlocker, Braced
-	119188, -- Redguard Table, Grand Oasis
-	119189, -- Redguard Table, Oasis
-	119190, -- Redguard End Table, Oasis
-	119191, -- Redguard Trunk, Bolted
-	119192, -- Redguard Wine Rack, Sturdy
-	119193, -- Redguard Shelf, Arched
-	119194, -- Redguard Wardrobe, Inlaid
-	119195, -- Redguard Kabobs, Plate
-	119196, -- Redguard Runner, Sun
-	119197, -- Redguard Mat, Sunset
-	119198, -- Redguard Carpet, Dunes
-	119199, -- Redguard Tapestry, Lattice
-	119200, -- Redguard Satchel, Heavy
-	119201, -- Redguard Goblet, Empty
-	119202, -- Redguard Goblet, Full
-	119203, -- Redguard Spittoon, Gilded
-	119204, -- Redguard Cauldron, Clawfoot
-	119205, -- Redguard Sconce, Polished
-	119206, -- Redguard Mug, Empty
-	119207, -- Redguard Mug, Full
-	119208, -- Redguard Tankard, Empty
-	119209, -- Redguard Tankard, Full
-	119210, -- Redguard Streetlamp, Single
-	119211, -- Redguard Streetlamps, Paired
-	119212, -- Redguard Streetlamps, Triple
-	119213, -- Redguard Brazier, Robust
-	119214, -- Redguard Candlestick, Polished
-	119215, -- Redguard Candleholder, Polished
-	119216, -- Redguard Well, Arched
-	119217, -- Redguard Bowl, Gilded
-	119218, -- Redguard Censer, Hanging Bell
-	119219, -- Redguard Censer, Hanging Horn
-	119220, -- Redguard Basket, Closed
-	119221, -- Redguard Mat, Meditation
-	119222, -- Redguard Mat, Desert Sun
-	119223, -- Redguard Mat, Sunrise
-	119224, -- Redguard Awning, Desert Flame
-	119225, -- Redguard Tent, Scaled Flames
-	119226, -- Redguard Canopy, Dawn
-	119228, -- Redguard Caravan, Cargo
-	119229, -- Redguard Caravan, Merchant
-	119230, -- Redguard Brazier, Garish
-	119231, -- Redguard Urn, Mural
-	119232, -- Redguard Pillow, Sunset
-	119233, -- Redguard Pillow, Oasis
-	119234, -- Redguard Pillow, Florid Oasis
-	119235, -- Redguard Pillow Roll, Oasis
-	119236, -- Redguard Throw Pillow, Oasis
-	119238, -- Redguard Bed, Wide Canopy
-	119239, -- Redguard Couch, Slatted
-	119240, -- Redguard Bench, Padded
-	119241, -- Redguard Wardrobe, Braced
-	119242, -- Redguard Bookcase, Arched
-	119243, -- Redguard Wardrobe, Sturdy
-	119244, -- Redguard Bookcase, Piled
-	119245, -- Redguard Bookcase, Full
-	119246, -- Redguard Armchair, Starry
-	119247, -- Redguard Chair, Starry
-	119248, -- Redguard Desk, Bolted
-	119249, -- Redguard Vanity, Bolted
-	119250, -- Redguard Nightstand, Bolted
-	119251, -- Redguard Pot, Hanging Garish
-	119252, -- Redguard Table, Formal
-	119253, -- Redguard Table, Game
-	119254, -- Redguard Divider, Lattice
-	119255, -- Redguard Stool, Starry
-	119256, -- Redguard Footstool, Starry
-	119257, -- Redguard Cupboard, Sturdy
-	119258, -- Redguard Shelf, Bolted
-	119259, -- Redguard Wine Rack, Inlaid
-	119260, -- Redguard Bench, Arc
-	119261, -- Redguard Pot, Mosaic
-	119262, -- Redguard Pot, Hanging Mosaic
-	119263, -- Redguard Slices, Wax
-	119264, -- Redguard Runner, Oasis
-	119265, -- Redguard Mat, Desert
-	119266, -- Redguard Carpet, Mirage
-	119267, -- Redguard Tapestry, Oasis
-	119268, -- Redguard Chalice, Empty
-	119269, -- Redguard Chalice, Full
-	119270, -- Redguard Hourglass of Desert Sands
-	119271, -- Redguard Jar, Oasis
-	119272, -- Redguard Vase, Baroque
-	119273, -- Redguard Bottle, Delicate
-	119274, -- Redguard Jar, Baroque
-	119275, -- Redguard Decanter, Delicate
-	119276, -- Redguard Lantern, Delicate
-	119277, -- Redguard Streetlamps, Full
-	119278, -- Redguard Candelabra, Twisted
-	119279, -- Redguard Candelabra, Polished
-	119280, -- Redguard Chandelier, Polished
-	119281, -- Redguard Chandelier, Polished Grated
-	119282, -- Redguard Awning, Oasis
-	119283, -- Redguard Tent, Starry
-	119284, -- Redguard Firepit, Stone
-	119285, -- Redguard Counter, Block Island
-	119286, -- Redguard Counter, Bar Island
-	119287, -- Redguard Counter, Grill
-	119288, -- Redguard Brazier, Enchanted
-	119290, -- Redguard Canopy, Stars
-	119291, -- Redguard Pillow, Lattice Flames
-	119292, -- Redguard Pillow, Florid Flames
-	119293, -- Redguard Pillow, Florid Sunset
-	119295, -- Redguard Table, Inlaid
-	119296, -- Redguard Table, Grand Inlaid
-	119297, -- Redguard End Table, Tea
-	119298, -- Redguard Pillow Roll, Desert Flame
-	119299, -- Redguard Throw Pillow, Desert Flame
-	119300, -- Redguard Tuffet, Oasis
-	119301, -- Redguard End Table, Inlaid
-	119302, -- Redguard Decanter, Glass
-	119303, -- Redguard Bottle, Stained Glass
-	119304, -- Redguard Vial, Stained Glass
-	119305, -- Redguard Carpet, Oasis
-	119306, -- Redguard Mat, Mirage
-	119307, -- Redguard Mat, Starburst
-	119308, -- Redguard Lantern, Cannister
-	119309, -- Redguard Lamp, Caged
-	119310, -- Redguard Lantern, Caged
-	119311, -- Redguard Lantern, Caged Stand
-	119312, -- Redguard Tapestry, Starry
-	121373, -- Redguard Censer, Hanging Bulb
-	119314, -- Rough Stretcher, Military
-	119317, -- Rough Crate, Reinforced
-	119325, -- Rough Bag, Burlap
-	119328, -- Rough Hatchet, Practical
-	119330, -- Rough Knife, Butcher
-	119331, -- Rough Bowl, Common
-	119338, -- Rough Platform, Stage
-	119342, -- Rough Crate, Bolted
-	119344, -- Rough Box, Boarded
-	119348, -- Rough Container, Cargo
-	119350, -- Rough Bedroll, Basic
-	119351, -- Lettuce, Display
-	119352, -- Pumpkin, Display
-	119353, -- Winter Squash, Display
-	119354, -- Beet String, Display
-	119356, -- Beets, Display
-	119357, -- Common Counter, Island Stall
-	119358, -- Common Barrel, Sealed
-	119359, -- Common Basket, Closed
-	119360, -- Common Basket, Lid
-	119361, -- Common Basket, Open
-	119362, -- Common Basket, Tall
-	119363, -- Common Bucket, Basic
-	119364, -- Common Bucket, Rope
-	119365, -- Common Cargo, Covered
-	119366, -- Common Crate, Sealed
-	119367, -- Common Washtub, Empty
-	119368, -- Footstool, Block
-	119369, -- Common Trough
-	119370, -- Common Wheelbarrow, Flat
-	119371, -- Common Wheelbarrow, Barrel
-	119372, -- Common Wheelbarrow, Sided
-	119373, -- Apple, Display
-	119374, -- Common Pack, Backpack
-	119375, -- Common Pack, Satchel
-	119376, -- Banana, Wax
-	119377, -- Common Bowl of Soup, Display
-	119378, -- Carrots, Wax
-	119379, -- Common Cleaver, Cooking
-	119380, -- Common Pot, Cooking
-	119381, -- Grapes, Wax
-	119382, -- Common Inkwell, Practical
-	119383, -- Common Plate, Simple
-	119384, -- Common Plate, Setting
-	119385, -- Sugar Pumpkin, Wax
-	119386, -- Radish, Wax
-	119387, -- Bowl, Serving
-	119388, -- Common Bowl of Stew, Display
-	119389, -- Common Platter, Serving
-	119390, -- Common Skillet, Practical
-	119391, -- Common Candle, Set
-	119392, -- Common Candles, Pair
-	119393, -- Common Candle, Lasting
-	119394, -- Common Bookrest, Practical
-	119395, -- Common Post, Flag Pole
-	119396, -- Common Lantern, Hanging
-	119397, -- Common Lantern, Stationary
-	119399, -- Common Post, Sign Holder
-	119400, -- Hammer, Forge
-	119401, -- Tongs, Forge
-	119402, -- Potato, Wax
-	119403, -- Common Table, Slanted
-	119404, -- Common Cage, Hunting
-	119405, -- Common Trap, Hunting
-	119406, -- Common Cargo, Sealed
-	119407, -- Common Cargo, Reinforced
-	119413, -- Cauldron of Soup
-	119416, -- Cauldron of Stew
-	119418, -- Cauldron, Covered
-	119420, -- Cart, Sided
-	119421, -- Coffin, Lid
-	119422, -- Coffin, Case
-	119423, -- Keg
-	119424, -- Cleaver, Butcher's
-	119425, -- Hearty Bread
-	119427, -- Cheese Wedge
-	119429, -- Ham, Display
-	119432, -- Hourglass, Common
-	119438, -- Baked Potato, Display
-	119439, -- Pot Pie, Display
-	119440, -- Pie Dish, Empty
-	119443, -- Drumstick
-	119444, -- Candle, Group
-	119445, -- Lantern, Stationary
-	119446, -- Lantern, Hanging
-	119451, -- Kennel, Locked
-	119462, -- Plums, Bunch
-	119463, -- Tangerines, Bunch
-	119464, -- Peaches, Bunch
-	119465, -- Oranges, Bunch
-	119467, -- Cured Meat
-	119468, -- Cured Meats
-	119469, -- Cured Meat Chunks
-	119470, -- Cured Meat Chunk
-	119471, -- Cured Meat Pile
-	119472, -- Cured Meat Hock
-	119476, -- Grilling Rack
-	119477, -- Basket of Apples
-	119478, -- Basket of Apples, Full
-	119479, -- Basket of Lettuce
-	119480, -- Basket of Gourds
-	119481, -- Basket of Corn
-	119482, -- Basket of Tomatoes
-	119483, -- Gibbet, Single
-	119484, -- Bottle, Elixir
-	119485, -- Bottle, Liquor
-	119486, -- Vial, Delicate
-	119487, -- Pie Dish, Display
-	119488, -- Bottle, Wine
-	119489, -- Candle Set, Ritual
-	119490, -- Horn, Ritual
-	119491, -- Cured Meat Shank
-	119518, -- Cage, Wild Animal
-	119520, -- Cage, Covered
-	119524, -- Stockade
-	119525, -- Bread, Braided
-	119526, -- Goblet, Wine
-	119527, -- Bread, Round
-	119529, -- Bread Loaves, Round
-	119532, -- Bread, Hearty Loaves
-	119533, -- Box of Plums
-	119539, -- Sweetroll
-	119540, -- Desk, Engraved
-	119541, -- Fish, Small
-	119542, -- Fish, Medium
-	119543, -- Fish, Large
-	119592, -- Target Skeleton, Humanoid
+  115721, -- Argonian Chimney Stack
+  115722, -- Argonian Rack, Sturdy
+  115723, -- Argonian Shelves, Half
+  115724, -- Argonian Shelves, Full
+  115725, -- Argonian Snakes on a Rope
+  115726, -- Argonian Dried Leaves
+  115727, -- Argonian Lattice, Rough
+  115728, -- Argonian Tarp, Woven
+  115729, -- Argonian Tarp, Sturdy
+  115730, -- Argonian Counter, Long
+  115731, -- Argonian Pole, Split
+  115732, -- Argonian Stool, Roped
+  115733, -- Argonian Chair, Rough
+  115734, -- Argonian Table, Rough
+  115735, -- Argonian Cup, Tall
+  115736, -- Argonian Cup, Short
+  115737, -- Argonian Bowl, Wooden
+  115738, -- Argonian Baskets, Double
+  115739, -- Argonian Basket, Serving
+  115740, -- Argonian Mug, Tooth
+  115741, -- Argonian Ramekin, Hardened
+  115742, -- Argonian Pan, Frying
+  115743, -- Argonian Banner, Hanging
+  115744, -- Argonian Post, Sturdy
+  115745, -- Argonian Post, Rough
+  115746, -- Argonian Mat, Tidy Reed
+  115747, -- Argonian Mat, Rolled Reed
+  115748, -- Argonian Mat, Reed
+  115749, -- Argonian Tent, Reed
+  115750, -- Argonian Canopy, Reed
+  115751, -- Argonian Basket, Closed
+  115752, -- Argonian Bin, Woven
+  115753, -- Argonian Totem, Painted Skull
+  115754, -- Argonian Rack, Drying
+  115755, -- Argonian Totem, Frilled Skull
+  115756, -- Argonian Cage, Rat
+  115757, -- Argonian Cage, Bird
+  115758, -- Argonian Wind Chimes
+  115759, -- Argonian Bar, Woven Corner
+  115760, -- Argonian Snakes in a Basket
+  115761, -- Argonian Bed, Woven
+  115762, -- Argonian Bench, Woven
+  115763, -- Argonian Chair, Woven
+  115764, -- Argonian Trunk, Sturdy
+  115765, -- Argonian Bookshelf, Woven
+  115766, -- Argonian Dresser, Sturdy
+  115767, -- Argonian Shelf, Woven
+  115768, -- Argonian Bookcase, Sturdy
+  115769, -- Argonian Stool, Woven
+  115770, -- Argonian Table, Formal
+  115771, -- Argonian End Table, Woven
+  115772, -- Argonian Bowl, Serving
+  115773, -- Argonian Cup, Bordered
+  115774, -- Argonian Basket, Woven
+  115775, -- Argonian Bowl, Bordered
+  115776, -- Argonian Ramekin, Bordered
+  115777, -- Argonian Urn, Clawfoot
+  115778, -- Argonian Tray, Woven
+  115779, -- Argonian Curtain, Woven
+  115780, -- Argonian Curtains, Woven
+  115781, -- Argonian Medallion, Stone
+  115782, -- Argonian Scaleskin, Pale
+  115783, -- Argonian Scaleskin, Striped
+  115784, -- Argonian Scaleskin, Faded
+  115785, -- Argonian Lamppost
+  115787, -- Argonian Canopy, Frilled
+  115788, -- Argonian Canopy, Skull
+  115789, -- Argonian Canopy, Scaled
+  115790, -- Argonian Trunk, Painted
+  115791, -- Argonian Chest, Carved
+  115792, -- Argonian Skull, Crocodile
+  115793, -- Argonian Totem of the Snake
+  115794, -- Argonian Skull, Lizard
+  115795, -- Argonian Bone Chimes
+  115796, -- Argonian Hamper, Woven
+  115799, -- Argonian Table, Horn
+  115800, -- Argonian Curtain of Smoke
+  115801, -- Argonian Curtain of the Nest
+  115802, -- Argonian Drum, Ceremonial
+  115803, -- Argonian Bowl, Ritual
+  115804, -- Argonian Jug, Ritual
+  115805, -- Argonian Pot, Ritual
+  115806, -- Argonian Pestle, Bone
+  115807, -- Argonian Seat of Authority
+  115808, -- Argonian Seat of Honor
+  115809, -- Argonian Mortar and Pestle, Bone
+  115810, -- Argonian Mortar, Bone
+  115811, -- Argonian Pedestal, Altar
+  115812, -- Argonian Censer
+  115813, -- Argonian Relic, Small Serpent
+  115814, -- Argonian Relic, Serpent
+  115815, -- Argonian Seat of Comfort
+  115816, -- Argonian Divider, Stretched
+  115817, -- Argonian Bedroll, Woven
+  115818, -- Argonian Banners, Frilled
+  115819, -- Argonian Banner, Half Hands
+  115820, -- Argonian Post, Frilled
+  115821, -- Argonian Lanterns, String
+  115822, -- Argonian Lanterns, Strand
+  115823, -- Argonian Light, Stick
+  115824, -- Argonian Lamp, Mud
+  115825, -- Argonian Brazier, Mud
+  115826, -- Argonian Lights, Branch
+  115827, -- Argonian Bark, Painted
+  115828, -- Argonian Relic, Basin
+  115829, -- Argonian Totem of Skulls
+  115830, -- Argonian Gravestick
+  115831, -- Argonian Tree of Lights
+  115832, -- Argonian Tile, Inscribed
+  115833, -- Wood Elf Stool, Leather
+  115834, -- Wood Elf Counter, Long Leather
+  115835, -- Wood Elf Shelf, Tiered
+  115836, -- Wood Elf Table, Leather
+  115837, -- Wood Elf Bar, Sturdy
+  115838, -- Wood Elf Bar, Long
+  115839, -- Wood Elf Bar, Drying
+  115840, -- Wood Elf Bar, Short
+  115841, -- Wood Elf Rack, Brace
+  115842, -- Wood Elf Divider, Stretched
+  115843, -- Wood Elf Divider, Narrow
+  115844, -- Wood Elf Vase, Swirled
+  115845, -- Wood Elf Urn, Scratched
+  115846, -- Wood Elf Urn, Deer
+  115847, -- Wood Elf Cup, Ceramic
+  115848, -- Wood Elf Cup, Chipped
+  115849, -- Wood Elf Cup, Striped
+  115850, -- Wood Elf Pedestal, Engraved
+  115851, -- Wood Elf Basin, Stone
+  115852, -- Wood Elf Awning, Leather
+  115853, -- Wood Elf Canopy, Leather
+  115854, -- Wood Elf Bedding, Scattered
+  115855, -- Wood Elf Grinding Stone
+  115856, -- Wood Elf Hide, Heavy
+  115857, -- Wood Elf Wall Hide, Pierced
+  115858, -- Wood Elf Wall Hide, Fur
+  115859, -- Wood Elf Wall Hide, Spotted
+  115860, -- Wood Elf Cauldron, Stone
+  115861, -- Wood Elf Tent, Sturdy
+  115862, -- Wood Elf Chair, Leather
+  115863, -- Wood Elf Bookcase, Leather
+  115864, -- Wood Elf Table, Formal
+  115865, -- Wood Elf Barrel, Ceramic
+  115866, -- Wood Elf Cask, Ceramic
+  115867, -- Wood Elf Bladder, Fermenting
+  115868, -- Wood Elf Cauldron, Ceramic
+  115869, -- Wood Elf Hammock, Single
+  115870, -- Wood Elf Hammock, Double
+  115871, -- Wood Elf Rack, Single
+  115872, -- Wood Elf Rack, Double
+  115873, -- Wood Elf Divider, Relaxed
+  115874, -- Wood Elf Divider, Taut
+  115875, -- Wood Elf Vessel, Tiered Ceramic
+  115876, -- Wood Elf Vessel, Tiered Painted
+  115877, -- Wood Elf Pitcher, Painted
+  115878, -- Wood Elf Pitcher, Marked
+  115879, -- Wood Elf Vase, Painted
+  115880, -- Wood Elf Vase, Chipped
+  115881, -- Wood Elf Pitcher, Chipped
+  115882, -- Wood Elf Pitcher, Ceramic
+  115883, -- Wood Elf Bowl, Striped
+  115884, -- Wood Elf Canopy, Braced
+  115885, -- Wood Elf Bedding, Layered
+  115886, -- Wood Elf Censer, Hanging
+  115887, -- Wood Elf Tent, Frame
+  115888, -- Wood Elf Rack, Meat
+  115889, -- Wood Elf Totem, Framed
+  115890, -- Wood Elf Totem, Skull
+  115891, -- Wood Elf Trough, Slop
+  115892, -- Wood Elf Bin, Blue Feathers
+  115893, -- Wood Elf Bin, Feathers
+  115894, -- Wood Elf Cask, Painted
+  121371, -- Wood Elf Hearth, Forest
+  121309, -- High Elf Medal, Winged
+  115895, -- Wood Elf Fish Dish
+  115896, -- Wood Elf Tapestry, Painted
+  115897, -- Wood Elf Tapestry, Deer
+  115898, -- Wood Elf Tapestry, Vine
+  115899, -- Wood Elf Canopy, Spine
+  115900, -- Wood Elf Bedding, Padded
+  115901, -- Wood Elf Skull and Bones
+  115902, -- Wood Elf Bone Chimes
+  115903, -- Wood Elf Rack, Dried Fish
+  115904, -- Wood Elf Rack, Dried Meat
+  115906, -- Breton Stall, Merchant
+  115907, -- Breton Cart, Wheelbarrow
+  115908, -- Breton Bed, Bunk
+  115909, -- Breton Bed, Single
+  115910, -- Breton Pew, Windowed
+  115911, -- Breton Bench, Plain
+  115912, -- Breton Nightstand, Open
+  115913, -- Breton Bookcase, Tall
+  115914, -- Breton Chair, Slatted
+  115915, -- Breton Chair, Windowed
+  115916, -- Breton Shelves, Double
+  115917, -- Breton Rack, Barrel
+  115918, -- Breton Dresser, Open
+  115919, -- Breton Desk
+  115920, -- Breton Table, Dining
+  115921, -- Breton Trestle, Sturdy
+  115922, -- Breton Table, Kitchen
+  115923, -- Breton Shelf, Long
+  115924, -- Breton Pitcher, Ceramic
+  115925, -- Breton Carpet, Bordered
+  115926, -- Breton Carpet, Square
+  115927, -- Breton Amphora, Ceramic
+  115928, -- Breton Vase, Ceramic
+  115929, -- Breton Lightpost, Single
+  115930, -- Breton Sconce, Sturdy Torch
+  115931, -- Breton Street Post, Stone
+  115932, -- Breton Sconce, Torch
+  115933, -- Breton Street Post, Plain
+  115934, -- Breton Bed, Four-poster
+  115935, -- Breton Bed, Full
+  115936, -- Breton Pew, Knotwork
+  115937, -- Breton Bench, Knotwork
+  115938, -- Breton Bookcase, Knotwork
+  115939, -- Breton Chair, Rocking
+  115940, -- Breton Chest, Knotwork
+  115941, -- Breton Hutch, Knotwork
+  115942, -- Breton Cupboard, Knotwork
+  115943, -- Breton Chest of Drawers
+  115944, -- Breton Counter, Long Cabinet
+  115945, -- Breton Shelf, Barrel Rack
+  115946, -- Breton Stool, Plain
+  115947, -- Breton Desk, Knotwork
+  115948, -- Breton Table, Round
+  115949, -- Breton Table, Square
+  115950, -- Breton Shelf, Scrolled
+  115951, -- Breton Rack, Wine
+  115952, -- Breton Carpet, Full
+  115953, -- Breton Rug, Starburst
+  115954, -- Breton Carpet, Dark
+  115955, -- Breton Pottery, Lid
+  115956, -- Breton Urn, Glazed
+  115957, -- Breton Amphora, Glazed
+  115959, -- Breton Vase, Glazed
+  115961, -- Breton Streetlight, Arched Stone
+  115962, -- Breton Streetlight, Paired Stone
+  115963, -- Breton Cart, Covered Open
+  115964, -- Breton Stall, Vending
+  115965, -- Breton Lightpost, Arched
+  115966, -- Breton Streetlight, Paired
+  115967, -- Breton Figure, Stone
+  115968, -- Breton Chandelier, Wrought Iron
+  115969, -- Breton Curtains, Window
+  115970, -- Breton Bed, Canopy
+  115971, -- Breton Sideboard, Knotwork
+  115972, -- Breton Chair, Padded
+  115973, -- Breton Armchair, Padded
+  115974, -- Breton Cabinet, Knotwork
+  115975, -- Breton Curio, Knotwork
+  115976, -- Breton Drapes, Grand
+  115977, -- Breton Coffer, Knotwork
+  115978, -- Breton Cradle, Infant
+  115979, -- Breton Dresser, Knotwork
+  115980, -- Breton Counter, Corner
+  115981, -- Breton Counter, Cabinet
+  115982, -- Breton Mirror, Knotwork
+  115983, -- Breton Nightstand, Knotwork
+  115984, -- Breton Divider, Folded Knotwork
+  115985, -- Breton Divider, Curved Knotwork
+  115986, -- Breton Stool, Padded
+  115987, -- Breton Desk, Scholar's
+  115988, -- Breton Table, Formal
+  115989, -- Breton Trestle, Formal
+  115990, -- Breton Rug, Bordered
+  115991, -- Breton Runner, Bordered
+  115992, -- Breton Carpet, Bordered
+  115993, -- Breton Medallion, Lion
+  115994, -- Breton Tablecloth, Blue
+  115995, -- Breton Lamp, Oil
+  115996, -- Breton Tablecloth, Striped
+  115997, -- Breton Footlocker, Knotwork
+  115998, -- Breton Armoire, Knotwork
+  115999, -- Breton Cart, Palanquin
+  116000, -- Breton Tapestry, Vines
+  116001, -- Breton Tapestry, Boughs
+  116002, -- Breton Urn Lid, Striated
+  116003, -- Breton Urn, Striated
+  116004, -- Breton Lamp, Hanging
+  116005, -- Breton Streetlight, Full Stone
+  116006, -- Breton Vase, Delicate
+  116007, -- Breton Streetlight, Full
+  116008, -- Breton Sconce, Floor
+  116009, -- Breton Sconce, Grand
+  116010, -- Breton Candelabra, Formal
+  116011, -- Breton Sconce, Wall
+  116012, -- Dark Elf Cart, Merchant
+  116013, -- Dark Elf Rack, Barrel
+  116014, -- Dark Elf Armchair, Angled
+  116015, -- Dark Elf Chest of Drawers
+  116016, -- Dark Elf Bed, Single
+  116017, -- Dark Elf Table, Formal
+  116018, -- Dark Elf Shelf, Wall
+  116019, -- Dark Elf Urn, Banded
+  116020, -- Dark Elf Basin, Ringed
+  116021, -- Dark Elf Runner, Bordered
+  116022, -- Dark Elf Carpet, Mottled
+  116023, -- Dark Elf Carpet, Patterned
+  116024, -- Dark Elf Tapestry, Emblazoned
+  116025, -- Dark Elf Candle, Claw Base
+  116026, -- Dark Elf Lantern, Oil
+  116027, -- Dark Elf Streetpost, Banner
+  116028, -- Dark Elf Streetpost, Banners
+  116029, -- Dark Elf Wagon, Merchant
+  116030, -- Dark Elf Caravan, Cargo
+  116031, -- Dark Elf Dresser, Angled
+  116032, -- Dark Elf Bookcase, Sectioned
+  116033, -- Dark Elf Chair, Angled
+  116034, -- Dark Elf Counter, Bar
+  116035, -- Dark Elf Wardrobe, Scaled
+  116036, -- Dark Elf Desk, Angled
+  116037, -- Dark Elf Bed, Full
+  116038, -- Dark Elf Pillow, Body
+  116039, -- Dark Elf Stool, Angled
+  116040, -- Dark Elf Table, Tea
+  116041, -- Dark Elf Trestle, Scaled
+  116042, -- Dark Elf Wine Rack, Sturdy
+  116043, -- Dark Elf Shelf, Barrel
+  116044, -- Dark Elf Pot, Scaled
+  116045, -- Dark Elf Decanter, Glass
+  116046, -- Dark Elf Cruet, Glass
+  116047, -- Dark Elf Flags, Hanging
+  116048, -- Dark Elf Cauldron, Banded
+  116049, -- Dark Elf Carpet, Mossy
+  116050, -- Dark Elf Carpet, Fungal
+  116051, -- Dark Elf Rug, Fungal
+  116052, -- Dark Elf Hook, Wall
+  116053, -- Dark Elf Lantern, Caged
+  116054, -- Dark Elf Lantern, Hanging
+  116055, -- Dark Elf Streetlamp, Stone
+  116056, -- Dark Elf Streetlamps, Stone
+  116057, -- Dark Elf Sofa, Angled
+  116058, -- Dark Elf Bed, Canopy
+  116059, -- Dark Elf Counter, Corner
+  116060, -- Dark Elf Counter, Block
+  116061, -- Dark Elf Nightstand, Angled
+  116062, -- Dark Elf Pillow, Cushion
+  116063, -- Dark Elf Pillow, Roll
+  116064, -- Dark Elf Divider, Folded
+  116065, -- Dark Elf End Table, Angled
+  116066, -- Dark Elf Trunk, Buckled
+  116067, -- Dark Elf Wardrobe, Angled
+  116068, -- Dark Elf Kettle Cooker
+  116069, -- Dark Elf Pot, Banded
+  116070, -- Dark Elf Carpet, Ashen
+  116071, -- Dark Elf Rug, Mossy
+  116072, -- Dark Elf Rug, Striated
+  116073, -- Dark Elf Medallion, Tribunal
+  116074, -- Dark Elf Censer, Hanging
+  116075, -- Dark Elf Thurible, Caged
+  116077, -- Dark Elf Cauldron, Ringed
+  116078, -- Dark Elf Lantern, Ashen
+  116079, -- Dark Elf Candelabra, Angled
+  116080, -- Dark Elf Candle, Votive Tray
+  116081, -- Khajiit Firepit, Brick
+  116082, -- Khajiit Loft, Reed
+  116083, -- Khajiit Dresser, Faded
+  116084, -- Khajiit Stool, Crescent
+  116085, -- Khajiit End Table, Faded
+  116086, -- Khajiit Drapes, Tattered
+  116087, -- Khajiit Bottle, Amber
+  116088, -- Khajiit Flask, Amber
+  116089, -- Khajiit Carpet, Crescent Moons
+  116090, -- Khajiit Vase, Amber
+  116091, -- Khajiit Banner, Moons
+  116092, -- Khajiit Banner, Crescents
+  116093, -- Khajiit Candle, Clawfoot
+  116094, -- Khajiit Frame, Arched
+  116095, -- Khajiit Banner, Claw
+  116096, -- Khajiit Bed, Fur
+  116097, -- Khajiit Bedding, Padded
+  116098, -- Khajiit Signpost, Fortified
+  116099, -- Khajiit Bed, Faded
+  116100, -- Khajiit Bench, Padded
+  116101, -- Khajiit Bookshelf, Arched
+  116102, -- Khajiit Trunk, Arched
+  116103, -- Khajiit Counter, Faded
+  116104, -- Khajiit Nightstand, Gilded
+  116105, -- Khajiit Table, Formal
+  116106, -- Khajiit Jug, Amber
+  116107, -- Khajiit Pitcher, Amber
+  116108, -- Khajiit Carpet, Sun
+  116109, -- Khajiit Cushion, Long
+  116110, -- Khajiit Cushion, Single
+  116111, -- Khajiit Carafe, Amber
+  116112, -- Khajiit Decanter, Amber
+  116113, -- Khajiit Banner, Hooked
+  116114, -- Khajiit Brazier, Claw
+  116115, -- Khajiit Basin, Claw
+  116116, -- Khajiit Lantern, Hanging
+  116117, -- Khajiit Tent, Mercantile
+  116118, -- Khajiit Tent, Storage
+  116119, -- Khajiit Wagon, Reed
+  116120, -- Khajiit Curtains, Moons
+  116121, -- Khajiit Barstool, Clawfoot
+  116122, -- Khajiit Barstool, Padded
+  116123, -- Khajiit Skooma Bubbler
+  116124, -- Khajiit Tent, Vacation
+  116125, -- Khajiit Bed, Canopy
+  116126, -- Khajiit Couch, Padded
+  116127, -- Khajiit Bookcase, Arched
+  116128, -- Khajiit Footlocker, Arched
+  116129, -- Khajiit Counter, Long Cabinet
+  116130, -- Khajiit Desk, Faded
+  116131, -- Khajiit Divider, Folding
+  116132, -- Khajiit Table, Round
+  116133, -- Khajiit Wardrobe, Arched
+  116134, -- Khajiit Rug, Moons
+  116135, -- Khajiit Drapes, Grand
+  116136, -- Khajiit Pillow, Crescents
+  116137, -- Khajiit Vial, Amber
+  116138, -- Khajiit Urn, Amber
+  116139, -- Khajiit Vessel, Amber
+  116140, -- Khajiit Candles, Clawfoot
+  116141, -- Khajiit Sofa, Padded
+  116142, -- Khajiit Pillow, Roll
+  116143, -- Khajiit Rug, Sun
+  116144, -- Khajiit Brazier, Hanging
+  116145, -- Khajiit Sconce, Spiked
+  116146, -- Khajiit Candle-Filled Lamp
+  116147, -- Nord Cart, Hay
+  116148, -- Nord Trunk, Heavy
+  116149, -- Nord Hutch, Rough
+  116150, -- Nord Dresser, Rough
+  116151, -- Nord Nightstand, Rough
+  116152, -- Nord Lantern, Cage
+  116153, -- Nord Pot, Ceramic
+  116154, -- Nord Urn, Ceramic
+  116155, -- Nord Bed, Single
+  116156, -- Nord Bench, Braced
+  116157, -- Nord Stool, Rough
+  116158, -- Nord Table, Kitchen
+  116159, -- Nord Shelf, Wall
+  116160, -- Nord Shelf, Braced
+  116161, -- Nord Pot, Covered
+  116162, -- Nord Pot, Stew
+  116163, -- Nord Candle, Tealight
+  116164, -- Nord Candleholder, Cup
+  116165, -- Nord Torch, Triple
+  116166, -- Nord Cart, Cargo
+  116167, -- Nord Trunk, Faded
+  116168, -- Nord Cauldron, Glazed
+  116169, -- Nord Pot, Chunky Stew
+  116170, -- Nord Amphora, Glazed
+  116171, -- Nord Vase, Bent
+  116172, -- Nord Bed, Sleigh
+  116173, -- Nord Bench, Plank
+  116174, -- Nord Bookshelf, Alcove
+  116175, -- Nord Chair, Braced
+  116176, -- Nord Counter, Long
+  116177, -- Nord Dresser, Braced
+  116178, -- Nord Stool, Braced
+  116179, -- Nord Table, Dining
+  116180, -- Nord Table, Round
+  116181, -- Nord Table, Braced
+  116182, -- Nord Trestle, Braced
+  116183, -- Nord Footlocker, Braced
+  116184, -- Nord Armoire, Lattice
+  116185, -- Nord Rack, Wine
+  116186, -- Nord Crockpot, Carrot Soup
+  116187, -- Nord Crockpot, Covered
+  116188, -- Nord Tapestry, Dragon
+  116189, -- Nord Lantern, Hanging
+  116190, -- Nord Drinking Horn, Empty
+  116191, -- Nord Cart, Covered
+  116192, -- Nord Chest, Latched
+  116193, -- Nord Urn, Braided
+  116194, -- Nord Bed, Canopy
+  116195, -- Nord Bookcase, Alcove
+  116196, -- Nord Chair, Lattice
+  116197, -- Nord Counter, Corner
+  116198, -- Nord Counter, Cabinet
+  116199, -- Nord Desk, Tied
+  116200, -- Nord Nightstand, Braced
+  116201, -- Nord Divider, Folding
+  116202, -- Nord Table, Great
+  116203, -- Nord Table, Formal
+  116204, -- Nord Table, Game
+  116205, -- Nord Trestle, Tied
+  116206, -- Nord Rug, Bearskin
+  116207, -- Nord Banner, Knotwork
+  116208, -- Nord Tapestry, Ship
+  116209, -- Nord Candle, Antler
+  116210, -- Nord Chandelier, Antler
+  116211, -- Nord Streetlamps, Stone
+  116212, -- Nord Lamppost, Stone
+  116213, -- Nord Brazier, Hanging
+  116216, -- Nord Trunk, Buckled
+  118916, -- High Elf Wagon, Covered
+  118917, -- High Elf Bed, Winged Double
+  118918, -- High Elf Bench, Covered
+  118919, -- High Elf Bookshelf, Winged
+  118920, -- High Elf Armoire, Winged
+  118921, -- High Elf Bookcase, Winged
+  118922, -- High Elf Dresser, Corner
+  118923, -- High Elf Chair, Regal Verdant
+  118924, -- High Elf Chair, Regal Winged
+  118925, -- High Elf Trunk, Jeweled
+  118926, -- High Elf Counter, Block
+  118927, -- High Elf Cabinet, Corner
+  118928, -- High Elf Desk, Regal Winged
+  118929, -- High Elf Dresser, Winged
+  118930, -- High Elf Divider, Delicate
+  118931, -- High Elf Divider, Carved
+  118932, -- High Elf Table, Tea
+  118933, -- High Elf Stool, Covered
+  118934, -- High Elf End Table, Winged
+  118935, -- High Elf Table, Winged Formal
+  118936, -- High Elf Table, Winged Kitchen
+  118937, -- High Elf Trestle, Winged
+  118938, -- High Elf Bowl, Serving
+  118939, -- High Elf Pot, Hanging
+  118940, -- High Elf Basin, Standing
+  118941, -- High Elf Platter, Winged
+  118942, -- High Elf Carpet, Eagle
+  118943, -- High Elf Tapestry, Eagle
+  118944, -- High Elf Vase, Winged
+  118945, -- High Elf Decanter, Glass
+  118946, -- High Elf Goblet, Winged
+  118947, -- High Elf Goblet, Glass
+  118948, -- High Elf Brazier, Winged
+  118949, -- High Elf Chandelier, Winged
+  118950, -- High Elf Candle, Winged
+  118951, -- High Elf Lamppost, Stone
+  118952, -- High Elf Candelabra, Winged
+  118953, -- High Elf Crest, Winged
+  118954, -- High Elf Streetlight, Stone
+  118955, -- Breton Cart, Covered Closed
+  118956, -- High Elf Wagon, Sturdy
+  118957, -- High Elf Bed, Winged
+  118958, -- High Elf Bed, Verdant
+  118959, -- High Elf Chest of Drawers
+  118960, -- High Elf Bookcase, Verdant
+  118961, -- High Elf Chair, Verdant
+  118962, -- High Elf Chair, Winged
+  118963, -- High Elf Bar, Overhanging
+  118964, -- High Elf Desk, Verdant
+  118965, -- High Elf Dresser, Verdant
+  118966, -- High Elf End Table, Verdant
+  118967, -- High Elf Table, Verdant Formal
+  118968, -- High Elf Table, Verdant Kitchen
+  118969, -- High Elf Trestle, Verdant
+  118970, -- High Elf Trunk, Winged
+  118971, -- High Elf Wine Rack, Folding
+  118972, -- High Elf Platter, Gilded
+  118973, -- High Elf Carpet, Water-Themed
+  118974, -- High Elf Carpet, Tree-Themed
+  118975, -- High Elf Tapestry, Water-Themed
+  118976, -- High Elf Tapestry, Tree-Themed
+  118977, -- High Elf Carafe, Gilded
+  118978, -- High Elf Vase, Gilded
+  118979, -- High Elf Bottle, Winged
+  118980, -- High Elf Flute, Wine
+  118981, -- High Elf Basin, Winged
+  118982, -- High Elf Lamppost, Spiked
+  118983, -- High Elf Lamp, Oil
+  118984, -- High Elf Bed, Bunk
+  118985, -- High Elf Bed, Single
+  118986, -- High Elf Bench, Curved
+  118987, -- High Elf Bookshelf, Verdant
+  118988, -- High Elf Counter, Long Cabinet
+  118989, -- High Elf Desk, Sturdy
+  118990, -- High Elf Dresser, Sturdy
+  118991, -- High Elf Stool, Curved
+  118992, -- High Elf End Table, Sturdy
+  118993, -- High Elf Table, Sturdy Formal
+  118994, -- High Elf Table, Sturdy Kitchen
+  118995, -- High Elf Trestle, Sturdy
+  118996, -- High Elf Shelf, Short
+  118997, -- High Elf Shelf, Long
+  118998, -- High Elf Basin, Gilded
+  118999, -- High Elf Cup, Gilded
+  119000, -- High Elf Flask, Gilded
+  119001, -- High Elf Plate, Dinner
+  119002, -- High Elf Carpet, Rustic
+  119003, -- High Elf Tapestry, Rustic
+  119004, -- High Elf Candleholder, Sturdy
+  119005, -- Orcish Tent, Shingled
+  119006, -- Orcish Platform, Block
+  119007, -- Orcish Counter, Island Stall
+  119008, -- Orcish Wash Tub
+  119009, -- Orcish Bedding, Stone
+  119010, -- Orcish Bedding, Fur
+  119011, -- Orcish Table, Block
+  119012, -- Orcish Table, Braced Formal
+  119013, -- Orcish Table, Braced Kitchen
+  119014, -- Orcish Trunk, Braced
+  119015, -- Orcish Bench, Cabled
+  119016, -- Orcish Shelves, Braced
+  119017, -- Orcish Bar, Long Block
+  119018, -- Orcish Counter, Block
+  119019, -- Orcish Bar, Side
+  119020, -- Orcish Shelf, Long
+  119021, -- Orcish Shelf, Short
+  119022, -- Orcish Stool, Cabled
+  119023, -- Orcish Bowl, Rugged
+  119024, -- Orcish Mug, Rugged
+  119025, -- Orcish Canister, Rugged
+  119026, -- Orcish Cask, Rugged
+  119027, -- Orcish Carpet, Fringed
+  119028, -- Orcish Brazier, Smoldering
+  119029, -- Orcish Lantern, Hooded
+  119030, -- Orcish Banner, Faded
+  119031, -- Orcish Banner, Worn
+  119032, -- Breton Chamberstick, Short
+  119033, -- Breton Chamberstick, Tall
+  119034, -- Orcish Canopy, Shingled
+  119035, -- Orcish Shelter, Shingled
+  119036, -- Orcish Platform, Stage
+  119037, -- Orcish Sack, Grain
+  119038, -- Orcish Sack, Flour
+  119039, -- Orcish Sack, Bean
+  119040, -- Orcish Bucket, Cistern
+  119041, -- Orcish Curtain, Folding
+  119042, -- Orcish Curtain, Curved
+  119043, -- Orcish Armchair, Peaked
+  119044, -- Orcish Pew, Peaked
+  119045, -- Orcish Bedding, Peaked
+  119046, -- Orcish Bookshelf, Engraved
+  119047, -- Orcish Bunkbed, Leather
+  119048, -- Orcish Chair, Peaked
+  119049, -- Orcish Trunk, Heavy
+  119050, -- Orcish Desk, Engraved
+  119051, -- Orcish Bar, Long Branded Block
+  119052, -- Orcish Counter, Branded
+  119053, -- Orcish Cabinet, Branded
+  119054, -- Orcish Dresser, Open
+  119055, -- Orcish Nightstand, Open
+  119056, -- Orcish Table, Engraved
+  119057, -- Orcish Trestle, Engraved
+  119058, -- Orcish Table, Kitchen
+  119059, -- Orcish Table, Formal
+  119060, -- Orcish Footlocker, Buckled
+  119061, -- Orcish Bowl, Stone
+  119062, -- Orcish Goblet, Stone
+  119063, -- Orcish Plate, Stone
+  119064, -- Orcish Saucer, Stone
+  119065, -- Orcish Vessel, Sealed Ceramic
+  119066, -- Orcish Urn, Ceramic
+  119067, -- Orcish Lantern, Hanging
+  119068, -- Orcish Brazier, Pedestal
+  119069, -- Orcish Chandelier, Practical
+  119070, -- Orcish Sconce, Caged
+  119071, -- Orcish Banner, Hammer Fist
+  119072, -- Orcish Strongbox, Buckled
+  119073, -- Orcish Trunk, Buckled
+  119074, -- Orcish Chest, Buckled
+  119075, -- Orcish Chair, Peaked
+  119076, -- Orcish Throne, Stone
+  119077, -- Orcish Throne, Engraved
+  119078, -- Orcish Capsule, Sealed
+  119079, -- Orcish Armoire, Peaked
+  119080, -- Orcish Bed, Peaked
+  119081, -- Orcish Bookcase, Peaked
+  119082, -- Orcish Bookshelf, Peaked
+  119083, -- Orcish Sideboard, Engraved
+  119084, -- Orcish Cabinet, Engraved
+  119085, -- Orcish Hutch, Engraved
+  119086, -- Orcish Coffer, Bolted
+  119087, -- Orcish Cupboards, Peaked
+  119088, -- Orcish Dresser, Engraved
+  119089, -- Orcish Cabinet, Bedside
+  119090, -- Orcish Counter, Corner
+  119091, -- Orcish Hutch, Storage
+  119092, -- Orcish Shelves, Storage
+  119093, -- Orcish Nightstand, Engraved
+  119094, -- Orcish Divider, Folded
+  119095, -- Orcish Divider, Curved
+  119096, -- Orcish Table, Game
+  119097, -- Orcish Table, Grand
+  119098, -- Orcish Throne, Peaked
+  119099, -- Orcish Stein, Horn
+  119100, -- Orcish Mug, Horn
+  119101, -- Orcish Knife, Kitchen
+  119102, -- Orcish Backpack
+  119103, -- Orcish Bowl, Buffed
+  119104, -- Orcish Platter, Serving
+  119105, -- Orcish Urn, Sealed
+  119106, -- Orcish Tapestry, Axe
+  119107, -- Orcish Tapestry, Heroes
+  119108, -- Orcish Tapestry, Sword
+  119109, -- Orcish Vessel, Sealed
+  119110, -- Orcish Cauldron, Sealed
+  119111, -- Orcish Candleholder, Horn
+  119112, -- Orcish Candlestick, Horn
+  119113, -- Orcish Candle Sconce, Horn
+  119114, -- Orcish Brazier, Bordered
+  119115, -- Orcish Brazier, Hanging
+  119116, -- Orcish Brazier, Tabletop
+  119117, -- Orcish Brazier, Floor
+  119118, -- Orcish Sconce, Bordered
+  119119, -- Orcish Sconce, Scrolled
+  119120, -- Orcish Cradle, Peaked
+  121306, -- Orcish Figurine, Strength
+  119121, -- Orcish Mirror, Peaked
+  119122, -- Orcish Tapestry, War
+  119123, -- Orcish Chandelier, Spiked
+  119124, -- Redguard Carriage, Practical
+  119125, -- Redguard Cart, Practical
+  119126, -- Redguard Wagon, Merchant
+  119127, -- Redguard Cart, Work
+  119128, -- Redguard Bin, Roped
+  119129, -- Redguard Bin, Sealed
+  119130, -- Redguard Pot, Sealed
+  119131, -- Redguard Pot, Capped
+  119132, -- Redguard Desk, Florid
+  119133, -- Redguard Rack, Barrel
+  119134, -- Redguard Bar, Long Cabinet
+  119135, -- Redguard Trunk, Heavy
+  119136, -- Redguard Bed, Wide
+  119137, -- Redguard Bed, Full
+  119138, -- Redguard Couch, Bolted
+  119139, -- Redguard Bench, Slatted
+  119140, -- Redguard Armchair, Slatted
+  119141, -- Redguard Chair, Backless
+  119142, -- Redguard Chair, Slatted
+  119143, -- Redguard Desk, Sturdy
+  119144, -- Redguard Nightstand, Sturdy
+  119145, -- Redguard Table, Sturdy
+  119146, -- Redguard Stool, Sturdy
+  119147, -- Redguard Stool, Block
+  119148, -- Redguard Shelf, Sturdy
+  119149, -- Redguard Pot, Hanging Brushed
+  119150, -- Redguard Kabobs, Wax
+  119151, -- Redguard Vessel, Lacquered
+  119152, -- Redguard Urn, Lacquered
+  119153, -- Redguard Pot, Ceramic
+  119154, -- Redguard Curtain, Smoky
+  119155, -- Redguard Curtain, Desert Rose
+  119156, -- Redguard Banner, Post
+  119157, -- Redguard Candlestick, Practical
+  119158, -- Redguard Candleholder, Practical
+  119159, -- Redguard Candelabra, Practical
+  119160, -- Redguard Well, Covered
+  119161, -- Redguard Cup, Empty
+  119162, -- Redguard Cup, Full
+  119163, -- Redguard Caravan, Practical
+  119164, -- Redguard Carriage, Merchant
+  119165, -- Redguard Vase, Lacquered
+  119166, -- Redguard Pot, Lacquered
+  119167, -- Redguard Amphora, Polished
+  119168, -- Redguard Cask, Sealed
+  119169, -- Redguard Keg, Hefty
+  119170, -- Redguard Couch, Padded
+  119171, -- Redguard Cabinet, Inlaid
+  119172, -- Redguard Armchair, Cushioned
+  119173, -- Redguard Cupboard, Lattice
+  119174, -- Redguard Vanity, Florid
+  119175, -- Redguard Counter, Corner
+  119176, -- Redguard Counter, Cabinet
+  119177, -- Redguard Shelf, Barrel
+  119178, -- Redguard Nightstand, Florid
+  119179, -- Redguard Divider, Florid
+  119180, -- Redguard Sofa, Desert Flame
+  119181, -- Redguard Tuffet, Flames
+  119182, -- Redguard Stool, Padded
+  119183, -- Redguard Bed, Wide Grand
+  119184, -- Redguard Bed, Full Arched
+  119185, -- Redguard Bowl, Hanging Star
+  119186, -- Redguard Urn, Star
+  119187, -- Redguard Footlocker, Braced
+  119188, -- Redguard Table, Grand Oasis
+  119189, -- Redguard Table, Oasis
+  119190, -- Redguard End Table, Oasis
+  119191, -- Redguard Trunk, Bolted
+  119192, -- Redguard Wine Rack, Sturdy
+  119193, -- Redguard Shelf, Arched
+  119194, -- Redguard Wardrobe, Inlaid
+  119195, -- Redguard Kabobs, Plate
+  119196, -- Redguard Runner, Sun
+  119197, -- Redguard Mat, Sunset
+  119198, -- Redguard Carpet, Dunes
+  119199, -- Redguard Tapestry, Lattice
+  119200, -- Redguard Satchel, Heavy
+  119201, -- Redguard Goblet, Empty
+  119202, -- Redguard Goblet, Full
+  119203, -- Redguard Spittoon, Gilded
+  119204, -- Redguard Cauldron, Clawfoot
+  119205, -- Redguard Sconce, Polished
+  119206, -- Redguard Mug, Empty
+  119207, -- Redguard Mug, Full
+  119208, -- Redguard Tankard, Empty
+  119209, -- Redguard Tankard, Full
+  119210, -- Redguard Streetlamp, Single
+  119211, -- Redguard Streetlamps, Paired
+  119212, -- Redguard Streetlamps, Triple
+  119213, -- Redguard Brazier, Robust
+  119214, -- Redguard Candlestick, Polished
+  119215, -- Redguard Candleholder, Polished
+  119216, -- Redguard Well, Arched
+  119217, -- Redguard Bowl, Gilded
+  119218, -- Redguard Censer, Hanging Bell
+  119219, -- Redguard Censer, Hanging Horn
+  119220, -- Redguard Basket, Closed
+  119221, -- Redguard Mat, Meditation
+  119222, -- Redguard Mat, Desert Sun
+  119223, -- Redguard Mat, Sunrise
+  119224, -- Redguard Awning, Desert Flame
+  119225, -- Redguard Tent, Scaled Flames
+  119226, -- Redguard Canopy, Dawn
+  119228, -- Redguard Caravan, Cargo
+  119229, -- Redguard Caravan, Merchant
+  119230, -- Redguard Brazier, Garish
+  119231, -- Redguard Urn, Mural
+  119232, -- Redguard Pillow, Sunset
+  119233, -- Redguard Pillow, Oasis
+  119234, -- Redguard Pillow, Florid Oasis
+  119235, -- Redguard Pillow Roll, Oasis
+  119236, -- Redguard Throw Pillow, Oasis
+  119238, -- Redguard Bed, Wide Canopy
+  119239, -- Redguard Couch, Slatted
+  119240, -- Redguard Bench, Padded
+  119241, -- Redguard Wardrobe, Braced
+  119242, -- Redguard Bookcase, Arched
+  119243, -- Redguard Wardrobe, Sturdy
+  119244, -- Redguard Bookcase, Piled
+  119245, -- Redguard Bookcase, Full
+  119246, -- Redguard Armchair, Starry
+  119247, -- Redguard Chair, Starry
+  119248, -- Redguard Desk, Bolted
+  119249, -- Redguard Vanity, Bolted
+  119250, -- Redguard Nightstand, Bolted
+  119251, -- Redguard Pot, Hanging Garish
+  119252, -- Redguard Table, Formal
+  119253, -- Redguard Table, Game
+  119254, -- Redguard Divider, Lattice
+  119255, -- Redguard Stool, Starry
+  119256, -- Redguard Footstool, Starry
+  119257, -- Redguard Cupboard, Sturdy
+  119258, -- Redguard Shelf, Bolted
+  119259, -- Redguard Wine Rack, Inlaid
+  119260, -- Redguard Bench, Arc
+  119261, -- Redguard Pot, Mosaic
+  119262, -- Redguard Pot, Hanging Mosaic
+  119263, -- Redguard Slices, Wax
+  119264, -- Redguard Runner, Oasis
+  119265, -- Redguard Mat, Desert
+  119266, -- Redguard Carpet, Mirage
+  119267, -- Redguard Tapestry, Oasis
+  119268, -- Redguard Chalice, Empty
+  119269, -- Redguard Chalice, Full
+  119270, -- Redguard Hourglass of Desert Sands
+  119271, -- Redguard Jar, Oasis
+  119272, -- Redguard Vase, Baroque
+  119273, -- Redguard Bottle, Delicate
+  119274, -- Redguard Jar, Baroque
+  119275, -- Redguard Decanter, Delicate
+  119276, -- Redguard Lantern, Delicate
+  119277, -- Redguard Streetlamps, Full
+  119278, -- Redguard Candelabra, Twisted
+  119279, -- Redguard Candelabra, Polished
+  119280, -- Redguard Chandelier, Polished
+  119281, -- Redguard Chandelier, Polished Grated
+  119282, -- Redguard Awning, Oasis
+  119283, -- Redguard Tent, Starry
+  119284, -- Redguard Firepit, Stone
+  119285, -- Redguard Counter, Block Island
+  119286, -- Redguard Counter, Bar Island
+  119287, -- Redguard Counter, Grill
+  119288, -- Redguard Brazier, Enchanted
+  119290, -- Redguard Canopy, Stars
+  119291, -- Redguard Pillow, Lattice Flames
+  119292, -- Redguard Pillow, Florid Flames
+  119293, -- Redguard Pillow, Florid Sunset
+  119295, -- Redguard Table, Inlaid
+  119296, -- Redguard Table, Grand Inlaid
+  119297, -- Redguard End Table, Tea
+  119298, -- Redguard Pillow Roll, Desert Flame
+  119299, -- Redguard Throw Pillow, Desert Flame
+  119300, -- Redguard Tuffet, Oasis
+  119301, -- Redguard End Table, Inlaid
+  119302, -- Redguard Decanter, Glass
+  119303, -- Redguard Bottle, Stained Glass
+  119304, -- Redguard Vial, Stained Glass
+  119305, -- Redguard Carpet, Oasis
+  119306, -- Redguard Mat, Mirage
+  119307, -- Redguard Mat, Starburst
+  119308, -- Redguard Lantern, Cannister
+  119309, -- Redguard Lamp, Caged
+  119310, -- Redguard Lantern, Caged
+  119311, -- Redguard Lantern, Caged Stand
+  119312, -- Redguard Tapestry, Starry
+  121373, -- Redguard Censer, Hanging Bulb
+  119314, -- Rough Stretcher, Military
+  119317, -- Rough Crate, Reinforced
+  119325, -- Rough Bag, Burlap
+  119328, -- Rough Hatchet, Practical
+  119330, -- Rough Knife, Butcher
+  119331, -- Rough Bowl, Common
+  119338, -- Rough Platform, Stage
+  119342, -- Rough Crate, Bolted
+  119344, -- Rough Box, Boarded
+  119348, -- Rough Container, Cargo
+  119350, -- Rough Bedroll, Basic
+  119351, -- Lettuce, Display
+  119352, -- Pumpkin, Display
+  119353, -- Winter Squash, Display
+  119354, -- Beet String, Display
+  119356, -- Beets, Display
+  119357, -- Common Counter, Island Stall
+  119358, -- Common Barrel, Sealed
+  119359, -- Common Basket, Closed
+  119360, -- Common Basket, Lid
+  119361, -- Common Basket, Open
+  119362, -- Common Basket, Tall
+  119363, -- Common Bucket, Basic
+  119364, -- Common Bucket, Rope
+  119365, -- Common Cargo, Covered
+  119366, -- Common Crate, Sealed
+  119367, -- Common Washtub, Empty
+  119368, -- Footstool, Block
+  119369, -- Common Trough
+  119370, -- Common Wheelbarrow, Flat
+  119371, -- Common Wheelbarrow, Barrel
+  119372, -- Common Wheelbarrow, Sided
+  119373, -- Apple, Display
+  119374, -- Common Pack, Backpack
+  119375, -- Common Pack, Satchel
+  119376, -- Banana, Wax
+  119377, -- Common Bowl of Soup, Display
+  119378, -- Carrots, Wax
+  119379, -- Common Cleaver, Cooking
+  119380, -- Common Pot, Cooking
+  119381, -- Grapes, Wax
+  119382, -- Common Inkwell, Practical
+  119383, -- Common Plate, Simple
+  119384, -- Common Plate, Setting
+  119385, -- Sugar Pumpkin, Wax
+  119386, -- Radish, Wax
+  119387, -- Bowl, Serving
+  119388, -- Common Bowl of Stew, Display
+  119389, -- Common Platter, Serving
+  119390, -- Common Skillet, Practical
+  119391, -- Common Candle, Set
+  119392, -- Common Candles, Pair
+  119393, -- Common Candle, Lasting
+  119394, -- Common Bookrest, Practical
+  119395, -- Common Post, Flag Pole
+  119396, -- Common Lantern, Hanging
+  119397, -- Common Lantern, Stationary
+  119399, -- Common Post, Sign Holder
+  119400, -- Hammer, Forge
+  119401, -- Tongs, Forge
+  119402, -- Potato, Wax
+  119403, -- Common Table, Slanted
+  119404, -- Common Cage, Hunting
+  119405, -- Common Trap, Hunting
+  119406, -- Common Cargo, Sealed
+  119407, -- Common Cargo, Reinforced
+  119413, -- Cauldron of Soup
+  119416, -- Cauldron of Stew
+  119418, -- Cauldron, Covered
+  119420, -- Cart, Sided
+  119421, -- Coffin, Lid
+  119422, -- Coffin, Case
+  119423, -- Keg
+  119424, -- Cleaver, Butcher's
+  119425, -- Hearty Bread
+  119427, -- Cheese Wedge
+  119429, -- Ham, Display
+  119432, -- Hourglass, Common
+  119438, -- Baked Potato, Display
+  119439, -- Pot Pie, Display
+  119440, -- Pie Dish, Empty
+  119443, -- Drumstick
+  119444, -- Candle, Group
+  119445, -- Lantern, Stationary
+  119446, -- Lantern, Hanging
+  119451, -- Kennel, Locked
+  119462, -- Plums, Bunch
+  119463, -- Tangerines, Bunch
+  119464, -- Peaches, Bunch
+  119465, -- Oranges, Bunch
+  119467, -- Cured Meat
+  119468, -- Cured Meats
+  119469, -- Cured Meat Chunks
+  119470, -- Cured Meat Chunk
+  119471, -- Cured Meat Pile
+  119472, -- Cured Meat Hock
+  119476, -- Grilling Rack
+  119477, -- Basket of Apples
+  119478, -- Basket of Apples, Full
+  119479, -- Basket of Lettuce
+  119480, -- Basket of Gourds
+  119481, -- Basket of Corn
+  119482, -- Basket of Tomatoes
+  119483, -- Gibbet, Single
+  119484, -- Bottle, Elixir
+  119485, -- Bottle, Liquor
+  119486, -- Vial, Delicate
+  119487, -- Pie Dish, Display
+  119488, -- Bottle, Wine
+  119489, -- Candle Set, Ritual
+  119490, -- Horn, Ritual
+  119491, -- Cured Meat Shank
+  119518, -- Cage, Wild Animal
+  119520, -- Cage, Covered
+  119524, -- Stockade
+  119525, -- Bread, Braided
+  119526, -- Goblet, Wine
+  119527, -- Bread, Round
+  119529, -- Bread Loaves, Round
+  119532, -- Bread, Hearty Loaves
+  119533, -- Box of Plums
+  119539, -- Sweetroll
+  119540, -- Desk, Engraved
+  119541, -- Fish, Small
+  119542, -- Fish, Medium
+  119543, -- Fish, Large
+  119592, -- Target Skeleton, Humanoid

-	121311, -- Breton Throne
-	121120, -- Chair, Carved
-	121308, -- High Elf Banner, Gilded
+  121311, -- Breton Throne
+  121120, -- Chair, Carved
+  121308, -- High Elf Banner, Gilded

-	121546, -- Argonian Box, Woven
-	121374, -- Redguard Censer, Hanging Disc
-	121310, -- High Elf Sconce, Winged
-	121307, -- Orcish Brazier, Pillar
+  121546, -- Argonian Box, Woven
+  121374, -- Redguard Censer, Hanging Disc
+  121310, -- High Elf Sconce, Winged
+  121307, -- Orcish Brazier, Pillar

-	-- 116214, -- Nord Banner, Bear
-	-- 115786, -- Argonian Skiff, Common Reed
+  -- 116214, -- Nord Banner, Bear
+  -- 115786, -- Argonian Skiff, Common Reed

-	121207, -- Orcish Table with Fur
+  121207, -- Orcish Table with Fur

-	121372, -- Noble Standing Cauldron
-	121059, -- Rough Cup, Empty
+  121372, -- Noble Standing Cauldron
+  121059, -- Rough Cup, Empty

-	121313, -- Wood Elf Throne, Vine
-	121104, -- Common Quill, Feather
+  121313, -- Wood Elf Throne, Vine
+  121104, -- Common Quill, Feather

-	121305, -- Redguard Chandelier, Dark
-	121304, -- Redguard Chandelier, Grated
-	121366, -- Orcish Tapestry, Hunt
-	121365, -- High Elf Tapestry, Gilded
+  121305, -- Redguard Chandelier, Dark
+  121304, -- Redguard Chandelier, Grated
+  121366, -- Orcish Tapestry, Hunt
+  121365, -- High Elf Tapestry, Gilded

-	-- Rolis's recipes
-	121200, -- Cabinet, Poisonmaker's
-	121166, -- Podium, Skinning
-	121168, -- Tools, Case
-	121199, -- Mortar and Pestle
-	121214, -- Orcish Skull Goblet, Full
-	121163, -- Apparatus, Boiler
-	121197, -- Bottle, Poison Elixir
-	121164, -- Case of Vials
-	121209, -- Orcish Tapestry, Spear
-	121207, -- Orcish Table with Fur
-	121207, -- Orcish Table with Fur
-	121315, -- Target Skeleton, Robust Humanoid
-	119592, -- Target Skeleton, Humanoid
+  -- Rolis's recipes
+  121200, -- Cabinet, Poisonmaker's
+  121166, -- Podium, Skinning
+  121168, -- Tools, Case
+  121199, -- Mortar and Pestle
+  121214, -- Orcish Skull Goblet, Full
+  121163, -- Apparatus, Boiler
+  121197, -- Bottle, Poison Elixir
+  121164, -- Case of Vials
+  121209, -- Orcish Tapestry, Spear
+  121207, -- Orcish Table with Fur
+  121207, -- Orcish Table with Fur
+  121315, -- Target Skeleton, Robust Humanoid
+  119592, -- Target Skeleton, Humanoid

 }

diff --git a/data/01_Homestead/H_Rolis.lua b/data/01_Homestead/H_Rolis.lua
new file mode 100644
index 0000000..bb7b126
--- /dev/null
+++ b/data/01_Homestead/H_Rolis.lua
@@ -0,0 +1,34 @@
+FurC.Rolis          = FurC.Rolis or {}
+FurC.Rolis_Recipes  = FurC.Rolis_Recipes or {}
+
+
+FurC.Rolis[FURC_HOMESTEAD] = {
+  -- Alchemy station
+  [118328] = 35,
+  -- Blacksmithing station
+  [119781] = 35,
+  -- Clothing station
+  [119707] = 35,
+  -- Dye Station
+  [118329] = 35,
+  -- Enchanting station
+  [118330] = 35,
+  -- Provisioning station
+  [118327] = 35,
+  -- Woodworking station
+  [119744] = 35,
+
+  -- Attunable Blacksmithing station
+  [119594] = 250,
+  -- Attunable Clothing station
+  [119821] = 250,
+  -- Attunable Woodworking station
+  [119822] = 250,
+}
+
+FurC.Rolis_Recipes[FURC_HOMESTEAD] = {
+   121207,  -- Target Skeleton
+   121315,  -- Robust Target Skeleton
+   126582,  -- Target Centurion
+   126583,  -- Robust Target Centurion
+}
diff --git a/data/02_Morrowind/M_AchievementVendors.lua b/data/02_Morrowind/M_AchievementVendors.lua
index b57219c..2492385 100644
--- a/data/02_Morrowind/M_AchievementVendors.lua
+++ b/data/02_Morrowind/M_AchievementVendors.lua
@@ -1,382 +1,490 @@

 --[[
-			[""] = {		--
-				itemPrice 		= 100,
-			},
+  [""] = {    --
+  itemPrice     = 100,
+  },
 ]]
 function tableMerge(t1, t2)
-	if nil == t2 and nil == t1 then
-		return {}
-	elseif nil == t2 then
-		return t1
-	elseif nil == t1 then
-		return t2
-	end
-
-    for k,v in pairs(t2) do
-		t1[k] = v
-    end
+  if nil == t2 and nil == t1 then
+    return {}
+    elseif nil == t2 then
     return t1
+    elseif nil == t1 then
+    return t2
+  end
+
+  for k,v in pairs(t2) do
+    t1[k] = v
+  end
+  return t1
 end

 local bookList = {
-	-- [120197] = { -- 16 accords of madness, vol vi
-		-- itemPrice = 500,
-	-- },
+
+  [126793] = {  -- The 36 Lessons: Sermon 1
+    itemPrice     = 3611,
+  },
+  [126795] = {  -- The 36 Lessons: Sermon 2
+    itemPrice     = 3611,
+  },
+  [126796] = {  -- The 36 Lessons: Sermon 3
+    itemPrice     = 3611,
+  },
+  [126797] = {  -- The 36 Lessons: Sermon 4
+    itemPrice     = 3611,
+  },
+  [126798] = {  -- The 36 Lessons: Sermon 5
+    itemPrice     = 3611,
+  },
+  [126799] = {  -- The 36 Lessons: Sermon 6
+    itemPrice     = 3611,
+  },
+  [126800] = {  -- The 36 Lessons: Sermon 7
+    itemPrice     = 3611,
+  },
+  [126801] = {  -- The 36 Lessons: Sermon 8
+    itemPrice     = 3611,
+  },
+  [126802] = {  -- The 36 Lessons: Sermon 9
+    itemPrice     = 3611,
+  },
+  [126803] = {  -- The 36 Lessons: Sermon 10
+    itemPrice     = 3611,
+  },
+  [126804] = {  -- The 36 Lessons: Sermon 11
+    itemPrice     = 3611,
+  },
+  [126805] = {  -- The 36 Lessons: Sermon 12
+    itemPrice     = 3611,
+  },
+  [126806] = {  -- The 36 Lessons: Sermon 13
+    itemPrice     = 3611,
+  },
+  [126807] = {  -- The 36 Lessons: Sermon 14
+    itemPrice     = 3611,
+  },
+  [126808] = {  -- The 36 Lessons: Sermon 15
+    itemPrice     = 3611,
+  },
+  [126809] = {  -- The 36 Lessons: Sermon 16
+    itemPrice     = 3611,
+  },
+  [126810] = {  -- The 36 Lessons: Sermon 17
+    itemPrice     = 3611,
+  },
+  [126811] = {  -- The 36 Lessons: Sermon 18
+    itemPrice     = 3611,
+  },
+  [126812] = {  -- The 36 Lessons: Sermon 19
+    itemPrice     = 3611,
+  },
+  [126813] = {  -- The 36 Lessons: Sermon 20
+    itemPrice     = 3611,
+  },
+  [126814] = {  -- The 36 Lessons: Sermon 21
+    itemPrice     = 3611,
+  },
+  [126815] = {  -- The 36 Lessons: Sermon 22
+    itemPrice     = 3611,
+  },
+  [126816] = {  -- The 36 Lessons: Sermon 23
+    itemPrice     = 3611,
+  },
+  [126817] = {  -- The 36 Lessons: Sermon 24
+    itemPrice     = 3611,
+  },
+  [126818] = {  -- The 36 Lessons: Sermon 25
+    itemPrice     = 3611,
+  },
+  [126819] = {  -- The 36 Lessons: Sermon 26
+    itemPrice     = 3611,
+  },
+  [126820] = {  -- The 36 Lessons: Sermon 27
+    itemPrice     = 3611,
+  },
+  [126821] = {  -- The 36 Lessons: Sermon 28
+    itemPrice     = 3611,
+  },
+  [126822] = {  -- The 36 Lessons: Sermon 29
+    itemPrice     = 3611,
+  },
+  [126823] = {  -- The 36 Lessons: Sermon 30
+    itemPrice     = 3611,
+  },
+  [126824] = {  -- The 36 Lessons: Sermon 31
+    itemPrice     = 3611,
+  },
+  [126825] = {  -- The 36 Lessons: Sermon 32
+    itemPrice     = 3611,
+  },
+  [126826] = {  -- The 36 Lessons: Sermon 33
+    itemPrice     = 3611,
+  },
+  [126827] = {  -- The 36 Lessons: Sermon 34
+    itemPrice     = 3611,
+  },
+  [126828] = {  -- The 36 Lessons: Sermon 35
+    itemPrice     = 3611,
+  },
+  [126829] = {  -- The 36 Lessons: Sermon 36
+    itemPrice     = 3611,
+  },
 }

 local boxes = {}
 local b2 = {
-	[120998] = {	-- Block,Wood Cutting
-		itemPrice 		= 100,
-	},
-	[117959] = {		-- Rough Container, Shipping
-		itemPrice 		= 100,
-	},
-	[117959] = {		-- Rough Box, Slatted
-		itemPrice 		= 100,
-	},
-	[117931] = {		-- Rough Crate Lid
-		itemPrice 		= 100,
-	},
-	[117957] = {		-- Rough Crate, Cracked
-		itemPrice 		= 100,
-	},
-	[117958] = {		-- Rough Crate, Empty
-		itemPrice 		= 100,
-	},
-	[117930] = {		-- Rough Crate, Open
-		itemPrice 		= 100,
-	},
-	[117953] = {		-- Rough Crate, Sealed
-		itemPrice 		= 100,
-	},
-	[117928] = {		-- Rough Crate, Sturdy
-		itemPrice 		= 100,
-	},
+  [120998] = {  -- Block,Wood Cutting
+    itemPrice     = 100,
+  },
+  [117959] = {    -- Rough Container, Shipping
+    itemPrice     = 100,
+  },
+  [117959] = {    -- Rough Box, Slatted
+    itemPrice     = 100,
+  },
+  [117931] = {    -- Rough Crate Lid
+    itemPrice     = 100,
+  },
+  [117957] = {    -- Rough Crate, Cracked
+    itemPrice     = 100,
+  },
+  [117958] = {    -- Rough Crate, Empty
+    itemPrice     = 100,
+  },
+  [117930] = {    -- Rough Crate, Open
+    itemPrice     = 100,
+  },
+  [117953] = {    -- Rough Crate, Sealed
+    itemPrice     = 100,
+  },
+  [117928] = {    -- Rough Crate, Sturdy
+    itemPrice     = 100,
+  },
 }
 FurC.Books[FURC_MORROWIND] = bookList

 FurC.AchievementVendors[FURC_MORROWIND] = {
-	["Vivec City, Saint Delyn Inn"] = {
-		["Drops-No-Glass"] = {
-			[126638] = { -- Ashlander Altar, Anticipations
-				itemPrice 		= 50000,
-				achievement 	= 1825, -- Clanfriend
-			},
-			[126640] = { -- Ashlander Fence, Totems
-				itemPrice 		= 10000,
-				achievement 	= 1881, -- Ashlander Relic Preserver
-			},
-			[126613] = { -- Ashlander Throne
-				itemPrice 		= 100000,
-				achievement 	= 1849, -- Voices of the Failed Incarnates
-			},
-			[126639] = { -- Ashlander Yurt, Netch-Hide
-				itemPrice 		= 75000,
-				achievement 	= 1880,  -- Ashlands Stalker
-			},
-			[126623] = { -- Banner of House Dres
-				itemPrice 		= 10000,
-				achievement 	= 1867,  -- Morrowind Grand Adventurer
-			},
-			[126621] = { -- Banner of House Hlaalu
-				itemPrice 		= 10000,
-				achievement 	= 1867,  -- Morrowind Grand Adventurer
-			},
-			[126620] = { -- Banner of House Redoran
-				itemPrice 		= 10000,
-				achievement 	= 1867,  -- Morrowind Grand Adventurer
-			},
-			[126622] = { -- Banner of House Telvanni
-				itemPrice 		= 10000,
-				achievement 	= 1867,  -- Morrowind Grand Adventurer
-			},
-			[126622] = { -- Banner of House Indoril
-				itemPrice 		= 126624,
-				achievement 	= 1867,  -- Morrowind Grand Adventurer
-			},
-			[126628] = { -- Banner, Morag Tong
-				itemPrice 		= 25000,
-				achievement 	= 1870,  -- Naryu's Confidant
-			},
-			[126615] = { -- Blessing Stone
-				itemPrice 		= 10000,
-				achievement 	= 1850,  -- Bearer of the Blessed Staff
-			},
-			[126614] = { -- Blessing Stone Device
-				itemPrice 		= 20000,
-				achievement 	= 1850,  -- Bearer of the Blessed Staff
-			},
-			[126618] = { -- Dwarven Brazier, Eternal
-				itemPrice 		= 50000,
-				achievement 	= 1854,  -- N'chow conqueror
-			},
-			[126632] = { -- Glass Crystal, Plume
-				itemPrice 		= 15000,
-				achievement 	= 1874,  -- Pilgrim Protector
-			},
-			[126631] = { -- Glass Crystal, Radiance
-				itemPrice 		= 15000,
-				achievement 	= 1874,  -- Pilgrim Protector
-			},
-			[126633] = { -- Glass Crystals, Bed
-				itemPrice 		= 20000,
-				achievement 	= 1874,  -- Pilgrim Protector
-			},
-			[126629] = { -- Kwama Queen Egg
-				itemPrice 		= 15000,
-				achievement 	= 1872,  -- Kwama Miner
-			},
-			[126630] = { -- Replica Stone of Ashalmwia
-				itemPrice 		= 75000,
-				achievement 	= 1873,  -- Dratha Quest
-			},
-			[126635] = { -- Sacred Guar Skull
-				itemPrice 		= 15000,
-				achievement 	= 1876,  -- Ald'Ruhn Annalist
-			},
-			[126642] = { -- Silt Strider Shell, Hollow
-				itemPrice 		= 10000,
-				achievement 	= 1826,  -- Strider Carawaner
-			},
-			[126617] = { -- Statue of Vivec the Champion
-				itemPrice 		= 150000,
-				achievement 	= 1852,  -- Champion of Vivec
-			},
-			[126636] = { -- Statue, Cowering Ebony
-				itemPrice 		= 50000,
-				achievement 	= 1877,  -- Ebony Enforcer
-			},
-			[126637] = { -- Statue, Terrified Ebony
-				itemPrice 		= 50000,
-				achievement 	= 1877,  -- Ebony Enforcer
-			},
-			[126616] = { -- Statuette of Clavicus Vile, Masked
-				itemPrice 		= 100000,
-				achievement 	= 1851,  -- Hand of a Living God
-			},
-			[126627] = { -- Tapestry, Morag Tong
-				itemPrice 		= 35000,
-				achievement 	= 1870,  -- Naryu's Confidant
-			},
-			[126634] = { -- Tapestry, St. Veloth
-				itemPrice 		= 20000,
-
-				achievement 	= 1875,  -- Narsis's Apprentice
-			},
-			[126626] = { -- Telvanni Device
-				itemPrice 		= 50000,
-				achievement 	= 1869,  -- Telvanni quest
-			},
-			[126792] = { -- Temple Doctrine: the 36
-				itemPrice 		= 130000,
-				achievement 	= 1824,  -- Tribunal Preacher
-			},
-			[126619] = { -- Totem of the Sixth House
-				itemPrice 		= 100000,
-				achievement 	= 1856,  -- Forgotten Wastes Vanquisher
-			},
-			[126625] = { -- Tribunal Shrine in Fountain
-				itemPrice 		= 50000,
-				achievement 	= 1868,  -- Savior of Morrowind
-			},
-			[126641] = { -- Triptych of the Triune
-				itemPrice 		= 20000,
-				achievement 	= 1827,  -- The Pilgrim's Path
-			},
-			[126794] = { -- Sermon 37
-				itemPrice 		= 50000,
-				achievement 	= 1868,  -- Saviour of Morrowind
-			},
-		},
-		["Uzipa"] = {
-			[120998] = { -- Block, Wood Cutting
-				itemPrice 		= 100,
-			},
-			[125481] = { -- Boulder, Volcanic Column
-				itemPrice 		= 500,
-			},
-			[125483] = { -- Boulder, Volcanic Plug
-				itemPrice 		= 500,
-			},
-			[125587] = { -- Mushroom ,Funnel Caps
-				itemPrice 		= 15000,
-			},
-			[125588] = { -- Mushroom, Lanky Erupted Stinkcap
-				itemPrice 		= 750,
-			},
-			[125593] = { -- Mushroom, Netch Shield Platform
-				itemPrice 		= 25000,
-			},
-			[125594] = { -- Mushroom, Netch Shield Tower
-				itemPrice 		= 20000,
-			},
-			[125599] = { --
-				itemPrice 		= 750,
-			},
-			[125602] = { --
-				itemPrice 		= 750,
-			},
-			[125601] = { --
-				itemPrice 		= 750,
-			},
-			[125604] = { --
-				itemPrice 		= 750,
-			},
-			[125612] = { -- Mushrooms, Funnel Cap Cluster
-				itemPrice 		= 22500,
-			},
-			[125614] = { -- Mushrooms, Netch Hide Shade
-				itemPrice 		= 750,
-			},
-			[125638] = { -- Rock, Volcanic Chunk
-				itemPrice 		= 100,
-			},
-			[125639] = { -- Rock, Volcanic Slab
-				itemPrice 		= 100,
-			},
-			[125641] = { -- Sapling, Forked Ashland
-				itemPrice 		= 250,
-			},
-			[125642] = { -- Sapling, Lanky Ash Laurel
-				itemPrice 		= 250,
-			},
-			[125643] = { -- Sapling, Sturdy Ash Laurel
-				itemPrice 		= 250,
-			},
-			[125644] = { -- Sapling, Tall Ashland
-				itemPrice 		= 250,
-			},
-			[125645] = { -- Saplings, Ashland
-				itemPrice 		= 250,
-			},
-			[125673] = { -- Tree, Lanky Poplar
-				itemPrice 		= 500,
-			},
-			[125678] = { -- Tree, Sturdy Poplar
-				itemPrice 		= 500,
-			},
-			[125679] = { -- Tree, Poplar Cluster
-				itemPrice 		= 500,
-			},
-			[125677] = { -- Tree, Rooted Ashland
-				itemPrice 		= 40000,
-			},
-			[125676] = { -- Tree, Rooted Cedar
-				itemPrice 		= 50000,
-			},
-
-		},
-	},
-	["Vivec City, Gladiator's Quarters"] = {
-		["Brelda Ofemalen"] = {
-			[126649]	= { -- Banner of the Fire Drakes
-				itemPrice 		= 50000,
-				achievement 	= 1909, -- Crowd Favorite
-			},
-			[126712]	= { -- Banner of the PD
-				itemPrice 		= 50000,
-				achievement 	= 1909, -- Crowd Favorite
-			},
-			[126650]	= { -- Banner of the SL
-				itemPrice 		= 50000,
-				achievement 	= 1909, -- Crowd Favorite
-			},
-			[126646]	= { -- Standard of the FD
-				itemPrice 		= 25000,
-				achievement 	= 1907, -- Grand Standard-Guardian
-			},
-			[126648]	= { -- Standard of the PD
-				itemPrice 		= 25000,
-				achievement 	= 1907, -- Grand Standard-Guardian
-			},
-			[126647]	= { -- Standard of the SL
-				itemPrice 		= 25000,
-				achievement 	= 1907, -- Grand Standard-Guardian
-			},
-
-			[126713]	= { -- Tapestry of the FD
-				itemPrice 		= 100000,
-				achievement 	= 1910, -- Conquering Hero
-			},
-			[126715]	= { -- Tapestry of the PD
-				itemPrice 		= 100000,
-				achievement 	= 1910, -- Conquering Hero
-			},
-			[126714]	= { -- Tapestry of the SL
-				itemPrice 		= 100000,
-
-				achievement 	= 1910, -- Conquering Hero
-			},
-		},
-		["Llivas Driler"] = {
-			[126716]	= { -- Brazier of the FD
-				itemPrice 		= 50000,
-				achievement 	= 1913, -- Grand Champion
-			},
-			[126718]	= { -- Chained Skull of the PD
-				itemPrice 		= 100000,
-				achievement 	= 1913, -- Grand Champion
-			},
-			[126717]	= { -- Weathervane of the SL
-				itemPrice 		= 125000,
-				achievement 	= 1913, -- Grand Champion
-			},
-			[126643]	= { -- Crown of the SL
-				itemPrice 		= 75000,
-				achievement 	= 1901, -- Grand Relic Guardian
-			},
-			[126644]	= { -- FD's Skull
-				itemPrice 		= 150000,
-				achievement 	= 1901, -- Grand Relic Guardian
-			},
-			[126645]	= { -- Skull of the PD
-				itemPrice 		= 100000,
-				achievement 	= 1901, -- Grand Relic Guardian
-			},
-		},
-	},
-	[GetString(FURC_AV_CAPITAL)] = {
-		[GetString(FURC_AV_HER)] = {
-			[126720]	= { -- Banner of Mayhem
-				itemPrice 		= 5000,
-				achievement 	= 1883, -- Mayhem Connaiseour
-			},
-			[126721]	= { -- Corpse of Mayhem, Argonian
-				itemPrice 		= 15000,
-				achievement 	= 1888, -- Wrath of the Whitestrake
-			},
-			[126722]	= { -- Corpse of Mayhem,Khajiit
-				itemPrice 		= 15000,
-				achievement 	= 1888, -- Wrath of the Whitestrake
-			},
-			[126723]	= { -- Corpse of Mayhem, Orc
-				itemPrice 		= 15000,
-				achievement 	= 1888, -- Wrath of the Whitestrake
-			},
-			[126724]	= { -- Propbably-Not-Punch Bowl of Mayhem
-				itemPrice 		= 30000,
-				achievement 	= 1892, -- Star-made Knight
-			},
-			[126719]	= { -- Standard of Mayhem
-				itemPrice 		= 2500,
-				achievement 	= 1883, -- Mayhem Connaiseour
-			},
-		},
-	},
-	["the Mages' guild"] = {
-		["the Mystic as part of a collection"] = bookList,
-	},
- }
-
-
--- global function, needs to live here, YES MANA
-function FurC.SetupMorrowindItems()
-
-	-- FurC.AchievementVendors[FURC_MORROWIND]["the Mages' guild"]["the Mystic as part of a collection"] = bookList
-	local listTable
-	listTable = FurC.AchievementVendors[FURC_MORROWIND]["Vivec City, Saint Delyn Inn"]["Uzipa"]
-	listTable = tableMerge(listTable, boxes)
-end
-
+  ["Vivec City, Saint Delyn Inn"] = {
+    ["Drops-No-Glass, Temple Doctrine Collection"] = bookList,
+    ["Drops-No-Glass"] = {
+      [126638] = { -- Ashlander Altar, Anticipations
+        itemPrice     = 50000,
+        achievement   = 1825, -- Clanfriend
+      },
+      [126640] = { -- Ashlander Fence, Totems
+        itemPrice     = 10000,
+        achievement   = 1881, -- Ashlander Relic Preserver
+      },
+      [126613] = { -- Ashlander Throne
+        itemPrice     = 100000,
+        achievement   = 1849, -- Voices of the Failed Incarnates
+      },
+      [126639] = { -- Ashlander Yurt, Netch-Hide
+        itemPrice     = 75000,
+        achievement   = 1880,  -- Ashlands Stalker
+      },
+      [126623] = { -- Banner of House Dres
+        itemPrice     = 10000,
+        achievement   = 1867,  -- Morrowind Grand Adventurer
+      },
+      [126621] = { -- Banner of House Hlaalu
+        itemPrice     = 10000,
+        achievement   = 1867,  -- Morrowind Grand Adventurer
+      },
+      [126620] = { -- Banner of House Redoran
+        itemPrice     = 10000,
+        achievement   = 1867,  -- Morrowind Grand Adventurer
+      },
+      [126622] = { -- Banner of House Telvanni
+        itemPrice     = 10000,
+      achievement   = 1867,  -- Morrowind Grand Adventurer
+      },
+      [126624] = { -- Banner of House Indoril
+      itemPrice     = 126624,
+      achievement   = 1867,  -- Morrowind Grand Adventurer
+      },
+      [126628] = { -- Banner, Morag Tong
+      itemPrice     = 25000,
+      achievement   = 1870,  -- Naryu's Confidant
+      },
+      [126615] = { -- Blessing Stone
+      itemPrice     = 10000,
+      achievement   = 1850,  -- Bearer of the Blessed Staff
+      },
+      [126614] = { -- Blessing Stone Device
+      itemPrice     = 20000,
+      achievement   = 1850,  -- Bearer of the Blessed Staff
+      },
+      [126618] = { -- Dwarven Brazier, Eternal
+      itemPrice     = 50000,
+      achievement   = 1854,  -- N'chow conqueror
+      },
+      [126632] = { -- Glass Crystal, Plume
+      itemPrice     = 15000,
+      achievement   = 1874,  -- Pilgrim Protector
+      },
+      [126631] = { -- Glass Crystal, Radiance
+      itemPrice     = 15000,
+      achievement   = 1874,  -- Pilgrim Protector
+      },
+      [126633] = { -- Glass Crystals, Bed
+      itemPrice     = 20000,
+      achievement   = 1874,  -- Pilgrim Protector
+      },
+      [126629] = { -- Kwama Queen Egg
+      itemPrice     = 15000,
+      achievement   = 1872,  -- Kwama Miner
+      },
+      [126630] = { -- Replica Stone of Ashalmwia
+      itemPrice     = 75000,
+      achievement   = 1873,  -- Dratha Quest
+      },
+      [126635] = { -- Sacred Guar Skull
+      itemPrice     = 15000,
+      achievement   = 1876,  -- Ald'Ruhn Annalist
+      },
+      [126642] = { -- Silt Strider Shell, Hollow
+      itemPrice     = 10000,
+      achievement   = 1826,  -- Strider Carawaner
+      },
+      [126617] = { -- Statue of Vivec the Champion
+      itemPrice     = 150000,
+      achievement   = 1852,  -- Champion of Vivec
+      },
+      [126636] = { -- Statue, Cowering Ebony
+      itemPrice     = 50000,
+      achievement   = 1877,  -- Ebony Enforcer
+      },
+      [126637] = { -- Statue, Terrified Ebony
+      itemPrice     = 50000,
+      achievement   = 1877,  -- Ebony Enforcer
+      },
+      [126616] = { -- Statuette of Clavicus Vile, Masked
+      itemPrice     = 100000,
+      achievement   = 1851,  -- Hand of a Living God
+      },
+      [126627] = { -- Tapestry, Morag Tong
+      itemPrice     = 35000,
+      achievement   = 1870,  -- Naryu's Confidant
+      },
+      [126634] = { -- Tapestry, St. Veloth
+      itemPrice     = 20000,
+
+      achievement   = 1875,  -- Narsis's Apprentice
+      },
+      [126626] = { -- Telvanni Device
+      itemPrice     = 50000,
+      achievement   = 1869,  -- Telvanni quest
+      },
+      [126792] = { -- Temple Doctrine: the 36
+      itemPrice     = 130000,
+      achievement   = 1824,  -- Tribunal Preacher
+      },
+      [126619] = { -- Totem of the Sixth House
+      itemPrice     = 100000,
+      achievement   = 1856,  -- Forgotten Wastes Vanquisher
+      },
+      [126625] = { -- Tribunal Shrine in Fountain
+      itemPrice     = 50000,
+      achievement   = 1868,  -- Savior of Morrowind
+      },
+      [126641] = { -- Triptych of the Triune
+      itemPrice     = 20000,
+      achievement   = 1827,  -- The Pilgrim's Path
+      },
+      [126794] = { -- Sermon 37
+      itemPrice     = 50000,
+      achievement   = 1868,  -- Saviour of Morrowind
+      },
+      },
+      ["Uzipa"] = {
+      [120998] = { -- Block, Wood Cutting
+      itemPrice     = 100,
+      },
+      [125481] = { -- Boulder, Volcanic Column
+      itemPrice     = 500,
+      },
+      [125483] = { -- Boulder, Volcanic Plug
+      itemPrice     = 500,
+      },
+      [125587] = { -- Mushroom ,Funnel Caps
+      itemPrice     = 15000,
+      },
+      [125588] = { -- Mushroom, Lanky Erupted Stinkcap
+      itemPrice     = 750,
+      },
+      [125593] = { -- Mushroom, Netch Shield Platform
+      itemPrice     = 25000,
+      },
+      [125594] = { -- Mushroom, Netch Shield Tower
+      itemPrice     = 20000,
+      },
+      [125599] = { --
+      itemPrice     = 750,
+      },
+      [125602] = { --
+      itemPrice     = 750,
+      },
+      [125601] = { --
+      itemPrice     = 750,
+      },
+      [125604] = { --
+      itemPrice     = 750,
+      },
+      [125612] = { -- Mushrooms, Funnel Cap Cluster
+      itemPrice     = 22500,
+      },
+      [125614] = { -- Mushrooms, Netch Hide Shade
+      itemPrice     = 750,
+      },
+      [125638] = { -- Rock, Volcanic Chunk
+      itemPrice     = 100,
+      },
+      [125639] = { -- Rock, Volcanic Slab
+      itemPrice     = 100,
+      },
+      [125641] = { -- Sapling, Forked Ashland
+      itemPrice     = 250,
+      },
+      [125642] = { -- Sapling, Lanky Ash Laurel
+      itemPrice     = 250,
+      },
+      [125643] = { -- Sapling, Sturdy Ash Laurel
+      itemPrice     = 250,
+      },
+      [125644] = { -- Sapling, Tall Ashland
+      itemPrice     = 250,
+      },
+      [125645] = { -- Saplings, Ashland
+      itemPrice     = 250,
+      },
+      [125673] = { -- Tree, Lanky Poplar
+      itemPrice     = 500,
+      },
+      [125678] = { -- Tree, Sturdy Poplar
+      itemPrice     = 500,
+      },
+      [125679] = { -- Tree, Poplar Cluster
+      itemPrice     = 500,
+      },
+      [125677] = { -- Tree, Rooted Ashland
+      itemPrice     = 40000,
+      },
+      [125676] = { -- Tree, Rooted Cedar
+      itemPrice     = 50000,
+      },
+
+      },
+      },
+      ["Vivec City, Gladiator's Quarters"] = {
+      ["Brelda Ofemalen"] = {
+      [126649]  = { -- Banner of the Fire Drakes
+      itemPrice     = 50000,
+      achievement   = 1909, -- Crowd Favorite
+      },
+      [126712]  = { -- Banner of the PD
+      itemPrice     = 50000,
+      achievement   = 1909, -- Crowd Favorite
+      },
+      [126650]  = { -- Banner of the SL
+      itemPrice     = 50000,
+      achievement   = 1909, -- Crowd Favorite
+      },
+      [126646]  = { -- Standard of the FD
+      itemPrice     = 25000,
+      achievement   = 1907, -- Grand Standard-Guardian
+      },
+      [126648]  = { -- Standard of the PD
+      itemPrice     = 25000,
+      achievement   = 1907, -- Grand Standard-Guardian
+      },
+      [126647]  = { -- Standard of the SL
+      itemPrice     = 25000,
+      achievement   = 1907, -- Grand Standard-Guardian
+      },
+
+      [126713]  = { -- Tapestry of the FD
+      itemPrice     = 100000,
+      achievement   = 1910, -- Conquering Hero
+      },
+      [126715]  = { -- Tapestry of the PD
+      itemPrice     = 100000,
+      achievement   = 1910, -- Conquering Hero
+      },
+      [126714]  = { -- Tapestry of the SL
+      itemPrice     = 100000,
+
+      achievement   = 1910, -- Conquering Hero
+      },
+      },
+      ["Llivas Driler"] = {
+      [126716]  = { -- Brazier of the FD
+      itemPrice     = 50000,
+      achievement   = 1913, -- Grand Champion
+      },
+      [126718]  = { -- Chained Skull of the PD
+      itemPrice     = 100000,
+      achievement   = 1913, -- Grand Champion
+      },
+      [126717]  = { -- Weathervane of the SL
+      itemPrice     = 125000,
+      achievement   = 1913, -- Grand Champion
+      },
+      [126643]  = { -- Crown of the SL
+      itemPrice     = 75000,
+      achievement   = 1901, -- Grand Relic Guardian
+      },
+      [126644]  = { -- FD's Skull
+      itemPrice     = 150000,
+      achievement   = 1901, -- Grand Relic Guardian
+      },
+      [126645]  = { -- Skull of the PD
+      itemPrice     = 100000,
+      achievement   = 1901, -- Grand Relic Guardian
+      },
+      },
+      },
+      [GetString(FURC_AV_CAPITAL)] = {
+      [GetString(FURC_AV_HER)] = {
+      [126720]  = { -- Banner of Mayhem
+      itemPrice     = 5000,
+      achievement   = 1883, -- Mayhem Connaiseour
+      },
+      [126721]  = { -- Corpse of Mayhem, Argonian
+      itemPrice     = 15000,
+      achievement   = 1888, -- Wrath of the Whitestrake
+      },
+      [126722]  = { -- Corpse of Mayhem,Khajiit
+      itemPrice     = 15000,
+      achievement   = 1888, -- Wrath of the Whitestrake
+      },
+      [126723]  = { -- Corpse of Mayhem, Orc
+      itemPrice     = 15000,
+      achievement   = 1888, -- Wrath of the Whitestrake
+      },
+      [126724]  = { -- Propbably-Not-Punch Bowl of Mayhem
+      itemPrice     = 30000,
+      achievement   = 1892, -- Star-made Knight
+      },
+      [126719]  = { -- Standard of Mayhem
+      itemPrice     = 2500,
+      achievement   = 1883, -- Mayhem Connaiseour
+      },
+      },
+      },
+      ["the Mages' guild"] = {
+      ["the Mystic as part of a collection"] = bookList,
+      },
+      }
+
+
+      -- global function, needs to live here, YES MANA
+      function FurC.SetupMorrowindItems()
+
+      -- FurC.AchievementVendors[FURC_MORROWIND]["the Mages' guild"]["the Mystic as part of a collection"] = bookList
+      local listTable
+      listTable = FurC.AchievementVendors[FURC_MORROWIND]["Vivec City, Saint Delyn Inn"]["Uzipa"]
+      listTable = tableMerge(listTable, boxes)
+      end
+
+
\ No newline at end of file
diff --git a/data/02_Morrowind/M_EventItems.lua b/data/02_Morrowind/M_EventItems.lua
index 0ab989f..60f4738 100644
--- a/data/02_Morrowind/M_EventItems.lua
+++ b/data/02_Morrowind/M_EventItems.lua
@@ -1,12 +1,12 @@
 local t = {
-	[126157] = {},	-- Song of Pelinal, #1
-	[126158] = {},	-- Song of Pelinal, #2
-	[126159] = {},	-- Song of Pelinal, #3
-	[126160] = {},	-- Song of Pelinal, #4
-	[126161] = {},	-- Song of Pelinal, #5
-	[126162] = {},	-- Song of Pelinal, #6
-	[126163] = {},	-- Song of Pelinal, #7
-	[126164] = {},	-- Song of Pelinal, #8
+  [126157] = {},  -- Song of Pelinal, #1
+  [126158] = {},  -- Song of Pelinal, #2
+  [126159] = {},  -- Song of Pelinal, #3
+  [126160] = {},  -- Song of Pelinal, #4
+  [126161] = {},  -- Song of Pelinal, #5
+  [126162] = {},  -- Song of Pelinal, #6
+  [126163] = {},  -- Song of Pelinal, #7
+  [126164] = {},  -- Song of Pelinal, #8
 }

 FurC.EventItems[FURC_MORROWIND] = FurC.EventItems[FURC_MORROWIND] or {}
diff --git a/data/02_Morrowind/M_Recipes.lua b/data/02_Morrowind/M_Recipes.lua
index 3517d4a..bbdaccb 100644
--- a/data/02_Morrowind/M_Recipes.lua
+++ b/data/02_Morrowind/M_Recipes.lua
@@ -2,320 +2,320 @@ FurC.Recipes = FurC.Recipes or {}

 FurC.Recipes[FURC_MORROWIND] = {

-	126966, -- Redoran Trestle, Corridor
-	126881, -- Dwarven Jar, Sealed
-	126865, -- Dwarven Engine, Turbine
-	126899, -- Dwarven Sconce, Framework
-	121545, -- Redguard Cannister, Gilded
-	121099, -- Common Firepit, Outdoor
-	127084, -- Indoril Candelabra, Shrine
-	127015, -- Hlaalu Censer, Mesh
-	127092, -- Hlaalu Lantern, Classic Vellum
-	126869, -- Dwarven Table, Workbench
-	126877, -- Dwarven Candlestick, Laboratory
-	121175, -- Geese, Hanging
-	127067, -- Dres Jar, Stoneflower
-	127075, -- Indoril Brazier, Cauldron
-	126941, -- Hlaalu Wardrobe, Formal
-	126925, -- Redoran Bed, Canopy
-	126903, -- Redoran Urn, Pale Marble
-	127019, -- Indoril Incense Cup, Silver
-	127027, -- Indoril Rug, Almalexia
-	126907, -- Hlaalu Settee, Polished
-	126978, -- Telvanni Bed, Organic
-	121061, -- Common Firepit, Piled
-	126860, -- Dwarven Engine, Boiler
-	121156, -- Papers, Stack
-	127080, -- Indoril Candelabra, Shrine Chamber
-	121192, -- Wolf Head, Wall Mount
-	126847, -- Indoril Streetlight, Full Stone
-	126991, -- Indoril Bellows, Practical
-	126834, -- Daedric Candles, Group
-	121183, -- Haj Mota Shell, Wall Mount
-	121187, -- Echatere, Wall Mount
-	126890, -- Dwarven Basin, Forged
-	127059, -- Hlaalu Banner, Floral
-	126963, -- Indoril Footlocker, Fortified
-	127023, -- Redoran Plate, Meal
-	126582, -- Target Centurion, Dwarf-Brass
-	121206, -- Orcish Desk with Furs
-	126954, -- Hlaalu Rack, Barrel
-	127051, -- Redoran Mantle Cloth, Crimson Cover
-	126937, -- Redoran Stool, Sanded
-	121210, -- Orcish Throne, Skull
-	127038, -- Indoril Runner, Sotha Sil
-	126916, -- Dres Sideboard, Display
-	121198, -- Shelf, Poison
-	126898, -- Dwarven Sconce, Barred
-	126894, -- Dwarven Chandelier, Framework
-	126866, -- Dwarven Pew, Refined
-	121305, -- Redguard Chandelier, Dark
-	127068, -- Redoran Fork, Wooden
-	127072, -- Indoril Banner, Sotha Sil
-	126983, -- Telvanni Nightstand, Organic
-	126878, -- Dwarven Goblet, Forged
-	126886, -- Dwarven Valve, Disconnected
-	127048, -- Hlaalu Box, Trinket
-	126870, -- Dwarven Table, Assembly
-	126846, -- Indoril Streetlight, Stone
-	127104, -- Hlaalu Boxes, Compact
-	126910, -- Hlaalu Stool, Mossy Cushion
-	126837, -- Daedric Urn, Ashen
-	126862, -- Dwarven Pipeline Cap, Sealed
-	126942, -- Hlaalu Bookcase, Orderly
-	121217, -- Redguard Lamp, Oil
-	121213, -- Orcish Skull Goblet, Empty
-	126902, -- Redoran Amphora, Sealed Marble
-	126958, -- Hlaalu Nightstand, Formal
-	127026, -- Indoril Runner, Almalexia
-	127018, -- Redoran Incense Holder, Ceramic Pan
-	121193, -- Bottle, Beaker
-	126861, -- Dwarven Boiler, Central
-	126874, -- Dwarven Candles, Plate
-	126854, -- Dwarven Pipe, Elbow
-	126891, -- Dwarven Chandelier, Caged
-	126919, -- Hlaalu Table, Formal Turtle
-	127035, -- Dres Carpet, Chains
-	127009, -- Redoran Cup, Mazte
-	126841, -- Daedric Brazier, Standing
-	126975, -- Hlaalu Shelf, Long
-	126887, -- Dwarven Vase, Forged
-	126962, -- Indoril Chest, Fortified
-	127022, -- Redoran Plate, Floral
-	126850, -- Dwarven Engine, Fan
-	127056, -- Dres Tapestry, Vines
-	126938, -- Redoran Armchair, Fungal Cushion
-	121161, -- Ram Horns, Mounted
-	126951, -- Redoran End Table, sanded
-	121369, -- Redguard Bed, Full Lattice
-	126955, -- Hlaalu Cabinet, Clerk
-	126988, -- Telvanni Stool, Organic
-	126923, -- Redoran Bed, Single Pillow
-	126915, -- Dres Trestle, Corridor
-	121216, -- Redguard Divider, Gilded
-	126897, -- Dwarven Sconce, Powered
-	126893, -- Dwarven Chandelier, Braced
-	121313, -- Wood Elf Throne, Vine
-	126968, -- Redoran Table, Kitchen
-	126913, -- Hlaalu Armchair, Polished
-	127090, -- Indoril Lantern, Hanging
-	127103, -- Hlaalu Hanger, Mounted
-	127099, -- Telvanni Arched Light, Organic Azure
-	126863, -- Dwarven Pipeline Cap, Sealed
-	127073, -- Indoril Banner, Vivec
-	126840, -- Daedric Brazier, Table
-	127082, -- Indoril Sconce, Shrine
-	127013, -- Redoran Incense Holder, Curved
-	126871, -- Dwarven Table, Refined
-	126867, -- Dwarven Bench, Forged
-	126845, -- Indoril Lightpost, Stone
-	126947, -- Hlaalu Sideboard, Scholar's
-	126875, -- Dwarven Candles, Cup
-	127078, -- Indoril Candle, Temple
-	121177, -- Horn, Display, Huge
-	121185, -- Durzog Head, Wall Mount
-	127004, -- Dres Cup, Empty Greef
-	121212, -- Orcish Effigy, Bear
-	127102, -- Tribunal Tablet of Almalexia
-	127101, -- Velothi Brazier, Temple
-	126888, -- Dwarven Pot, Sealed
-	127100, -- Telvanni Sconce, Organic Azure
-	127061, -- Indoril Tapestry, Vivec
-	121171, -- Rug, Bearskin
-	127097, -- Telvanni Candelabra, Organic
-	127096, -- Telvanni Lamp, Organic Azure
-	127094, -- Hlaalu Lantern, Stationary
-	127093, -- Hlaalu Lantern, Modest Vellum
-	127089, -- Hlaalu Streetlight, Vellum
-	127088, -- Hlaalu Sconce, Vellum
-	127087, -- Indoril Streetlight, Brick
-	127012, -- Indoril Platter, Floral
-	126905, -- Hlaalu Cannister, Sealed Azurite
-	126946, -- Hlaalu Cabinet of drawers, Clerk
-	121097, -- Plaque, Bordered Deer Antlers
-	127086, -- Indoril Chandelier, Knotwork
-	127085, -- Indoril Candelabra, Temple
-	127083, -- Dres Candles, Meditation
-	127081, -- Indoril Sconce, Temple
-	121190, -- Mantikora Head, Wall Mount
-	127077, -- Indoril Brazier, Pedestal
-	127076, -- Indoril Brazier, Kettle
-	127071, -- Indoril Banner, Almalexia
-	127070, -- Redoran Spoon, Wooden
-	127069, -- Redoran Knife, Wooden
-	127065, -- Hlaalu Vase, Gilded
-	127064, -- Hlaalu Jar, Garden Moss
-	127063, -- Redoran Urn, Imprinted Clay
-	126976, -- Indoril Shelf, Long
-	127008, -- Redoran Cup, Empty
-	127062, -- Dres Teapot, Ceramic
-	127060, -- Indoril Tapestry, Sotha Sil
-	127058, -- Hlaalu Tapestry, Floral
-	127057, -- Indoril Tapestry, Almalexia
-	127055, -- Telvanni Table Runner, Bordered Azure
-	127054, -- Redoran Table Runner, Gilded Ochre
-	121194, -- Bottle, Poison
-	126989, -- Telvanni Table, Organic Game
-	127052, -- Telvanni Table Runner, Gilded Azure
-	127050, -- Redoran Steamer, Iron
-	127040, -- Indoril Carpet, Sotha Sil
-	127049, -- Indoril Box, Trinket
-	127047, -- Hlaalu Cannister, Trinket
-	127032, -- Dres Carpet, Fertile Peat
-	127046, -- Indoril Cannister, Trinket
-	127045, -- Indoril Carpet, Grand Vivec
-	127044, -- Indoril Carpet, Vivec
-	127043, -- Indoril Rug, Vivec
-	127042, -- Indoril Runner, Vivec
-	127039, -- Indoril Rug, Sotha Sil
-	127034, -- Redoran Carpet, Volcanic Sands
-	127031, -- Hlaalu Carpet, Garden Moss
-	127030, -- Redoran Carpet, Volcanic Ash
-	127029, -- Indoril Carpet, Grand Almalexia
-	127028, -- Indoril Carpet, Almalexia
-	127025, -- Dres Pot, Sauce
-	127024, -- Redoran Tray, Floral
-	127021, -- Hlaalu Towels, Folded
-	127020, -- Redoran Incense Pot, Beastly
-	127017, -- Dres Censer, Chains
-	127014, -- Redoran Incense Holder, Mesh
-	127010, -- Dres Cup, Empty Mazte
-	127007, -- Dres Cup, Sujamma
-	127006, -- Dres Cup, Empty Sujamma
-	127005, -- Dres Cup, Greef
-	127003, -- Ashlander Cup, Mazte
-	127002, -- Ashlander Cup, Empty
-	127001, -- Dres Cannister, Portable
-	127000, -- Dres Cauldron, Floral Banded
-	126999, -- Ashlander Platter, Bread and Cheese
-	126996, -- Dres Bowl, Empty
-	126995, -- Redoran Bowl, Saltrice Mash
-	126997, -- Dres Bowl, Saltrice Mash
-	126993, -- Dres Bowl, Dinner
-	126992, -- Dres Bowl, Serving
-	127053, -- Redoran Mantle Cloth, Crimson Coverle
-	126987, -- Telvanni Shelves, Organic t
-	126836, -- Daedric Bench, Ashen
-	126952, -- Hlaalu End Table, Formal Turtle
-	126984, -- Telvanni Desk, Organic
-	121304, -- Redguard Chandelier, Grated
-	126982, -- Telvanni Sofa, Organic
-	126981, -- Telvanni Throne, Organic
-	126980, -- Telvanni Armchair, Organic
-	126979, -- Telvanni Chair, Organic
-	126977, -- Hlaalu Dresser, Scroll Rack
-	126974, -- Indoril Shelf, Block
-	126973, -- Dres Shelf, Block
-	126971, -- Hlaalu Footlocker, Secure
-	126972, -- Hlaalu Chest, Secure
-	126970, -- Redoran Table, Formal Turtle
-	126969, -- Redoran Table, Formal Floral
-	126967, -- Redoran Sideboard, Display
-	126965, -- Indoril Cassone, Sealed
-	126964, -- Indoril Vault, Sealed
-	126961, -- Dres Divider, Honeycomb
-	126959, -- Dres Divider, Screen
-	126956, -- Hlaalu Mirror, Standing
-	127036, -- Dres Runner, Chains
-	126950, -- Indoril End Table, Rounded
-	126949, -- Hlaalu Sideboard, Scribe's
-	126946, -- Hlaalu Cabinet of Drawers, Clerk
-	126945, -- Hlaalu Sideboard, Low Cabinet
-	126943, -- Hlaalu Cupboard, Formal
-	126939, -- Redoran Armchair, Sanded
-	126936, -- Redoran Stool, Fungal Cushion
-	126935, -- Hlaalu Dresser, Open
-	126934, -- Hlaalu Cabinet, Open
-	126933, -- Hlaalu Cupboard, Open
-	126932, -- Hlaalu Bookcase, Empty
-	126931, -- Redoran Bench, Sanded
-	126930, -- Redoran Bench, Fungal Cushion
-	126929, -- Redoran Settee, Sanded
-	126928, -- Redoran Settee, Fungal Cushion
-	126927, -- Redoran Bed, Single
-	126926, -- Hlaalu Bed, Single
-	126924, -- Redoran Bed, Double Pillow
-	126922, -- Hlaalu Bed, Canopy
-	126921, -- Hlaalu Bed, Double Pillow
-	126920, -- Hlaalu Bed, Single Pillow
-	126918, -- Hlaalu Table, Formal Floral
-	126917, -- Dres Table, Kitchen
-	126914, -- Hlaalu Chair, Polished
-	126857, -- Dwarven Pipeline, Junction
-	126911, -- Hlaalu Stool, Polished
-	126909, -- Hlaalu Bench, Polished
-	126906, -- Hlaalu Settee, Mossy Cushion
-	126904, -- Redoran Urn, Dusky Marble
-	126901, -- Hlaalu Amphora, Sealed Orichalcum
-	126900, -- Hlaalu Jar, Sealed Malachite
-	126873, -- Dwarven Bowl, Forged Serving
-	126895, -- Dwarven Lantern, Oil
-	126885, -- Dwarven Cannister, Sealed
-	121191, -- Mantikora Horns, Wall Mount
-	126883, -- Dwarven Platform, Steps
-	126882, -- Dwarven Plate, Forged
-	126880, -- Dwarven Amphora, Sealed
-	126879, -- Dwarven Jug, Sealed
-	121106, -- Common Cargo Crate, Dry
-	121215, -- Redguard Canopy, Dusk
-	126896, -- Dwarven Lamppost, Powered
-	126859, -- Dwarven Pipeline, Column
-	126858, -- Dwarven Pipeline, Full Column
-	126912, -- Hlaalu Armchair, Mossy Cushion
-	126855, -- Dwarven Pipe, Corner
-	126853, -- Dwarven Pipe, Full Column
-	126851, -- Dwarven Pipe, Quarter Column
-	126849, -- Dwarven Pipe Cap, Bolted
-	126842, -- Daedric Chandelier, Ritual
-	126838, -- Daedric Base, Ashen
-	126985, -- Telvanni End Table, Organic
-	126835, -- Daedric Candles, Ritual Set
-	121102, -- Chicken Dinner, Display
-	126583, -- Target Centurion, Robust Refabricated
-	126884, -- Dwarven Vessel, Sealed
-	121189, -- Haj Mota Head, Wall Mount
-	121184, -- Antlers, Wall Mount
-	127091, -- Hlaalu Lantern, Oversized Vellum
-	121174, -- Sack of Grain
-	127098, -- Telvanni Lantern, Organic Azure
-	126839, -- Daedric Platform, Ashen
-	127074, -- Indoril Brazier, Knotwork
-	126876, -- Dwarven Candlestick, Orrery
-	121105, -- Common Barrel, Dry
-	121103, -- Chicken Meal, Display
-	126944, -- Hlaalu Desk, Scholar's
-	121098, -- Common Campfire, Outdoor
-	127066, -- Redoran Jar, Jazbay
-	126872, -- Dwarven Bowl, Forged
-	126908, -- Hlaalu Bench, Mossy Cushion
-	126868, -- Dwarven Bookcase, Full
-	121366, -- Orcish Tapestry, Hunt
-	126892, -- Dwarven Chandelier, Barred
-	126948, -- Hlaalu Dresser, Scroll Drawers
-	126864, -- Dwarven Engine, Switch
-	126844, -- Daedric Pedestal, Ritual
-	121157, -- Sack of Rice
-	126960, -- Dres Divider, Chains
-	127079, -- Indoril Candelabra, Temple Chamber
-	121178, -- Horn, Display, Cracked
-	127095, -- Hlaalu Lamp, Portable
-	126940, -- Redoran Chair, Sanded
-	126889, -- Dwarven Urn, Sealed
-	126856, -- Dwarven Pipeline, Elbow
-	127041, -- Indoril Carpet, Grand Sotha Sil
-	126848, -- Dwarven Altar, Stairs
-	127016, -- Dres Incense Stand, Chains
-	127011, -- Dres Cup, Mazte
-	127033, -- Hlaalu Mat, Welcoming
-	126998, -- Ashlander Platter, Ceramic
-	126986, -- Telvanni Bookcase, Organic
-	126994, -- Redoran Bowl, Empty
-	126990, -- Telvanni Table, Organic Grand
-	126953, -- Hlaalu End Table, Formal Scales
-	121211, -- Orcish Effigy, Mammoth
-	126852, -- Dwarven Pipe, Half Column
-	121205, -- Nord Drinking Horn, Display
-	126957, -- Hlaalu Nightstand, Scholar's
-	127037, -- Dres Rug, Chains
+  126966, -- Redoran Trestle, Corridor
+  126881, -- Dwarven Jar, Sealed
+  126865, -- Dwarven Engine, Turbine
+  126899, -- Dwarven Sconce, Framework
+  121545, -- Redguard Cannister, Gilded
+  121099, -- Common Firepit, Outdoor
+  127084, -- Indoril Candelabra, Shrine
+  127015, -- Hlaalu Censer, Mesh
+  127092, -- Hlaalu Lantern, Classic Vellum
+  126869, -- Dwarven Table, Workbench
+  126877, -- Dwarven Candlestick, Laboratory
+  121175, -- Geese, Hanging
+  127067, -- Dres Jar, Stoneflower
+  127075, -- Indoril Brazier, Cauldron
+  126941, -- Hlaalu Wardrobe, Formal
+  126925, -- Redoran Bed, Canopy
+  126903, -- Redoran Urn, Pale Marble
+  127019, -- Indoril Incense Cup, Silver
+  127027, -- Indoril Rug, Almalexia
+  126907, -- Hlaalu Settee, Polished
+  126978, -- Telvanni Bed, Organic
+  121061, -- Common Firepit, Piled
+  126860, -- Dwarven Engine, Boiler
+  121156, -- Papers, Stack
+  127080, -- Indoril Candelabra, Shrine Chamber
+  121192, -- Wolf Head, Wall Mount
+  126847, -- Indoril Streetlight, Full Stone
+  126991, -- Indoril Bellows, Practical
+  126834, -- Daedric Candles, Group
+  121183, -- Haj Mota Shell, Wall Mount
+  121187, -- Echatere, Wall Mount
+  126890, -- Dwarven Basin, Forged
+  127059, -- Hlaalu Banner, Floral
+  126963, -- Indoril Footlocker, Fortified
+  127023, -- Redoran Plate, Meal
+  126582, -- Target Centurion, Dwarf-Brass
+  121206, -- Orcish Desk with Furs
+  126954, -- Hlaalu Rack, Barrel
+  127051, -- Redoran Mantle Cloth, Crimson Cover
+  126937, -- Redoran Stool, Sanded
+  121210, -- Orcish Throne, Skull
+  127038, -- Indoril Runner, Sotha Sil
+  126916, -- Dres Sideboard, Display
+  121198, -- Shelf, Poison
+  126898, -- Dwarven Sconce, Barred
+  126894, -- Dwarven Chandelier, Framework
+  126866, -- Dwarven Pew, Refined
+  121305, -- Redguard Chandelier, Dark
+  127068, -- Redoran Fork, Wooden
+  127072, -- Indoril Banner, Sotha Sil
+  126983, -- Telvanni Nightstand, Organic
+  126878, -- Dwarven Goblet, Forged
+  126886, -- Dwarven Valve, Disconnected
+  127048, -- Hlaalu Box, Trinket
+  126870, -- Dwarven Table, Assembly
+  126846, -- Indoril Streetlight, Stone
+  127104, -- Hlaalu Boxes, Compact
+  126910, -- Hlaalu Stool, Mossy Cushion
+  126837, -- Daedric Urn, Ashen
+  126862, -- Dwarven Pipeline Cap, Sealed
+  126942, -- Hlaalu Bookcase, Orderly
+  121217, -- Redguard Lamp, Oil
+  121213, -- Orcish Skull Goblet, Empty
+  126902, -- Redoran Amphora, Sealed Marble
+  126958, -- Hlaalu Nightstand, Formal
+  127026, -- Indoril Runner, Almalexia
+  127018, -- Redoran Incense Holder, Ceramic Pan
+  121193, -- Bottle, Beaker
+  126861, -- Dwarven Boiler, Central
+  126874, -- Dwarven Candles, Plate
+  126854, -- Dwarven Pipe, Elbow
+  126891, -- Dwarven Chandelier, Caged
+  126919, -- Hlaalu Table, Formal Turtle
+  127035, -- Dres Carpet, Chains
+  127009, -- Redoran Cup, Mazte
+  126841, -- Daedric Brazier, Standing
+  126975, -- Hlaalu Shelf, Long
+  126887, -- Dwarven Vase, Forged
+  126962, -- Indoril Chest, Fortified
+  127022, -- Redoran Plate, Floral
+  126850, -- Dwarven Engine, Fan
+  127056, -- Dres Tapestry, Vines
+  126938, -- Redoran Armchair, Fungal Cushion
+  121161, -- Ram Horns, Mounted
+  126951, -- Redoran End Table, sanded
+  121369, -- Redguard Bed, Full Lattice
+  126955, -- Hlaalu Cabinet, Clerk
+  126988, -- Telvanni Stool, Organic
+  126923, -- Redoran Bed, Single Pillow
+  126915, -- Dres Trestle, Corridor
+  121216, -- Redguard Divider, Gilded
+  126897, -- Dwarven Sconce, Powered
+  126893, -- Dwarven Chandelier, Braced
+  121313, -- Wood Elf Throne, Vine
+  126968, -- Redoran Table, Kitchen
+  126913, -- Hlaalu Armchair, Polished
+  127090, -- Indoril Lantern, Hanging
+  127103, -- Hlaalu Hanger, Mounted
+  127099, -- Telvanni Arched Light, Organic Azure
+  126863, -- Dwarven Pipeline Cap, Sealed
+  127073, -- Indoril Banner, Vivec
+  126840, -- Daedric Brazier, Table
+  127082, -- Indoril Sconce, Shrine
+  127013, -- Redoran Incense Holder, Curved
+  126871, -- Dwarven Table, Refined
+  126867, -- Dwarven Bench, Forged
+  126845, -- Indoril Lightpost, Stone
+  126947, -- Hlaalu Sideboard, Scholar's
+  126875, -- Dwarven Candles, Cup
+  127078, -- Indoril Candle, Temple
+  121177, -- Horn, Display, Huge
+  121185, -- Durzog Head, Wall Mount
+  127004, -- Dres Cup, Empty Greef
+  121212, -- Orcish Effigy, Bear
+  127102, -- Tribunal Tablet of Almalexia
+  127101, -- Velothi Brazier, Temple
+  126888, -- Dwarven Pot, Sealed
+  127100, -- Telvanni Sconce, Organic Azure
+  127061, -- Indoril Tapestry, Vivec
+  121171, -- Rug, Bearskin
+  127097, -- Telvanni Candelabra, Organic
+  127096, -- Telvanni Lamp, Organic Azure
+  127094, -- Hlaalu Lantern, Stationary
+  127093, -- Hlaalu Lantern, Modest Vellum
+  127089, -- Hlaalu Streetlight, Vellum
+  127088, -- Hlaalu Sconce, Vellum
+  127087, -- Indoril Streetlight, Brick
+  127012, -- Indoril Platter, Floral
+  126905, -- Hlaalu Cannister, Sealed Azurite
+  126946, -- Hlaalu Cabinet of drawers, Clerk
+  121097, -- Plaque, Bordered Deer Antlers
+  127086, -- Indoril Chandelier, Knotwork
+  127085, -- Indoril Candelabra, Temple
+  127083, -- Dres Candles, Meditation
+  127081, -- Indoril Sconce, Temple
+  121190, -- Mantikora Head, Wall Mount
+  127077, -- Indoril Brazier, Pedestal
+  127076, -- Indoril Brazier, Kettle
+  127071, -- Indoril Banner, Almalexia
+  127070, -- Redoran Spoon, Wooden
+  127069, -- Redoran Knife, Wooden
+  127065, -- Hlaalu Vase, Gilded
+  127064, -- Hlaalu Jar, Garden Moss
+  127063, -- Redoran Urn, Imprinted Clay
+  126976, -- Indoril Shelf, Long
+  127008, -- Redoran Cup, Empty
+  127062, -- Dres Teapot, Ceramic
+  127060, -- Indoril Tapestry, Sotha Sil
+  127058, -- Hlaalu Tapestry, Floral
+  127057, -- Indoril Tapestry, Almalexia
+  127055, -- Telvanni Table Runner, Bordered Azure
+  127054, -- Redoran Table Runner, Gilded Ochre
+  121194, -- Bottle, Poison
+  126989, -- Telvanni Table, Organic Game
+  127052, -- Telvanni Table Runner, Gilded Azure
+  127050, -- Redoran Steamer, Iron
+  127040, -- Indoril Carpet, Sotha Sil
+  127049, -- Indoril Box, Trinket
+  127047, -- Hlaalu Cannister, Trinket
+  127032, -- Dres Carpet, Fertile Peat
+  127046, -- Indoril Cannister, Trinket
+  127045, -- Indoril Carpet, Grand Vivec
+  127044, -- Indoril Carpet, Vivec
+  127043, -- Indoril Rug, Vivec
+  127042, -- Indoril Runner, Vivec
+  127039, -- Indoril Rug, Sotha Sil
+  127034, -- Redoran Carpet, Volcanic Sands
+  127031, -- Hlaalu Carpet, Garden Moss
+  127030, -- Redoran Carpet, Volcanic Ash
+  127029, -- Indoril Carpet, Grand Almalexia
+  127028, -- Indoril Carpet, Almalexia
+  127025, -- Dres Pot, Sauce
+  127024, -- Redoran Tray, Floral
+  127021, -- Hlaalu Towels, Folded
+  127020, -- Redoran Incense Pot, Beastly
+  127017, -- Dres Censer, Chains
+  127014, -- Redoran Incense Holder, Mesh
+  127010, -- Dres Cup, Empty Mazte
+  127007, -- Dres Cup, Sujamma
+  127006, -- Dres Cup, Empty Sujamma
+  127005, -- Dres Cup, Greef
+  127003, -- Ashlander Cup, Mazte
+  127002, -- Ashlander Cup, Empty
+  127001, -- Dres Cannister, Portable
+  127000, -- Dres Cauldron, Floral Banded
+  126999, -- Ashlander Platter, Bread and Cheese
+  126996, -- Dres Bowl, Empty
+  126995, -- Redoran Bowl, Saltrice Mash
+  126997, -- Dres Bowl, Saltrice Mash
+  126993, -- Dres Bowl, Dinner
+  126992, -- Dres Bowl, Serving
+  127053, -- Redoran Mantle Cloth, Crimson Coverle
+  126987, -- Telvanni Shelves, Organic t
+  126836, -- Daedric Bench, Ashen
+  126952, -- Hlaalu End Table, Formal Turtle
+  126984, -- Telvanni Desk, Organic
+  121304, -- Redguard Chandelier, Grated
+  126982, -- Telvanni Sofa, Organic
+  126981, -- Telvanni Throne, Organic
+  126980, -- Telvanni Armchair, Organic
+  126979, -- Telvanni Chair, Organic
+  126977, -- Hlaalu Dresser, Scroll Rack
+  126974, -- Indoril Shelf, Block
+  126973, -- Dres Shelf, Block
+  126971, -- Hlaalu Footlocker, Secure
+  126972, -- Hlaalu Chest, Secure
+  126970, -- Redoran Table, Formal Turtle
+  126969, -- Redoran Table, Formal Floral
+  126967, -- Redoran Sideboard, Display
+  126965, -- Indoril Cassone, Sealed
+  126964, -- Indoril Vault, Sealed
+  126961, -- Dres Divider, Honeycomb
+  126959, -- Dres Divider, Screen
+  126956, -- Hlaalu Mirror, Standing
+  127036, -- Dres Runner, Chains
+  126950, -- Indoril End Table, Rounded
+  126949, -- Hlaalu Sideboard, Scribe's
+  126946, -- Hlaalu Cabinet of Drawers, Clerk
+  126945, -- Hlaalu Sideboard, Low Cabinet
+  126943, -- Hlaalu Cupboard, Formal
+  126939, -- Redoran Armchair, Sanded
+  126936, -- Redoran Stool, Fungal Cushion
+  126935, -- Hlaalu Dresser, Open
+  126934, -- Hlaalu Cabinet, Open
+  126933, -- Hlaalu Cupboard, Open
+  126932, -- Hlaalu Bookcase, Empty
+  126931, -- Redoran Bench, Sanded
+  126930, -- Redoran Bench, Fungal Cushion
+  126929, -- Redoran Settee, Sanded
+  126928, -- Redoran Settee, Fungal Cushion
+  126927, -- Redoran Bed, Single
+  126926, -- Hlaalu Bed, Single
+  126924, -- Redoran Bed, Double Pillow
+  126922, -- Hlaalu Bed, Canopy
+  126921, -- Hlaalu Bed, Double Pillow
+  126920, -- Hlaalu Bed, Single Pillow
+  126918, -- Hlaalu Table, Formal Floral
+  126917, -- Dres Table, Kitchen
+  126914, -- Hlaalu Chair, Polished
+  126857, -- Dwarven Pipeline, Junction
+  126911, -- Hlaalu Stool, Polished
+  126909, -- Hlaalu Bench, Polished
+  126906, -- Hlaalu Settee, Mossy Cushion
+  126904, -- Redoran Urn, Dusky Marble
+  126901, -- Hlaalu Amphora, Sealed Orichalcum
+  126900, -- Hlaalu Jar, Sealed Malachite
+  126873, -- Dwarven Bowl, Forged Serving
+  126895, -- Dwarven Lantern, Oil
+  126885, -- Dwarven Cannister, Sealed
+  121191, -- Mantikora Horns, Wall Mount
+  126883, -- Dwarven Platform, Steps
+  126882, -- Dwarven Plate, Forged
+  126880, -- Dwarven Amphora, Sealed
+  126879, -- Dwarven Jug, Sealed
+  121106, -- Common Cargo Crate, Dry
+  121215, -- Redguard Canopy, Dusk
+  126896, -- Dwarven Lamppost, Powered
+  126859, -- Dwarven Pipeline, Column
+  126858, -- Dwarven Pipeline, Full Column
+  126912, -- Hlaalu Armchair, Mossy Cushion
+  126855, -- Dwarven Pipe, Corner
+  126853, -- Dwarven Pipe, Full Column
+  126851, -- Dwarven Pipe, Quarter Column
+  126849, -- Dwarven Pipe Cap, Bolted
+  126842, -- Daedric Chandelier, Ritual
+  126838, -- Daedric Base, Ashen
+  126985, -- Telvanni End Table, Organic
+  126835, -- Daedric Candles, Ritual Set
+  121102, -- Chicken Dinner, Display
+  126583, -- Target Centurion, Robust Refabricated
+  126884, -- Dwarven Vessel, Sealed
+  121189, -- Haj Mota Head, Wall Mount
+  121184, -- Antlers, Wall Mount
+  127091, -- Hlaalu Lantern, Oversized Vellum
+  121174, -- Sack of Grain
+  127098, -- Telvanni Lantern, Organic Azure
+  126839, -- Daedric Platform, Ashen
+  127074, -- Indoril Brazier, Knotwork
+  126876, -- Dwarven Candlestick, Orrery
+  121105, -- Common Barrel, Dry
+  121103, -- Chicken Meal, Display
+  126944, -- Hlaalu Desk, Scholar's
+  121098, -- Common Campfire, Outdoor
+  127066, -- Redoran Jar, Jazbay
+  126872, -- Dwarven Bowl, Forged
+  126908, -- Hlaalu Bench, Mossy Cushion
+  126868, -- Dwarven Bookcase, Full
+  121366, -- Orcish Tapestry, Hunt
+  126892, -- Dwarven Chandelier, Barred
+  126948, -- Hlaalu Dresser, Scroll Drawers
+  126864, -- Dwarven Engine, Switch
+  126844, -- Daedric Pedestal, Ritual
+  121157, -- Sack of Rice
+  126960, -- Dres Divider, Chains
+  127079, -- Indoril Candelabra, Temple Chamber
+  121178, -- Horn, Display, Cracked
+  127095, -- Hlaalu Lamp, Portable
+  126940, -- Redoran Chair, Sanded
+  126889, -- Dwarven Urn, Sealed
+  126856, -- Dwarven Pipeline, Elbow
+  127041, -- Indoril Carpet, Grand Sotha Sil
+  126848, -- Dwarven Altar, Stairs
+  127016, -- Dres Incense Stand, Chains
+  127011, -- Dres Cup, Mazte
+  127033, -- Hlaalu Mat, Welcoming
+  126998, -- Ashlander Platter, Ceramic
+  126986, -- Telvanni Bookcase, Organic
+  126994, -- Redoran Bowl, Empty
+  126990, -- Telvanni Table, Organic Grand
+  126953, -- Hlaalu End Table, Formal Scales
+  121211, -- Orcish Effigy, Mammoth
+  126852, -- Dwarven Pipe, Half Column
+  121205, -- Nord Drinking Horn, Display
+  126957, -- Hlaalu Nightstand, Scholar's
+  127037, -- Dres Rug, Chains
 }

diff --git a/data/03_Reach/HotR_AchievementVendors.lua b/data/03_Reach/HotR_AchievementVendors.lua
index 1880830..c8d1c0b 100644
--- a/data/03_Reach/HotR_AchievementVendors.lua
+++ b/data/03_Reach/HotR_AchievementVendors.lua
@@ -1,250 +1,250 @@
 FurC.AchievementVendors[FURC_REACH] = {
-	["Coldharbour, Cicero's General Goods"] = {
-		[GetString(FURC_AV_KRR)] = {
-			[130273] = { -- Boulder, Coldharbour Fan
-				itemPrice 	= 5000,
-			},
-			[130274] = { -- Boulder, Coldharbour Shard
-				itemPrice 	= 5000,
-			},
-			[130275] = { -- Boulder, Coldharbour Spikes
-				itemPrice 	= 5000,
-			},
-			[130276] = { -- Boulder, Coldharbour Spikes
-				itemPrice 	= 250,
-			},
-			[131421] = { -- Sapling, Withered Thicket
-				itemPrice 	= 250,
-			},
-			[130279] = { -- Tree, Petrified AShen
-				itemPrice 	= 2500,
-			},
-			[130278] = { -- Tree, Strong Withered
-				itemPrice 	= 5000,
-			},
-			[130277] = { -- Tree, Towering Withered
-				itemPrice 	= 5000,
-			},
-		}
-	},
-	 ["Glenumbra, Daggerfall, The Rosy Lion"] = {
-		[GetString(FURC_AV_ROH)] = {
+  ["Coldharbour, Cicero's General Goods"] = {
+    [GetString(FURC_AV_KRR)] = {
+      [130273] = { -- Boulder, Coldharbour Fan
+        itemPrice   = 5000,
+      },
+      [130274] = { -- Boulder, Coldharbour Shard
+        itemPrice   = 5000,
+      },
+      [130275] = { -- Boulder, Coldharbour Spikes
+        itemPrice   = 5000,
+      },
+      [130276] = { -- Boulder, Coldharbour Spikes
+        itemPrice   = 250,
+      },
+      [131421] = { -- Sapling, Withered Thicket
+        itemPrice   = 250,
+      },
+      [130279] = { -- Tree, Petrified AShen
+        itemPrice   = 2500,
+      },
+      [130278] = { -- Tree, Strong Withered
+        itemPrice   = 5000,
+      },
+      [130277] = { -- Tree, Towering Withered
+        itemPrice   = 5000,
+      },
+    }
+  },
+   ["Glenumbra, Daggerfall, The Rosy Lion"] = {
+    [GetString(FURC_AV_ROH)] = {

-			[120706] = {		-- Boulder, Giant Mossy
-				itemPrice 	= 100,
-			},
-			[130309] = {		-- Boulder, Swampy Growth
-				itemPrice 	= 250,
-			},
-			[132221] = {		-- Lily Pads, Swamp Cluster
-				itemPrice 	= 5000,
-			},
-			[130287] = {		-- Log, Fallen Laurel
-				itemPrice 	= 250,
-			},
-			[130288] = {		-- Log, Fallen Pine
-				itemPrice 	= 250,
-			},
-			[130286] = {		-- Log, Rotten Log
-				itemPrice 	= 250,
-			},
-			[130307] = {		-- Rocks, Swampy Slan
-				itemPrice 	= 250,
-			},
-			[130304] = {		-- Saplings, Marsh Cluster
-				itemPrice 	= 250,
-			},
-			[130303] = {		-- Shrug, Swamp Sprig
-				itemPrice 	= 250,
-			},
-			[130289] = {		-- Stump, Mossy Cypress
-				itemPrice 	= 250,
-			},
-			[130290] = {		-- Stump, Rotten Hollow
-				itemPrice 	= 250,
-			},
-			[130315] = {		-- Tree, Ancient Rotten
-				itemPrice 	= 7500,
-			},
-			[130310] = {		-- Tree, Dead Marsh
-				itemPrice 	= 7500,
-			},
-			[130312] = {		-- Tree, Dead Pine
-				itemPrice 	= 2500,
-			},
-			[130311] = {		-- Tree, Dead Swamp
-				itemPrice 	= 5000,
-			},
-			[130313] = {		-- Tree, Gnarled Marsh
-				itemPrice 	= 5000,
-			},
-			[130314] = {		-- Tree, Withering Marsh
-				itemPrice 	= 2500,
-			},
+      [120706] = {    -- Boulder, Giant Mossy
+        itemPrice   = 100,
+      },
+      [130309] = {    -- Boulder, Swampy Growth
+        itemPrice   = 250,
+      },
+      [132221] = {    -- Lily Pads, Swamp Cluster
+        itemPrice   = 5000,
+      },
+      [130287] = {    -- Log, Fallen Laurel
+        itemPrice   = 250,
+      },
+      [130288] = {    -- Log, Fallen Pine
+        itemPrice   = 250,
+      },
+      [130286] = {    -- Log, Rotten Log
+        itemPrice   = 250,
+      },
+      [130307] = {    -- Rocks, Swampy Slan
+        itemPrice   = 250,
+      },
+      [130304] = {    -- Saplings, Marsh Cluster
+        itemPrice   = 250,
+      },
+      [130303] = {    -- Shrug, Swamp Sprig
+        itemPrice   = 250,
+      },
+      [130289] = {    -- Stump, Mossy Cypress
+        itemPrice   = 250,
+      },
+      [130290] = {    -- Stump, Rotten Hollow
+        itemPrice   = 250,
+      },
+      [130315] = {    -- Tree, Ancient Rotten
+        itemPrice   = 7500,
+      },
+      [130310] = {    -- Tree, Dead Marsh
+        itemPrice   = 7500,
+      },
+      [130312] = {    -- Tree, Dead Pine
+        itemPrice   = 2500,
+      },
+      [130311] = {    -- Tree, Dead Swamp
+        itemPrice   = 5000,
+      },
+      [130313] = {    -- Tree, Gnarled Marsh
+        itemPrice   = 5000,
+      },
+      [130314] = {    -- Tree, Withering Marsh
+        itemPrice   = 2500,
+      },

-		},
-	},
-	["the Undaunted Enclaves"] = {
-		["Undaunted Quartermaster"] = {
-			[131428] = { -- Horn of the Reachclans
-				itemPrice 	= 50000,
-			},
-			[131429] = { -- Vine, Bloodroot Wiggler
-				itemPrice 	= 5000,
-			},
-			[131432] = { -- Vine, Bloodroot Stem
-				itemPrice 	= 5000,
-			},
-			[131430] = { -- Vine, Bloodroot Mangler
-				itemPrice 	= 5000,
-			},
-			[131431] = { -- Vine, Bloodroot Grasper
-				itemPrice 	= 5000,
-			},
+    },
+  },
+  ["the Undaunted Enclaves"] = {
+    ["Undaunted Quartermaster"] = {
+      [131428] = { -- Horn of the Reachclans
+        itemPrice   = 50000,
+      },
+      [131429] = { -- Vine, Bloodroot Wiggler
+        itemPrice   = 5000,
+      },
+      [131432] = { -- Vine, Bloodroot Stem
+        itemPrice   = 5000,
+      },
+      [131430] = { -- Vine, Bloodroot Mangler
+        itemPrice   = 5000,
+      },
+      [131431] = { -- Vine, Bloodroot Grasper
+        itemPrice   = 5000,
+      },

-		},
-	},
-	["Eastmarch"] = {
-		[GetString(FURC_AV_FRO)] = {
-			[132215] = { -- Boulder, Granite Cap
-				itemPrice 	= 1000,
-			},
-			[132213] = { -- Boulder, Granite Chunk
-				itemPrice 	= 1000,
-			},
-			[132214] = { -- Boulder, Granite Slab
-				itemPrice 	= 1000,
-			},
-			[132217] = { -- Rock, Granite Chunk
-				itemPrice 	= 5000,
-			},
-			[132209] = { -- Sapling, Foothills Pine
-				itemPrice 	= 250,
-			},
-			[132212] = { -- Shrub, Mountain Thistle
-				itemPrice 	= 250,
-			},
-			[132220] = { -- Stones, Granite Cluster
-				itemPrice 	= 250,
-			},
-			[132219] = { -- Stones, Granite Group
-				itemPrice 	= 250,
-			},
-			[132218] = { -- Stones, Granite Pair
-				itemPrice 	= 250,
-			},
-			[132210] = { -- Tree, Ancient Cedar
-				itemPrice 	= 2500,
-			},
-			[132207] = { -- Tree, Ancient Mountain Pine
-				itemPrice 	= 1000,
-			},
-			[132208] = { -- Tree, Foothills Pine
-				itemPrice 	= 1000,
-			},
-			[132205] = { -- Tree, Hardy Cedar
-				itemPrice 	= 250,
-			},
-			[132206] = { -- Tree, Towering Mountain Pine
-				itemPrice 	= 1000,
-			},
+    },
+  },
+  ["Eastmarch"] = {
+    [GetString(FURC_AV_FRO)] = {
+      [132215] = { -- Boulder, Granite Cap
+        itemPrice   = 1000,
+      },
+      [132213] = { -- Boulder, Granite Chunk
+        itemPrice   = 1000,
+      },
+      [132214] = { -- Boulder, Granite Slab
+        itemPrice   = 1000,
+      },
+      [132217] = { -- Rock, Granite Chunk
+        itemPrice   = 5000,
+      },
+      [132209] = { -- Sapling, Foothills Pine
+        itemPrice   = 250,
+      },
+      [132212] = { -- Shrub, Mountain Thistle
+        itemPrice   = 250,
+      },
+      [132220] = { -- Stones, Granite Cluster
+        itemPrice   = 250,
+      },
+      [132219] = { -- Stones, Granite Group
+        itemPrice   = 250,
+      },
+      [132218] = { -- Stones, Granite Pair
+        itemPrice   = 250,
+      },
+      [132210] = { -- Tree, Ancient Cedar
+        itemPrice   = 2500,
+      },
+      [132207] = { -- Tree, Ancient Mountain Pine
+        itemPrice   = 1000,
+      },
+      [132208] = { -- Tree, Foothills Pine
+        itemPrice   = 1000,
+      },
+      [132205] = { -- Tree, Hardy Cedar
+        itemPrice   = 250,
+      },
+      [132206] = { -- Tree, Towering Mountain Pine
+        itemPrice   = 1000,
+      },
             [132211] = { -- Ferns, Mountain Cluster
                 itemPrice = 250,
             }

-		},
-	},
-	["Auridon, Skywatch"] = {
-		[GetString(FURC_AV_MAL)] = {
-			[120652] = { -- Boulder, Flat Lichen
-				itemPrice 	= 100,
-			},
-			[120651] = { -- Boulder, Grey Saddle
-				itemPrice 	= 100,
-			},
-			[120648] = { -- Boulder, Lichen Covered
-				itemPrice 	= 100,
-			},
+    },
+  },
+  ["Auridon, Skywatch"] = {
+    [GetString(FURC_AV_MAL)] = {
+      [120652] = { -- Boulder, Flat Lichen
+        itemPrice   = 100,
+      },
+      [120651] = { -- Boulder, Grey Saddle
+        itemPrice   = 100,
+      },
+      [120648] = { -- Boulder, Lichen Covered
+        itemPrice   = 100,
+      },

-			[120672] = { -- Hedge, Green Short
-				itemPrice 	= 1000,
-			},
-			[120673] = { -- Hedge, Long Horseshoe
-				itemPrice 	= 2500,
-			},
-			[120671] = { -- Hedge, Small Horseshoe
-				itemPrice 	= 1250,
-			},
-			[120674] = { -- Hedge, Tall Green
-				itemPrice 	= 1250,
-			},
-			[121005] = { -- Hedge, Wall Arc
-				itemPrice 	= 3000,
-			},
+      [120672] = { -- Hedge, Green Short
+        itemPrice   = 1000,
+      },
+      [120673] = { -- Hedge, Long Horseshoe
+        itemPrice   = 2500,
+      },
+      [120671] = { -- Hedge, Small Horseshoe
+        itemPrice   = 1250,
+      },
+      [120674] = { -- Hedge, Tall Green
+        itemPrice   = 1250,
+      },
+      [121005] = { -- Hedge, Wall Arc
+        itemPrice   = 3000,
+      },

-			[120653] = { -- Rock, Slanted Lichen
-				itemPrice 	= 100,
-			},
-			[120655] = { -- Stone, Slanted Lichen
-				itemPrice 	= 100,
-			},
-			[120654] = { -- Stone, Slanted Rough
-				itemPrice 	= 100,
-			},
-			[120656] = { -- Stones, Gray Mossy
-				itemPrice 	= 100,
-			},
-			[120675] = { -- Topiary, Manicured Evergreen
-				itemPrice 	= 2000,
-			},
-			[120676] = { -- Topiary, Pruned Evergreen
-				itemPrice 	= 1000,
-			},
+      [120653] = { -- Rock, Slanted Lichen
+        itemPrice   = 100,
+      },
+      [120655] = { -- Stone, Slanted Lichen
+        itemPrice   = 100,
+      },
+      [120654] = { -- Stone, Slanted Rough
+        itemPrice   = 100,
+      },
+      [120656] = { -- Stones, Gray Mossy
+        itemPrice   = 100,
+      },
+      [120675] = { -- Topiary, Manicured Evergreen
+        itemPrice   = 2000,
+      },
+      [120676] = { -- Topiary, Pruned Evergreen
+        itemPrice   = 1000,
+      },

-			[120670] = { -- Tree, Sturdy Jungle
-				itemPrice 	= 250,
-			},
-			[120664] = { -- Tree, Tiered Light Cherry
-				itemPrice 	= 15000,
-			},
-			[120665] = { -- Tree, Tiered Pink Cherry
-				itemPrice 	= 15000,
-			},
-			[120666] = { -- Tree, Tiered White Cherry
-				itemPrice 	= 25000,
-			},
-			[120657] = { -- Tree, twisted Pink cherry
-				itemPrice 	= 15000,
-			},
-			[120667] = { -- Tree, twisted white cherry
-				itemPrice 	= 12000,
-			},
-			[120659] = { -- Trees, Crooked Swamp
-				itemPrice 	= 100,
-			},
-			[120668] = {		-- Tree, Squat Pink Cherry
-				itemPrice 	= 10000,
-			},
-			[120669] = {		-- Tree, Squat White Cherry
-				itemPrice 	= 10000,
-			},
+      [120670] = { -- Tree, Sturdy Jungle
+        itemPrice   = 250,
+      },
+      [120664] = { -- Tree, Tiered Light Cherry
+        itemPrice   = 15000,
+      },
+      [120665] = { -- Tree, Tiered Pink Cherry
+        itemPrice   = 15000,
+      },
+      [120666] = { -- Tree, Tiered White Cherry
+        itemPrice   = 25000,
+      },
+      [120657] = { -- Tree, twisted Pink cherry
+        itemPrice   = 15000,
+      },
+      [120667] = { -- Tree, twisted white cherry
+        itemPrice   = 12000,
+      },
+      [120659] = { -- Trees, Crooked Swamp
+        itemPrice   = 100,
+      },
+      [120668] = {    -- Tree, Squat Pink Cherry
+        itemPrice   = 10000,
+      },
+      [120669] = {    -- Tree, Squat White Cherry
+        itemPrice   = 10000,
+      },

-		},
+    },

-	}
+  }

 }
 function tableMerge(t1, t2)
-	if nil == t2 and nil == t1 then
-		return {}
-	elseif nil == t2 then
-		return t1
-	elseif nil == t1 then
-		return t2
-	end
+  if nil == t2 and nil == t1 then
+    return {}
+  elseif nil == t2 then
+    return t1
+  elseif nil == t1 then
+    return t2
+  end

     for k,v in pairs(t2) do
-		t1[k] = v
+    t1[k] = v
     end
     return t1
 end
diff --git a/data/03_Reach/HotR_LuxuryFurnisher.lua b/data/03_Reach/HotR_LuxuryFurnisher.lua
index 46c2074..6b839d9 100644
--- a/data/03_Reach/HotR_LuxuryFurnisher.lua
+++ b/data/03_Reach/HotR_LuxuryFurnisher.lua
@@ -2,69 +2,20 @@ FurC.LuxuryFurnisher = FurC.LuxuryFurnisher or {}

 FurC.LuxuryFurnisher[FURC_REACH] = {

--- Oct. 21
-[132155] = { -- Witch's Torch, Wretched
-		itemPrice 	= 5000,
-		itemDate	= "2017-10-20",
-	},
-	[132154] = { -- Witch's Totem, Bog
-		itemPrice 	= 50000,
-		itemDate	= "2017-10-20",
-	},
-	[132153] = { -- Witch's Tree, Captive
-		itemPrice 	= 35000,
-		itemDate	= "2017-10-20",
-	},

-	-- Oct. 14
-	[119977] = { -- Orcish War Totem
-		itemPrice 	= 5000,
-		itemDate	= "2017-10-13",
-	},
-	[119978] = { -- Orcish Battle Totem
-		itemPrice 	= 7500,
-		itemDate	= "2017-10-13",
-	},
-	[119980] = { -- Orchish Totem
-		itemPrice 	= 10000,
-		itemDate	= "2017-10-13",
-	},
+  -- Oct. 14
+  [119977] = { -- Orcish War Totem
+    itemPrice   = 5000,
+    itemDate  = "2017-10-13",
+  },
+  [119978] = { -- Orcish Battle Totem
+    itemPrice   = 7500,
+    itemDate  = "2017-10-13",
+  },
+  [119980] = { -- Orchish Totem
+    itemPrice   = 10000,
+    itemDate  = "2017-10-13",
+  },

-	[132149] = { -- Orcish War Totem
-		itemPrice 	= 20000,
-		itemDate	= "2017-10-13",
-	},
-	[132150] = { -- Orcish Battle Totem
-		itemPrice 	= 20000,
-		itemDate	= "2017-10-13",
-	},
-	[132151] = { -- Orchish Totem
-		itemPrice 	= 20000,
-		itemDate	= "2017-10-13",
-	},
-	[132152] = { -- Orchish Totem
-		itemPrice 	= 35000,
-		itemDate	= "2017-10-13",
-	},
-
-	-- Oct. 7
-	[132145] = { -- Orsinium Tent, Chief’s
-		itemPrice 	= 15000,
-		itemDate	= "2017-10-06",
-	},
-	[132146] = { -- Orsinium Relief, Malacath
-		itemPrice 	= 25000,
-		itemDate	= "2017-10-06",
-	},
-	[132148] = { -- Orsinium Statue, Head
-		itemPrice 	= 25000,
-		itemDate	= "2017-10-06",
-	},
-	[132147] = { -- Orsinium Statue, Honor’s Rest
-		itemPrice 	= 25000,
-		itemDate	= "2017-10-06",
-	},
-
-

 }
diff --git a/data/03_Reach/HotR_Recipes.lua b/data/03_Reach/HotR_Recipes.lua
index 7583080..6549d92 100644
--- a/data/03_Reach/HotR_Recipes.lua
+++ b/data/03_Reach/HotR_Recipes.lua
@@ -1,30 +1,30 @@
 FurC.Recipes = FurC.Recipes or {}
 FurC.Recipes[FURC_REACH] = {
-	132179, -- Blueprint: Witches Totem, Antler Charms
-	132188, -- Praxis: Ayleid Bookshelf, Cluttered
-	132195, -- Blueprint: Telvanni Candelabra, Masterwork
-	132194, -- Design: Mammoth Cheese, Mastercrafted
-	132186, -- Diagram: Daedric Cage, Hanging
-	132192, -- Pattern: Dres Sewing Kit, Master's
-	132167, -- Praxis: Hagraven Cauldron, Rough Stone
-	132193, -- Praxis: Hlaalu Bath Tub, Masterwork
-	132191, -- Diagram: Dwarven Gyroscope, Masterwork
-	132190, -- Formula: Mages Apparatus, Master
-	132183, -- Diagram: Daedric Fence, Section
-	132189, -- Diagram: Ayleid Brazier, Fiery
-	132196, -- Pattern: Witches Corpse, Wrapped
-	132187, -- Praxis: Ayleid Bookcase, Cluttered
-	132184, -- Praxis: Daedric Doorway, Spiked
-	132185, -- Diagram: Daedric Brazier, Coldharbour
-	132173, -- Blueprint: Witches Brazier, Primitive Log
-	132342, -- Praxis: Ayleid Table, Carved
-	132343, -- Praxis: Ayleid Bench, Carved
-	132344, -- Diagram: Ayleid Brazier, Welkynd Holder
-	132187, -- Praxis: Ayleid Bookcase, Cluttered
-	132188, -- Praxis: Ayleid Bookshelf, Cluttered
-	132189, -- Diagram: Ayleid Brazier, Fiery
-	132167, -- Praxis: Hagraven Cauldron, Rough Stone
-	132196, -- Pattern: Witches Corpse, Wrapped
-	132173, -- Blueprint: Witches Brazier, Primitive Log
-	132179, -- Blueprint: Witches Totem, Antler Charms
+  132179, -- Blueprint: Witches Totem, Antler Charms
+  132188, -- Praxis: Ayleid Bookshelf, Cluttered
+  132195, -- Blueprint: Telvanni Candelabra, Masterwork
+  132194, -- Design: Mammoth Cheese, Mastercrafted
+  132186, -- Diagram: Daedric Cage, Hanging
+  132192, -- Pattern: Dres Sewing Kit, Master's
+  132167, -- Praxis: Hagraven Cauldron, Rough Stone
+  132193, -- Praxis: Hlaalu Bath Tub, Masterwork
+  132191, -- Diagram: Dwarven Gyroscope, Masterwork
+  132190, -- Formula: Mages Apparatus, Master
+  132183, -- Diagram: Daedric Fence, Section
+  132189, -- Diagram: Ayleid Brazier, Fiery
+  132196, -- Pattern: Witches Corpse, Wrapped
+  132187, -- Praxis: Ayleid Bookcase, Cluttered
+  132184, -- Praxis: Daedric Doorway, Spiked
+  132185, -- Diagram: Daedric Brazier, Coldharbour
+  132173, -- Blueprint: Witches Brazier, Primitive Log
+  132342, -- Praxis: Ayleid Table, Carved
+  132343, -- Praxis: Ayleid Bench, Carved
+  132344, -- Diagram: Ayleid Brazier, Welkynd Holder
+  132187, -- Praxis: Ayleid Bookcase, Cluttered
+  132188, -- Praxis: Ayleid Bookshelf, Cluttered
+  132189, -- Diagram: Ayleid Brazier, Fiery
+  132167, -- Praxis: Hagraven Cauldron, Rough Stone
+  132196, -- Pattern: Witches Corpse, Wrapped
+  132173, -- Blueprint: Witches Brazier, Primitive Log
+  132179, -- Blueprint: Witches Totem, Antler Charms
 }
diff --git a/data/03_Reach/HotR_Rollis.lua b/data/03_Reach/HotR_Rollis.lua
new file mode 100644
index 0000000..1d443b5
--- /dev/null
+++ b/data/03_Reach/HotR_Rollis.lua
@@ -0,0 +1,10 @@
+FurC.Rolis_Recipes = FurC.Rolis_Recipes or {}
+
+FurC.Rolis_Recipes[FURC_REACH] = {
+  [132195] = true, -- Telvanni Candelabra, Masterwork
+  [132194] = true, -- Mammoth Cheese, Mastercrafted
+  [132191] = true, -- Dwarven Gyroscope
+  [132190] = true, -- Mages Apparatus, Master
+  [132192] = true, -- Dres Sewing Kit
+  [132193] = true, -- Hlaalu Bathtub, Masterwork
+}
diff --git a/data/04_Clockwork/CC_AchievementVendors.lua b/data/04_Clockwork/CC_AchievementVendors.lua
index f42ea2b..11dabe0 100644
--- a/data/04_Clockwork/CC_AchievementVendors.lua
+++ b/data/04_Clockwork/CC_AchievementVendors.lua
@@ -1,130 +1,130 @@


 local bookList = {
-	[134553] = { -- The Truth in Sequence, Volume 1
-		itemPrice = 2000,
-	},
-	[134554] = { -- The Truth in Sequence, Volume 2
-		itemPrice = 2000,
-	},
-	[134555] = { -- The Truth in Sequence, Volume 3
-		itemPrice = 2000,
-	},
-	[134556] = { -- The Truth in Sequence, Volume 4
-		itemPrice = 2000,
-	},
-	[134557] = { -- The Truth in Sequence, Volume 5
-		itemPrice = 2000,
-	},
-	[134558] = { -- The Truth in Sequence, Volume 6
-		itemPrice = 2000,
-	},
-	[134559] = { -- The Truth in Sequence, Volume 7
-		itemPrice = 2000,
-	},
-	[134560] = { -- The Truth in Sequence, Volume 8
-		itemPrice = 2000,
-	},
-	[134561] = { -- The Truth in Sequence, Volume 9
-		itemPrice = 2000,
-	},
-	[134562] = { -- The Truth in Sequence, Volume 10
-		itemPrice = 2000,
-	},
+  [134548] = { -- The Truth in Sequence, Volume 1
+    itemPrice = 2000,
+  },
+  [134549] = { -- The Truth in Sequence, Volume 2
+    itemPrice = 2000,
+  },
+  [134550] = { -- The Truth in Sequence, Volume 3
+    itemPrice = 2000,
+  },
+  [134551] = { -- The Truth in Sequence, Volume 4
+    itemPrice = 2000,
+  },
+  [134552] = { -- The Truth in Sequence, Volume 5
+    itemPrice = 2000,
+  },
+  [134553] = { -- The Truth in Sequence, Volume 6
+    itemPrice = 2000,
+  },
+  [134554] = { -- The Truth in Sequence, Volume 7
+    itemPrice = 2000,
+  },
+  [134565] = { -- The Truth in Sequence, Volume 8
+    itemPrice = 2000,
+  },
+  [134566] = { -- The Truth in Sequence, Volume 9
+    itemPrice = 2000,
+  },
+  [134567] = { -- The Truth in Sequence, Volume 10
+    itemPrice = 2000,
+  },
 }

 FurC.Books[FURC_CLOCKWORK] = bookList
 FurC.AchievementVendors[FURC_CLOCKWORK] = {

-	["The Brass Citadel, Market"] = {
-        ["Razoufa as part of a collection"] = bookList,
-		["Razoufa"] = {
-			[134285] = { -- Active Fabrication Tank
-				itemPrice 	= 75000,
-				achievement = 2049, -- Hero of Clockwork City
-			},
-			[134286] = { -- Clockwork Stylus
-				itemPrice   = 3000,
-				achievement = 2068, -- CC Adventurer
-			},
-			[134289] = { -- Energetic Anima Core
-				itemPrice   = 15000,
-				achievement = 2072, -- Brass Fortress Quarter Master
-			},
-			[134284] = { -- Mysterious Clockwork Sphere
-				itemPrice = 35000,
-				achievement = 2018, -- CC Master explorer
-			},
-			[134288] = { -- Skeleton Key Replica
-				itemPrice = 7500,
-				achievement = 2064, -- The Burden Of Knowledge
-			},
-			[134283] = { -- The motionless Guardian
-				itemPrice = 12000,
-				achievement = 2067, -- Honorary Blackfeather
-			},
-			[134547] = { -- The Truth in Sequence
-				itemPrice = 20000,
-				achievement = 2069, -- Grand Adventurer
-			},
-		},
-		["Mulvise Valyn"] = {
-			[134304] = { -- Boulder, Basalt Slap
-				itemPrice = 1000,
-			},
-			[134292] = { -- Boulder, Metallic Rubble
-				itemPrice = 500,
-			},
-			[134293] = { -- Boulder, Metallic Shard
-				itemPrice = 500,
-			},
-			[134305] = { -- Clockwork Junk Heap, Small
-				itemPrice = 1000,
-			},
-			[134303] = { -- Rock, Basalt Slab
-				itemPrice = 500,
-			},
-			[134296] = { -- Rocks, Sintered Cluster
-				itemPrice = 1000,
-			},
-			[134294] = { -- Rocks, Sintered Column
-				itemPrice = 1000,
-			},
-			[134295] = { -- Rocks, Sintered Pile
-				itemPrice = 1000,
-			},
-			[134297] = { -- Scavenged Grating, Narrow
-				itemPrice = 500,
-			},
-			[134298] = { -- Scavenged Grating, Wide
-				itemPrice = 500,
-			},
-			[134301] = { -- Scavenged Plate, Ornate
-				itemPrice = 500,
-			},
-			[134299] = { -- Scavenged Plate, Plain
-				itemPrice = 500,
-			},
-			[134300] = { -- Scavenged Plate, Wide
-				itemPrice = 500,
-			},
-			[134302] = { -- Scavenged Support, Straight
-				itemPrice = 500,
-			},
-		},
-	},
+  ["The Brass Citadel, Market"] = {
+    ["Razoufa as part of a collection"] = bookList,
+    ["Razoufa"] = {
+      [134285] = { -- Active Fabrication Tank
+        itemPrice   = 75000,
+        achievement = 2049, -- Hero of Clockwork City
+      },
+      [134286] = { -- Clockwork Stylus
+        itemPrice   = 3000,
+        achievement = 2068, -- CC Adventurer
+      },
+      [134289] = { -- Energetic Anima Core
+        itemPrice   = 15000,
+        achievement = 2072, -- Brass Fortress Quarter Master
+        },
+      [134284] = { -- Mysterious Clockwork Sphere
+        itemPrice = 35000,
+        achievement = 2018, -- CC Master explorer
+      },
+      [134288] = { -- Skeleton Key Replica
+        itemPrice = 7500,
+        achievement = 2064, -- The Burden Of Knowledge
+      },
+      [134283] = { -- The motionless Guardian
+        itemPrice = 12000,
+        achievement = 2067, -- Honorary Blackfeather
+      },
+      [134547] = { -- The Truth in Sequence
+        itemPrice = 20000,
+        achievement = 2069, -- Grand Adventurer
+      },
+    },
+    ["Mulvise Valyn"] = {
+      [134304] = { -- Boulder, Basalt Slap
+        itemPrice = 1000,
+      },
+      [134292] = { -- Boulder, Metallic Rubble
+        itemPrice = 500,
+      },
+      [134293] = { -- Boulder, Metallic Shard
+        itemPrice = 500,
+      },
+      [134305] = { -- Clockwork Junk Heap, Small
+        itemPrice = 1000,
+      },
+      [134303] = { -- Rock, Basalt Slab
+        itemPrice = 500,
+      },
+      [134296] = { -- Rocks, Sintered Cluster
+        itemPrice = 1000,
+      },
+      [134294] = { -- Rocks, Sintered Column
+        itemPrice = 1000,
+      },
+      [134295] = { -- Rocks, Sintered Pile
+        itemPrice = 1000,
+      },
+      [134297] = { -- Scavenged Grating, Narrow
+        itemPrice = 500,
+      },
+      [134298] = { -- Scavenged Grating, Wide
+        itemPrice = 500,
+      },
+      [134301] = { -- Scavenged Plate, Ornate
+        itemPrice = 500,
+      },
+      [134299] = { -- Scavenged Plate, Plain
+        itemPrice = 500,
+      },
+      [134300] = { -- Scavenged Plate, Wide
+        itemPrice = 500,
+      },
+      [134302] = { -- Scavenged Support, Straight
+        itemPrice = 500,
+      },
+    },
+  },

-	[GetString(FURC_AV_CAPITAL)] = {
-		[GetString(FURC_AV_HER)] = {
-			[134291] = { -- New Life Bonfire
-				itemPrice = 10000,
-				achievement = 1671,
-			},
-			[134290] = { -- New Life Celebrant's Standard
-				itemPrice = 2500,
-				achievement = 1674,
-			}
-		},
-	},
+  [GetString(FURC_AV_CAPITAL)] = {
+    [GetString(FURC_AV_HER)] = {
+      [134291] = { -- New Life Bonfire
+        itemPrice = 10000,
+        achievement = 1671,
+      },
+      [134290] = { -- New Life Celebrant's Standard
+        itemPrice = 2500,
+        achievement = 1674,
+      }
+    },
+  },
 }

diff --git a/data/04_Clockwork/CC_LuxuryFurnisher.lua b/data/04_Clockwork/CC_LuxuryFurnisher.lua
index 5ccd14c..115f75c 100644
--- a/data/04_Clockwork/CC_LuxuryFurnisher.lua
+++ b/data/04_Clockwork/CC_LuxuryFurnisher.lua
@@ -1,226 +1,16 @@
 FurC.LuxuryFurnisher = FurC.LuxuryFurnisher or {}
 FurC.LuxuryFurnisher[FURC_CLOCKWORK] = {
-	[134466] = { -- Ayleid Sconce, Empty
-		itemPrice	= 4000,
-		itemDate	= "2018-01-27",
-	},
-	[134467] = { -- Culanda Stone ,Glowing
-		itemPrice	= 5000,
-		itemDate	= "2018-01-27",
-	},
-	[134465] = { -- Varla Stone ,Glowing
-		itemPrice	= 5000,
-		itemDate	= "2018-01-27",
-	},
-	[134463] = { -- Riekling Brazier, Ceremonial
-		itemPrice	= 4000,
-		itemDate	= "2018-01-19",
-	},
-	[134462] = { -- Riekling Grinding Stone
-		itemPrice	= 450,
-		itemDate	= "2018-01-19",
-	},
-	[134461] = { -- Riekling Tanning Rack, Stretched
-		itemPrice	= 450,
-		itemDate	= "2018-01-19",
-	},
-	[134457] = {	-- Riekling Bedding, Icy Straw
-		itemPrice 	= 2500,
-		itemDate	= "2018-01-12",
-	},
-	[134458] = {	-- Riekling Pelt, Boar
-		itemPrice 	= 4000,
-		itemDate	= "2018-01-12",
-	},
-	[134459] = {	-- Riekling Pit, Ash and Bone
-		itemPrice 	= 7500,
-		itemDate	= "2018-01-12",
-	},
-	[134453] = {	-- Ancient Orcish Counterweight
-		itemPrice 	= 20000,
-		itemDate	= "2018-01-05",
-	},
-	[134450] = {	-- Seal of Clan Morkul, Stone
-		itemPrice 	= 4000,
-		itemDate	= "2018-01-05",
-	},
-	[134451] = {	-- Seal of Clan Shatul, Stone
-		itemPrice 	= 4000,
-		itemDate	= "2018-01-05",
-	},
-	[134452] = {	-- Seal of Clan Tumnosh, Stone
-		itemPrice 	= 4000,
-		itemDate	= "2018-01-05",
-	},
-	-- Dec. 30thst
-	[134442] = {	-- Seal of Clan Bagrakh, Stone
-		itemPrice 	= 4000,
-		itemDate	= "2017-12-29",
-	},
-	[134443] = {	-- Seal of Clan Fharun, Stone
-		itemPrice 	= 4000,
-		itemDate	= "2017-12-29",
-	},
-	[134444] = {	-- Seal of Clan Igrun, Stone
-		itemPrice 	= 4000,
-		itemDate	= "2017-12-29",
-	},
-	[134446] = {	-- Ancient Orcish Sarcophagus Lid
-		itemPrice 	= 10000,
-		itemDate	= "2017-12-29",
-	},
-	[134445] = {	-- Ancient Orcish Sarcophagus, Peaked
-		itemPrice 	= 14000,
-		itemDate	= "2017-12-29",
-	},
-	-- Dec. 23rd
-	[134439] = {	-- Clockwork Alchemy Flask
-		itemPrice 	= 3000,
-		itemDate	= "2017-12-22",
-	},
-	[134438] = {	-- Clockwork Alchemy Rack, Tubes
-		itemPrice 	= 3000,
-		itemDate	= "2017-12-22",
-	},
-	[134440] = {	-- Clockwork Alchemy Titration Stand
-		itemPrice 	= 3000,
-		itemDate	= "2017-12-22",
-	},
-	-- Dec. 16th
-	[134435] = {	-- Clockwork Loom, Sturdy
-		itemPrice 	= 20000,
-		itemDate	= "2017-12-15",
-	},
-	[134434] = {	-- Quality Fabric, Stacked
-		itemPrice 	= 450,
-		itemDate	= "2017-12-15",
-	},
-	[134436] = {	-- Spool, Blue Thread
-		itemPrice 	= 450,
-		itemDate	= "2017-12-15",
-	},
-	-- Dec. 8th
-	[134432] = {	-- Banker's Sign, Small
-		itemPrice 	= 3000,
-		itemDate	= "2017-12-08",
-	},
-	[134431] = {	-- Merchant's Sign, Small
-		itemPrice 	= 3000,
-		itemDate	= "2017-12-08",
-	},
-	[134433] = {	-- Stablemaster's Sign, Small
-		itemPrice 	= 3000,
-		itemDate	= "2017-12-08",
-	},
-	-- Dec. 1st
-	[134428] = {	-- Banker's Sign, Large
-		itemPrice 	= 12000,
-		itemDate	= "2017-12-01",
-	},
-	[134429] = {	-- Merchant's Sign, Large
-		itemPrice 	= 12000,
-		itemDate	= "2017-12-01",
-	},
-	[134430] = {	-- Stablemaster's Sign, Large
-		itemPrice 	= 12000,
-		itemDate	= "2017-12-01",
-	},
-	-- Nov. 25th
-	[134424] = {	-- Clockwork Gear Display, Bell Jar
-		itemPrice 	= 2500,
-		itemDate	= "2017-11-24",
-	},
-	[134423] = {	-- Clockwork Gear Display, Tall Jar
-		itemPrice 	= 3000,
-		itemDate	= "2017-11-24",
-	},
-	[134426] = {	-- Clockwork Globe, Stand
-		itemPrice 	= 4000,
-		itemDate	= "2017-11-24",
-	},
-	[134425] = {	-- Clockwork Orrery, Compact
-		itemPrice 	= 20000,
-		itemDate	= "2017-11-24",
-	},
-	-- Nov. 18th
-	[134419] = {	-- Clockwork Calibration Guide
-		itemPrice = 50000,
-		itemDate	= "2017-11-24",
-	},
-	[134420] = {	-- Clockwork Calibration Guide
-		itemPrice = 50000,
-		itemDate	= "2017-11-24",
-	},
-	[134421] = {	-- Clockwork Calibration Guide
-		itemPrice = 50000,
-		itemDate	= "2017-11-24",
-	},
-	[134418] = {	-- Clockwork Telescope, Surveyor's
-		itemPrice = 15000,
-		itemDate	= "2017-11-24",
-	},
-	-- Nov. 18th
-	[134419] = {	-- Clockwork Calibration Guide
-		itemPrice = 50000,
-		itemDate	= "2017-11-17",
-	},
-	[134420] = {	-- Clockwork Calibration Guide
-		itemPrice = 50000,
-		itemDate	= "2017-11-17",
-	},
-	[134421] = {	-- Clockwork Calibration Guide
-		itemPrice = 50000,
-		itemDate	= "2017-11-17",
-	},
-	[134418] = {	-- Clockwork Telescope, Surveyor's
-		itemPrice = 15000,
-		itemDate	= "2017-11-17",
-	},
-	-- Nov. 11th
-	[118285] = {	-- Carcass, Fresh Pheasant
-		itemPrice = 7500,
-		itemDate	= "2017-11-10",
-	},
-	[118292] = {	-- Elk Head, Wall Mount
-		itemPrice = 20000,
-		itemDate	= "2017-11-10",
-	},
-	[116506] = {	-- Orcish Grand Table with Skins
-		itemPrice = 50000,
-		itemDate	= "2017-11-10",
-	},
-	[118243] = {	-- Tapestry, Echatere Pelt
-		itemPrice = 25000,
-		itemDate	= "2017-11-10",
-	},
-	-- Nov. 4th
-	[118286] = {	-- Carcass, Grey Hare
-		itemPrice = 5000,
-		itemDate	= "2017-11-03",
-	},
-	[118281] = {	-- Carcass, Hanging Geese
-		itemPrice = 7000,
-		itemDate	= "2017-11-03",
-	},
-	[118279] = {	-- Deer Head, Wall Mount
-		itemPrice = 15000,
-		itemDate	= "2017-11-03",
-	},
-	[118298] = {	-- Wolf Head, Wall Mount
-		itemPrice = 20000,
-		itemDate	= "2017-11-03",
-	},
-	-- Oct 28th
-	[132143] = {	-- Reach Sapling, Briarheart
-		itemPrice = 50000,
-		itemDate	= "2017-10-27",
-	},
-	[132158] = {	-- Witch's Remains, Offering
-		itemPrice = 50000,
-		itemDate	= "2017-10-27",
-	},
-	[132157] = {	-- Witch's Remains, Sacrificial
-		itemPrice = 50000,
-		itemDate	= "2017-10-27",
-	},
+  [134463] = { -- Riekling Brazier, Ceremonial
+    itemPrice  = 4000,
+    itemDate  = "2018-01-19",
+  },
+  [134462] = { -- Riekling Grinding Stone
+    itemPrice  = 450,
+    itemDate  = "2018-01-19",
+  },
+  [134461] = { -- Riekling Tanning Rack, Stretched
+    itemPrice  = 450,
+    itemDate  = "2018-01-19",
+  },
+
 }
diff --git a/data/04_Clockwork/CC_Recipes.lua b/data/04_Clockwork/CC_Recipes.lua
index f01295d..05dd5ba 100644
--- a/data/04_Clockwork/CC_Recipes.lua
+++ b/data/04_Clockwork/CC_Recipes.lua
@@ -1,72 +1,72 @@
 FurC.Recipes = FurC.Recipes or {}
 FurC.Recipes[FURC_CLOCKWORK] = {
-	134527, -- Design: Clockwork Meal, Dish
-	134512, -- Diagram: Clockwork Table, Octagonal
-	134478, -- Formula: Fabricant Saplings, Electrum
-	134531, -- Diagram: Clockwork Sequence Plaque, Single
-	134543, -- Diagram: Clockwork Wall Machinery, Arched
-	134479, -- Formula: Fabricant Tree, Electrum
-	134486, -- Diagram: Clockwork Barrel, Sealed
-	134505, -- Diagram: Clockwork Drafting Table, Flat
-	134509, -- Diagram: Clockwork Cabinet, Sequence Plaque Storag
-	134500, -- Diagram: Clockwork Furnace, Socketed
-	134484, -- Formula: Fabricant Shrub, Gold
-	134496, -- Praxis: Clockwork Switch, Sturdy
-	134490, -- Diagram: Clockwork Crate, Wide
-	134476, -- Formula: Fabricant Tree, Gnarled Cypress
-	134504, -- Diagram: Clockwork Drafting Table, Raised
-	132188, -- Praxis: Ayleid Bookshelf, Cluttered
-	134477, -- Formula: Fabricant Trees, Clustered Maple
-	134518, -- Diagram: Clockwork Coffer, Robust
-	134515, -- Diagram: Clockwork Wardrobe, Precision Engineered
-	134526, -- Design: Clockwork Meal, Plate
-	134513, -- Diagram: Clockwork Nightstand, Octagonal
-	134546, -- Design: Clockwork Paste Dispenser, Empty
-	134492, -- Diagram: Clockwork Crate, Large Open
-	134487, -- Diagram: Clockwork Barrel, Wide
-	134493, -- Formula: Clockwork Lamppost, Gas
-	134485, -- Formula: Fabricant Shrub, Copper
-	134506, -- Diagram: Clockwork Sequence Spool, Single
-	134525, -- Diagram: Clockwork Mug, Reinforced
-	134582, -- Diagram: Clockwork Shelf, Wall
-	134545, -- Praxis: Clockwork Charging Station, Factotum
-	134508, -- Diagram: Clockwork Lectern, Empty
-	134520, -- Design: Clockwork Cup, Recycled Water
-	134488, -- Diagram: Clockwork Keg, Sturdy
-	134540, -- Praxis: Clockwork Illuminator, Compact
-	134516, -- Design: Clockwork Bowl, Large Nutriment Paste
-	134538, -- Praxis: Clockwork Illuminator, Capsule Tower
-	134517, -- Design: Clockwork Bowl, Nutriment Paste
-	134537, -- Praxis: Clockwork Illuminator, Powered Capsule
-	134536, -- Praxis: Clockwork Illuminator, Solitary Capsule
-	134497, -- Diagram: Clockwork Vent, Octagonal Fan
-	134535, -- Praxis: Clockwork Illuminator, Personal Desk
-	134534, -- Diagram: Clockwork Surveyor's Tripod, Calibrated
-	134483, -- Formula: Fabricant Shrubs, Beryl
-	134533, -- Diagram: Clockwork Flask Stand, Tall
-	134494, -- Diagram: Clockwork Pump, Vertical
-	134489, -- Diagram: Clockwork Crate, Square
-	134532, -- Diagram: Clockwork Flask Stand, Short
-	134530, -- Diagram: Clockwork Sequence Plaques, Unfolded
-	134491, -- Diagram: Clockwork Crate, Large Closed
-	134529, -- Diagram: Clockwork Sequence Plaques, Folded
-	134528, -- Diagram: Clockwork Scales, Precision Calibrated
-	134524, -- Praxis: Clockwork Mortar and Pestle, Sintered
-	134523, -- Praxis: Clockwork Measuring Cup, Sintered
-	134522, -- Design: Clockwork Goblet, Recycled Water
-	134511, -- Diagram: Clockwork Table, Beveled
-	134521, -- Diagram: Clockwork Goblet, Empty
-	134544, -- Praxis: Clockwork Charging Station, Animo Core
-	134519, -- Diagram: Clockwork Cup, Empty
-	134502, -- Diagram: Clockwork Chair, Practical
-	134514, -- Diagram: Clockwork Table, Grand
-	134510, -- Diagram: Clockwork Stool, Practical
-	134539, -- Praxis: Clockwork Illuminator, Compact Stand
-	134507, -- Diagram: Clockwork Sequence Spool, Triple
-	134482, -- Formula: Fabricant Tree, Cobalt Spruce
-	134481, -- Formula: Fabricant Tree, Miniature Cherry Blossom
-	134503, -- Diagram: Clockwork Chair, Reinforced
-	134501, -- Diagram: Clockwork Somnolostation
-	134480, -- Formula: Fabricant Tree, Vibrant Cherry Blossom
-	134498, -- Praxis: Clockwork Control Panel, Single
+  134527, -- Design: Clockwork Meal, Dish
+  134512, -- Diagram: Clockwork Table, Octagonal
+  134478, -- Formula: Fabricant Saplings, Electrum
+  134531, -- Diagram: Clockwork Sequence Plaque, Single
+  134543, -- Diagram: Clockwork Wall Machinery, Arched
+  134479, -- Formula: Fabricant Tree, Electrum
+  134486, -- Diagram: Clockwork Barrel, Sealed
+  134505, -- Diagram: Clockwork Drafting Table, Flat
+  134509, -- Diagram: Clockwork Cabinet, Sequence Plaque Storag
+  134500, -- Diagram: Clockwork Furnace, Socketed
+  134484, -- Formula: Fabricant Shrub, Gold
+  134496, -- Praxis: Clockwork Switch, Sturdy
+  134490, -- Diagram: Clockwork Crate, Wide
+  134476, -- Formula: Fabricant Tree, Gnarled Cypress
+  134504, -- Diagram: Clockwork Drafting Table, Raised
+  132188, -- Praxis: Ayleid Bookshelf, Cluttered
+  134477, -- Formula: Fabricant Trees, Clustered Maple
+  134518, -- Diagram: Clockwork Coffer, Robust
+  134515, -- Diagram: Clockwork Wardrobe, Precision Engineered
+  134526, -- Design: Clockwork Meal, Plate
+  134513, -- Diagram: Clockwork Nightstand, Octagonal
+  134546, -- Design: Clockwork Paste Dispenser, Empty
+  134492, -- Diagram: Clockwork Crate, Large Open
+  134487, -- Diagram: Clockwork Barrel, Wide
+  134493, -- Formula: Clockwork Lamppost, Gas
+  134485, -- Formula: Fabricant Shrub, Copper
+  134506, -- Diagram: Clockwork Sequence Spool, Single
+  134525, -- Diagram: Clockwork Mug, Reinforced
+  134582, -- Diagram: Clockwork Shelf, Wall
+  134545, -- Praxis: Clockwork Charging Station, Factotum
+  134508, -- Diagram: Clockwork Lectern, Empty
+  134520, -- Design: Clockwork Cup, Recycled Water
+  134488, -- Diagram: Clockwork Keg, Sturdy
+  134540, -- Praxis: Clockwork Illuminator, Compact
+  134516, -- Design: Clockwork Bowl, Large Nutriment Paste
+  134538, -- Praxis: Clockwork Illuminator, Capsule Tower
+  134517, -- Design: Clockwork Bowl, Nutriment Paste
+  134537, -- Praxis: Clockwork Illuminator, Powered Capsule
+  134536, -- Praxis: Clockwork Illuminator, Solitary Capsule
+  134497, -- Diagram: Clockwork Vent, Octagonal Fan
+  134535, -- Praxis: Clockwork Illuminator, Personal Desk
+  134534, -- Diagram: Clockwork Surveyor's Tripod, Calibrated
+  134483, -- Formula: Fabricant Shrubs, Beryl
+  134533, -- Diagram: Clockwork Flask Stand, Tall
+  134494, -- Diagram: Clockwork Pump, Vertical
+  134489, -- Diagram: Clockwork Crate, Square
+  134532, -- Diagram: Clockwork Flask Stand, Short
+  134530, -- Diagram: Clockwork Sequence Plaques, Unfolded
+  134491, -- Diagram: Clockwork Crate, Large Closed
+  134529, -- Diagram: Clockwork Sequence Plaques, Folded
+  134528, -- Diagram: Clockwork Scales, Precision Calibrated
+  134524, -- Praxis: Clockwork Mortar and Pestle, Sintered
+  134523, -- Praxis: Clockwork Measuring Cup, Sintered
+  134522, -- Design: Clockwork Goblet, Recycled Water
+  134511, -- Diagram: Clockwork Table, Beveled
+  134521, -- Diagram: Clockwork Goblet, Empty
+  134544, -- Praxis: Clockwork Charging Station, Animo Core
+  134519, -- Diagram: Clockwork Cup, Empty
+  134502, -- Diagram: Clockwork Chair, Practical
+  134514, -- Diagram: Clockwork Table, Grand
+  134510, -- Diagram: Clockwork Stool, Practical
+  134539, -- Praxis: Clockwork Illuminator, Compact Stand
+  134507, -- Diagram: Clockwork Sequence Spool, Triple
+  134482, -- Formula: Fabricant Tree, Cobalt Spruce
+  134481, -- Formula: Fabricant Tree, Miniature Cherry Blossom
+  134503, -- Diagram: Clockwork Chair, Reinforced
+  134501, -- Diagram: Clockwork Somnolostation
+  134480, -- Formula: Fabricant Tree, Vibrant Cherry Blossom
+  134498, -- Praxis: Clockwork Control Panel, Single
 }
\ No newline at end of file
diff --git a/data/05_Dragonbones/AchievementVendors.lua b/data/05_Dragonbones/AchievementVendors.lua
index 46c476e..45a6f7e 100644
--- a/data/05_Dragonbones/AchievementVendors.lua
+++ b/data/05_Dragonbones/AchievementVendors.lua
@@ -1,17 +1,17 @@
 FurC.AchievementVendors[FURC_DRAGONS] = {
-	["the Undaunted Enclaves"] = {
-		["Undaunted Quartermaster"] = {
-
+  ["the Undaunted Enclaves"] = {
+    ["Undaunted Quartermaster"] = {
+
             [134908] = { -- Blackmarrow Banner
-				itemPrice 	= 15000,
-				achievement = 1959, -- Scalecaller Peak Vanquisher
-			},
+        itemPrice   = 15000,
+        achievement = 1959, -- Scalecaller Peak Vanquisher
+      },

-			[134907] = {        --Orb of Stone
+      [134907] = {        --Orb of Stone
                 itemPrice   = 50000,
                 achievement = 1975,
             },

-		},
-	},
+    },
+  },
 }
\ No newline at end of file
diff --git a/data/05_Dragonbones/DragonB_LuxuryFurnisher.lua b/data/05_Dragonbones/DragonB_LuxuryFurnisher.lua
index bb4648a..6f0964a 100644
--- a/data/05_Dragonbones/DragonB_LuxuryFurnisher.lua
+++ b/data/05_Dragonbones/DragonB_LuxuryFurnisher.lua
@@ -1,262 +1,242 @@
 FurC.LuxuryFurnisher = FurC.LuxuryFurnisher or {}
 FurC.LuxuryFurnisher[FURC_DRAGONS] = {

-	[134842] = {	-- Ra Gada Statue, Battlemage
-		itemPrice 	= 25000,
-		itemDate	= "2018-05-19",
-	},
-	[134843] = {	-- Ra Gada Statue, Battlemage
-		itemPrice 	= 25000,
-		itemDate	= "2018-05-19",
-	},
-	[120809] = {	-- Statue Base, Square
-		itemPrice 	= 5000,
-		itemDate	= "2018-05-19",
-	},
-	[120810] = {	-- Statue, Faith
-		itemPrice 	= 25000,
-		itemDate	= "2018-05-19",
-	},
-	[120812] = {	-- Statue, Light
-		itemPrice 	= 25000,
-		itemDate	= "2018-05-19",
-	},
+  [134842] = {  -- Ra Gada Statue, Battlemage
+    itemPrice   = 25000,
+    itemDate  = "2018-05-19",
+  },
+  [134843] = {  -- Ra Gada Statue, Battlemage
+    itemPrice   = 25000,
+    itemDate  = "2018-05-19",
+  },
+  [120809] = {  -- Statue Base, Square
+    itemPrice   = 5000,
+    itemDate  = "2018-05-19",
+  },
+  [120810] = {  -- Statue, Faith
+    itemPrice   = 25000,
+    itemDate  = "2018-05-19",
+  },
+  [120812] = {  -- Statue, Light
+    itemPrice   = 25000,
+    itemDate  = "2018-05-19",
+  },

-	[134839] = {	-- Necromancer's Brazier, Cold Flame
-		itemPrice 	= 10000,
-		itemDate	= "2018-05-12",
-	},
-	[134840] = {	-- Necromancer's Spire, Compact
-		itemPrice 	= 25000,
-		itemDate	= "2018-05-12",
-	},
-	[134841] = {	-- Necromancer's Spire, Huge
-		itemPrice 	= 100000,
-		itemDate	= "2018-05-12",
-	},
+  [134839] = {  -- Necromancer's Brazier, Cold Flame
+    itemPrice   = 10000,
+    itemDate  = "2018-05-12",
+  },
+  [134840] = {  -- Necromancer's Spire, Compact
+    itemPrice   = 25000,
+    itemDate  = "2018-05-12",
+  },
+  [134841] = {  -- Necromancer's Spire, Huge
+    itemPrice   = 100000,
+    itemDate  = "2018-05-12",
+  },

-	[134836] = {	-- Necromancer's Brazier, Flame
-		itemPrice 	= 10000,
-		itemDate	= "2018-05-04",
-	},
-	[134838] = {	-- Necromancer's Spire, Alcove
-		itemPrice 	= 75000,
-		itemDate	= "2018-05-04",
-	},
-	[134837] = {	-- Necromancer's Spire, Narrow
-		itemPrice 	= 50000,
-		itemDate	= "2018-05-04",
-	},
+  [134836] = {  -- Necromancer's Brazier, Flame
+    itemPrice   = 10000,
+    itemDate  = "2018-05-04",
+  },
+  [134838] = {  -- Necromancer's Spire, Alcove
+    itemPrice   = 75000,
+    itemDate  = "2018-05-04",
+  },
+  [134837] = {  -- Necromancer's Spire, Narrow
+    itemPrice   = 50000,
+    itemDate  = "2018-05-04",
+  },


-	[134834] = {	-- Bandages, Blood-Soaked
-		itemPrice 	= 2000,
-		itemDate	= "2018-04-28",
-	},
-	[134835] = {	-- Orcish Burial Urn, Exhumed
-		itemPrice 	= 20000,
-		itemDate	= "2018-04-28",
-	},
-	[120824] = {	-- Body Cage
-		itemPrice 	= 5000,
-		itemDate	= "2018-04-28",
-	},
-	[120829] = {	-- Torture Rack
-		itemPrice 	= 5000,
-		itemDate	= "2018-04-28",
-	},
-	[120828] = {	-- Torture Wheel
-		itemPrice 	= 100000,
-		itemDate	= "2018-04-28",
-	},
+  [134834] = {  -- Bandages, Blood-Soaked
+    itemPrice   = 2000,
+    itemDate  = "2018-04-28",
+  },
+  [134835] = {  -- Orcish Burial Urn, Exhumed
+    itemPrice   = 20000,
+    itemDate  = "2018-04-28",
+  },
+  [120824] = {  -- Body Cage
+    itemPrice   = 5000,
+    itemDate  = "2018-04-28",
+  },
+  [120829] = {  -- Torture Rack
+    itemPrice   = 5000,
+    itemDate  = "2018-04-28",
+  },
+  [120828] = {  -- Torture Wheel
+    itemPrice   = 100000,
+    itemDate  = "2018-04-28",
+  },


-	[134833] = {	-- Gibbet, Hanging Hooked
-		itemPrice 	= 75000,
-		itemDate	= "2018-04-21",
-	},
+  [134833] = {  -- Gibbet, Hanging Hooked
+    itemPrice   = 75000,
+    itemDate  = "2018-04-21",
+  },

-	[120826] = {	-- Iron Cross
-		itemPrice 	= 10000,
-		itemDate	= "2017-04-21",
-	},
-	[120825] = {	-- Iron Cross, Large
-		itemPrice 	= 25000,
-		itemDate	= "2017-04-21",
-	},
-	[120827] = {	-- Iron Maiden, Chained
-		itemPrice 	= 20000,
-		itemDate	= "2017-04-21",
-	},
+  [120826] = {  -- Iron Cross
+    itemPrice   = 10000,
+    itemDate  = "2017-04-21",
+  },
+  [120825] = {  -- Iron Cross, Large
+    itemPrice   = 25000,
+    itemDate  = "2017-04-21",
+  },
+  [120827] = {  -- Iron Maiden, Chained
+    itemPrice   = 20000,
+    itemDate  = "2017-04-21",
+  },



-	[134832] = {	-- Basin of the Divines
-		itemPrice 	= 35000,
-		itemDate	= "2018-04-14",
-	},
-    [120823] = {	-- Sigil Stand
-		itemPrice 	= 15000,
-		itemDate	= "2018-04-14",
-	},
-    [120819] = {	-- Sigil, Kynareth
-		itemPrice 	= 20000,
-		itemDate	= "2018-04-14",
-	},
-    [120820] = {	-- Sigil, Mara
-		itemPrice 	= 20000,
-		itemDate	= "2018-04-14",
-	},
-    [120821] = {	-- Sigil, Stendarr
-		itemPrice 	= 20000,
-		itemDate	= "2018-04-14",
-	},
-    [120822] = {	-- Sigil, Zenithar
-		itemPrice 	= 20000,
-		itemDate	= "2018-04-14",
-	},
+  [134832] = {  -- Basin of the Divines
+    itemPrice   = 35000,
+    itemDate  = "2018-04-14",
+  },
+    [120823] = {  -- Sigil Stand
+    itemPrice   = 15000,
+    itemDate  = "2018-04-14",
+  },
+    [120819] = {  -- Sigil, Kynareth
+    itemPrice   = 20000,
+    itemDate  = "2018-04-14",
+  },
+    [120820] = {  -- Sigil, Mara
+    itemPrice   = 20000,
+    itemDate  = "2018-04-14",
+  },
+    [120821] = {  -- Sigil, Stendarr
+    itemPrice   = 20000,
+    itemDate  = "2018-04-14",
+  },
+    [120822] = {  -- Sigil, Zenithar
+    itemPrice   = 20000,
+    itemDate  = "2018-04-14",
+  },


-    [120823] = {	-- Sigil Stand
-		itemPrice 	= 15000,
-		itemDate	= "2018-04-07",
-	},
-	[120815] = {	-- Sigil, Akatosh
-		itemPrice 	= 20000,
-		itemDate	= "2018-04-07",
-	},
-	[120816] = {	-- Sigil, Arkay
-		itemPrice 	= 20000,
-		itemDate	= "2018-04-07",
-	},
-	[120817] = {	-- Sigil, Dibella
-		itemPrice 	= 20000,
-		itemDate	= "2018-04-07",
-	},
-	[120818] = {	-- Sigil, Julianos
-		itemPrice 	= 20000,
-		itemDate	= "2018-04-07",
-	},
-	[134831] = {	-- Altar of the Divines
-		itemPrice 	= 50000,
-		itemDate	= "2018-04-07",
-	},
+    [120823] = {  -- Sigil Stand
+    itemPrice   = 15000,
+    itemDate  = "2018-04-07",
+  },
+  [120815] = {  -- Sigil, Akatosh
+    itemPrice   = 20000,
+    itemDate  = "2018-04-07",
+  },
+  [120816] = {  -- Sigil, Arkay
+    itemPrice   = 20000,
+    itemDate  = "2018-04-07",
+  },
+  [120817] = {  -- Sigil, Dibella
+    itemPrice   = 20000,
+    itemDate  = "2018-04-07",
+  },
+  [120818] = {  -- Sigil, Julianos
+    itemPrice   = 20000,
+    itemDate  = "2018-04-07",
+  },
+  [134831] = {  -- Altar of the Divines
+    itemPrice   = 50000,
+    itemDate  = "2018-04-07",
+  },

-	[134830] = {	-- Flowers, Blue Starbloom
-		itemPrice 	= 15000,
-		itemDate	= "2018-03-31",
-	},
-	[120888] = {	-- Bat Bloom
-		itemPrice 	= 15000,
-		itemDate	= "2018-03-31",
-	},
-	[120887] = {	-- Fan Bush
-		itemPrice 	= 1000,
-		itemDate	= "2018-03-31",
-	},
-	[120889] = {	-- Glow Bush, Purple
-		itemPrice 	= 20000,
-		itemDate	= "2018-03-31",
-	},
-	-- April, 7-9
-	[120885] = {	-- Alik'r Cactus
-		itemPrice 	= 2000,
-		itemDate	= "2018-03-24",
-	},
-	[120884] = {	-- Buckthorn
-		itemPrice 	= 4000,
-		itemDate	= "2018-03-24",
-	},
-	[120883] = {	-- Voidflower
-		itemPrice 	= 5000,
-		itemDate	= "2018-03-24",
-	},
-	[134829] = {	-- Fern, Woody Slough
-		itemPrice 	= 3000,
-		itemDate	= "2018-03-24",
-	},
-	[120886] = {	-- White Hosta
-		itemPrice 	= 3000,
-		itemDate	= "2018-03-24",
-	},
-	[134828] = {	-- Antler Coral, Branched Spiree
-		itemPrice 	= 100000,
-		itemDate	= "2018-03-17",
-	},
-	[120847] = {	-- Dock Winch
-		itemPrice 	= 4000,
-		itemDate	= "2018-03-17",
-	},
-	[120849] = {	-- Anchor
-		itemPrice 	= 10000,
-		itemDate	= "2018-03-17",
-	},
-	[120848] = {	-- Fishing Pole Rack
-		itemPrice 	= 2500,
-		itemDate	= "2018-03-17",
-	},
-	[121269] = {	-- Ocean Antler Coral
-		itemPrice 	= 7500,
-		itemDate	= "2018-03-31",
-	},
-	[121268] = {	-- Fisher's Catch of the Day Rack
-		itemPrice 	= 5000,
-		itemDate	= "2018-03-10",
-	},
-	[120850] = { -- Harbor Floats
-		itemPrice 	= 5000,
-		itemDate	= "2018-03-10",
-	},
-	[120846] = { -- Dock Rope Wheel
-		itemPrice 	= 3000,
-		itemDate	= "2018-03-10",
-	},
-	[134827] = { -- Mooring Line, Coiled
-		itemPrice 	= 7500,
-		itemDate	= "2018-03-10",
-	},
-	[134826] = { -- Mooring Line, Tidy
-		itemPrice 	= 5000,
-		itemDate	= "2018-03-10",
-	},
-	[120806] = {	-- Hew'S Bane Candlestick
-		itemPrice 	= 2500,
-		itemDate	= "2018-03-03",
-	},
-	[120805] = {	-- Hew's Bane Rug
-		itemPrice 	= 5000,
-		itemDate	= "2018-03-03",
-	},
-	[120807] = {	-- Hew's Bane Well
-		itemPrice 	= 10000,
-		itemDate	= "2018-03-03",
-	},
-	[134825] = {	-- Redguard Tent, Squared Silk
-		itemPrice 	= 100000,
-		itemDate	= "2018-03-03",
-	},
-	[117876] = {	-- Wedding Curtain, Wide
-		itemPrice 	= 7500,
-		itemDate	= "2018-02-10",
-	},
-	[134469] = { -- Ayleid Constellation Stele, the Mage
-		itemPrice	= 20000,
-		itemDate	= "2018-02-30",
-	},
-	[134470] = { -- Ayleid Constellation Stele, Thief
-		itemPrice	= 20000,
-		itemDate	= "2018-02-30",
-	},
-	[134471] = { -- Ayleid Constellation Stele, Warrior
-		itemPrice	= 20000,
-		itemDate	= "2018-02-30",
-	},
-	[117875] = {	-- Wedding Gazebo, Bare
-		itemPrice 	= 35000,
-		itemDate	= "2018-02-17",
-	},
-	[134824] = {	-- Redguard Tent, Rounded Silk
-		itemPrice 	= 100000,
-		itemDate	= "2018-02-24",
-	},
+  [134830] = {  -- Flowers, Blue Starbloom
+    itemPrice   = 15000,
+    itemDate  = "2018-03-31",
+  },
+  [120888] = {  -- Bat Bloom
+    itemPrice   = 15000,
+    itemDate  = "2018-03-31",
+  },
+  [120887] = {  -- Fan Bush
+    itemPrice   = 1000,
+    itemDate  = "2018-03-31",
+  },
+  [120889] = {  -- Glow Bush, Purple
+    itemPrice   = 20000,
+    itemDate  = "2018-03-31",
+  },
+  -- April, 7-9
+  [120885] = {  -- Alik'r Cactus
+    itemPrice   = 2000,
+    itemDate  = "2018-03-24",
+  },
+  [120884] = {  -- Buckthorn
+    itemPrice   = 4000,
+    itemDate  = "2018-03-24",
+  },
+  [120883] = {  -- Voidflower
+    itemPrice   = 5000,
+    itemDate  = "2018-03-24",
+  },
+  [134829] = {  -- Fern, Woody Slough
+    itemPrice   = 3000,
+    itemDate  = "2018-03-24",
+  },
+  [120886] = {  -- White Hosta
+    itemPrice   = 3000,
+    itemDate  = "2018-03-24",
+  },
+  [134828] = {  -- Antler Coral, Branched Spiree
+    itemPrice   = 100000,
+    itemDate  = "2018-03-17",
+  },
+  [120847] = {  -- Dock Winch
+    itemPrice   = 4000,
+    itemDate  = "2018-03-17",
+  },
+  [120849] = {  -- Anchor
+    itemPrice   = 10000,
+    itemDate  = "2018-03-17",
+  },
+  [120848] = {  -- Fishing Pole Rack
+    itemPrice   = 2500,
+    itemDate  = "2018-03-17",
+  },
+  [121269] = {  -- Ocean Antler Coral
+    itemPrice   = 7500,
+    itemDate  = "2018-03-31",
+  },
+  [121268] = {  -- Fisher's Catch of the Day Rack
+    itemPrice   = 5000,
+    itemDate  = "2018-03-10",
+  },
+  [120850] = { -- Harbor Floats
+    itemPrice   = 5000,
+    itemDate  = "2018-03-10",
+  },
+  [120846] = { -- Dock Rope Wheel
+    itemPrice   = 3000,
+    itemDate  = "2018-03-10",
+  },
+  [134827] = { -- Mooring Line, Coiled
+    itemPrice   = 7500,
+    itemDate  = "2018-03-10",
+  },
+  [134826] = { -- Mooring Line, Tidy
+    itemPrice   = 5000,
+    itemDate  = "2018-03-10",
+  },
+  [120806] = {  -- Hew'S Bane Candlestick
+    itemPrice   = 2500,
+    itemDate  = "2018-03-03",
+  },
+  [120805] = {  -- Hew's Bane Rug
+    itemPrice   = 5000,
+    itemDate  = "2018-03-03",
+  },
+  [120807] = {  -- Hew's Bane Well
+    itemPrice   = 10000,
+    itemDate  = "2018-03-03",
+  },
+  [134825] = {  -- Redguard Tent, Squared Silk
+    itemPrice   = 100000,
+    itemDate  = "2018-03-03",
+  },
+  [134824] = {  -- Redguard Tent, Rounded Silk
+    itemPrice   = 100000,
+    itemDate  = "2018-02-24",
+  },
 }
diff --git a/data/05_Dragonbones/DragonB_Recipes.lua b/data/05_Dragonbones/DragonB_Recipes.lua
index 26832f9..974c3c2 100644
--- a/data/05_Dragonbones/DragonB_Recipes.lua
+++ b/data/05_Dragonbones/DragonB_Recipes.lua
@@ -1,8 +1,8 @@
 FurC.Recipes = FurC.Recipes or {}
 FurC.Recipes[FURC_DRAGONS] = {
-	127101, -- Velothi Brazier, Temple - talked to a Russian who sold it
-	127102, -- Praxis: Tribunal Tablet of Almalexia, comfirmed by Almariel
-	134999, -- Praxis: Table, Blackmarrow Slab, drops in Fang Lair
-	127054,	-- Pattern: Redoran Table Runner, Gilded Ochre
-	134998,	-- Pattern: Jester's Pavillon, Open
+  127101, -- Velothi Brazier, Temple - talked to a Russian who sold it
+  127102, -- Praxis: Tribunal Tablet of Almalexia, comfirmed by Almariel
+  134999, -- Praxis: Table, Blackmarrow Slab, drops in Fang Lair
+  127054,  -- Pattern: Redoran Table Runner, Gilded Ochre
+  134998,  -- Pattern: Jester's Pavillon, Open
 }
\ No newline at end of file
diff --git a/data/06_2018/2018_Recipes.lua b/data/06_2018/2018_Recipes.lua
new file mode 100644
index 0000000..651a08e
--- /dev/null
+++ b/data/06_2018/2018_Recipes.lua
@@ -0,0 +1,273 @@
+FurC.Recipes = FurC.Recipes or {}
+
+FurC.Recipes[FURC_SLAVES] = {
+
+  145944, -- Praxis: Murkmire Chair, Engraved
+  145945, -- Praxis: Murkmire Bench, Wide
+  145946, -- Praxis: Murkmire Bench, Armless
+  145947, -- Praxis: Murkmire Bed, Enclosed
+  145948, -- Praxis: Murkmire Pedestal, Low
+  145949, -- Praxis: Murkmire Table, Engraved
+  145950, -- Praxis: Murkmire Brazier, Engraved
+  145951, -- Praxis: Murkmire Bookshelf, Grand
+  145952, -- Praxis: Murkmire Bookshelf, Grand Full
+  145953, -- Praxis: Murkmire Sarcophagus, Empty
+  145954, -- Praxis: Murkmire Sarcophagus Lid
+  145955, -- Praxis: Murkmire Bookshelf
+  145956, -- Praxis: Murkmire Bookshelf, Full
+  145957, -- Praxis: Murkmire Platform, Sectioned
+  145958, -- Praxis: Murkmire Pedestal, Winged
+  145959, -- Praxis: Murkmire Totem, Beacon
+  145960, -- Diagram: Murkmire Brazier, Bowl
+  145961, -- Praxis: Murkmire Hearth Shrine, Sithis Rearing
+  145962, -- Praxis: Murkmire Hearth Shrine, Sithis Coiled
+  145963, -- Praxis: Murkmire Hearth Shrine, Sithis Looming
+  145964, -- Praxis: Murkmire Shrine, Sithis Relief
+  145965, -- Praxis: Murkmire Shrine, Sithis Rearing
+  145966, -- Praxis: Murkmire Shrine, Sithis Figure
+  145967, -- Praxis: Murkmire Shrine, Sithis Coiled
+  145968, -- Design: Murkmire Pot, Large Carved
+  145969, -- Design: Bowl of Worms
+  145970, -- Design: Bowl of Guts
+  145971, -- Design: Bowl of Worms, Large
+  145972, -- Design: Grub Kebabs
+  145973, -- Design: Murkmire Berry Strand
+  145974, -- Design: Murkmire Pot, Handmade
+  145975, -- Design: Melon, Wax
+  145976, -- Design: Dragonfruit, Wax
+  145977, -- Blueprint: Murkmire Platter, Large
+  145978, -- Blueprint: Murkmire Plate, Charger
+  145979, -- Praxis: Murkmire Wall, Stone
+  145980, -- Blueprint: Murkmire Bonding Chimes, Domed
+  145981, -- Formula: Murkmire Lantern, Covered
+  145982, -- Formula: Murkmire Lamp, Hanging Bottle
+  145983, -- Formula: Murkmire Lamp, Hanging Conch
+  145984, -- Formula: Murkmire Sconce, Shell
+  145985, -- Formula: Murkmire Brazier, Shell
+  145986, -- Formula: Murkmire Lamp, Shell
+  145987, -- Design: Murkmire Candlepost, Timber
+  145988, -- Design: Murkmire Candlepost, Driftwood
+  145989, -- Design: Murkmire Candles, Bone Group
+  145990, -- Design: Murkmire Candle, Bone Tall
+  145991, -- Design: Murkmire Candle, Bone Squat
+  145992, -- Blueprint: Murkmire Bed, Carved
+  145993, -- Blueprint: Murkmire Wardrobe, Woven
+  145994, -- Blueprint: Murkmire Chair, Woven
+  141899, -- Praxis: Sacrificial Altar, Hircine
+  141900, -- Blueprint: Ritual Fetish, Hircine
+  146004, -- Blueprint: Murkmire Ramp, Reed
+  146005, -- Blueprint: Murkmire Platform, Reed
+  146006, -- Blueprint: Murkmire Gate, Arched
+  146007, -- Blueprint: Murkmire Wall, Straight
+  146008, -- Blueprint: Murkmire Totem Post, Carved
+  146009, -- Blueprint: Murkmire Wall, Corner Curve
+  146010, -- Pattern: Murkmire Tapestry, Hist Gathering
+  146011, -- Pattern: Murkmire Rug, Hist Gathering
+  146012, -- Pattern: Murkmire Rug, Supine Turtle
+  146013, -- Pattern: Murkmire Rug, Crawling Serpents
+  146014, -- Pattern: Murkmire Rug, Lurking Lizard
+  146015, -- Pattern: Murkmire Tapestry, Xanmeer
+  146016, -- Blueprint: Murkmire Bonding Chimes, Simple
+  146017, -- Blueprint: Murkmire Totem, Wolf-Lizard
+  141898, -- Praxis: Ritual Stone, Hircine
+  141897, -- Praxis: Obelisk, Lord Hircine Ritual
+  141896, -- Sketch: Figurine, The Dragon's Glare
+  145995, -- Blueprint: Murkmire Trunk, Leatherbound
+  145999, -- Blueprint: Murkmire Shelf, Reed
+  145996, -- Blueprint: Murkmire Counter, Cabinet
+  145997, -- Blueprint: Murkmire Counter, Low Cabinet
+  145998, -- Blueprint: Murkmire Table, Woven
+  145915, -- Praxis: Murkmire Desk, Engraved
+  146000, -- Blueprint: Murkmire Shelves, Woven
+  146001, -- Blueprint: Murkmire Shelf, Woven Hanging
+  146002, -- Blueprint: Murkmire Ramp, Marshwood
+  146003, -- Blueprint: Murkmire Walkway, Reed
+}
+
+FurC.Recipes[FURC_WEREWOLF] = {
+  141896, -- Sketch: Figurine, The Dragon's Glare
+  141897, -- Praxis: Obelisk, Lord Hircine Ritual
+  141898, -- Praxis: Ritual Stone, Hircine
+  141899, -- Praxis: Sacrificial Altar, Hircine
+  141900, -- Blueprint: Ritual Fetish, Hircine
+}
+
+FurC.Recipes[FURC_ALTMER] = {
+
+  139573, -- Sketch: Figurine, The Fish and the Unicorn
+  139571, -- Sketch: Figurine, The Sea-Monster's Surprise
+  139572, -- Sketch: Figurine, The Taming of the Gryphon
+  139613, -- Sketch: Alinor Chalice, Delicate
+  139615, -- Sketch: Alinor Chalice, Ornate
+  139616, -- Sketch: Alinor Goblet, Silver Ornate
+  139612, -- Sketch: Alinor Goblet, Silver Plain
+  139614, -- Sketch: Alinor Goblet, Silver Stamped
+  139611, -- Sketch: Alinor Goblet, Simple
+  139575, -- Sketch: Scrimshaw Jewelry Box, Verdant Oval
+  139574, -- Sketch: Scrimshaw Jewelry Box, Vineyard
+  139579, -- Sketch: Scrimshaw, Ancient Vessel
+  139578, -- Sketch: Scrimshaw, Octopus
+  139576, -- Sketch: Scrimshaw, Sea Monster
+  139577, -- Sketch: Scrimshaw, Ship
+  139514, -- Praxis: Alinor Wall, Stone Long
+  139546, -- Praxis: Alinor Bench, Marble
+  139556, -- Blueprint: Alinor Nightstand, Noble
+  139538, -- Blueprint: Alinor Bed, Overhang Full
+  139640, -- Pattern: Alinor Rug, Alinor Seal
+  139524, -- Diagram: Alinor Sconce, Arched Glass
+  139565, -- Blueprint: Alinor Trunk, Noble
+  139540, -- Blueprint: Alinor Bed, Polished Full
+  139550, -- Blueprint: Alinor Armchair, Polished
+  139631, -- Praxis: Alinor Potted Plant, Twin Saplings
+  139512, -- Praxis: Alinor Post, Stone Wall
+  139511, -- Praxis: Alinor Wall, Stone Corner
+  139609, -- Diagram: Alinor Table Setting, Complete
+  139536, -- Blueprint: Alinor Bed, Noble Full
+  139585, -- Diagram: Fireplace Grate, Wrought Iron
+  139604, -- Praxis: Alinor Shrine, Limestone Raised
+  139575, -- Sketch: Scrimshaw Jewelry Box, Verdant Oval
+  139588, -- Praxis: Alinor Fountain, Four-Way Timeworn
+  139608, -- Praxis: Alinor Wall Shrine, Marble
+  139569, -- Blueprint: Alinor Jewelry Box, Peaked
+  139541, -- Blueprint: Alinor Bed, Noble Single
+  139601, -- Praxis: Alinor Bowl, Stemmed Limestone
+  139574, -- Sketch: Scrimshaw Jewelry Box, Vineyard
+  139579, -- Sketch: Scrimshaw, Ancient Vessel
+  139548, -- Blueprint: Alinor Armchair, Overhang
+  139632, -- Praxis: Alinor Windowbox, Purple Wisteria
+  139587, -- Praxis: Alinor Fireplace, Ornate
+  139577, -- Sketch: Scrimshaw, Ship
+  139582, -- Diagram: Alinor Pot, Patterned
+  139581, -- Diagram: Alinor Pot, Hanging Stamped
+  139558, -- Blueprint: Alinor Counter, Polished Drawers
+  139622, -- Blueprint: Alinor Bowl, Carved Wood
+  139498, -- Praxis: Alinor Archway, Timeworn
+  139593, -- Blueprint: Alinor Table, Noble Intimate
+  139637, -- Pattern: Alinor Carpet, Alinor Crescent
+  139634, -- Pattern: Alinor Curtains, Tall Drawn
+  139534, -- Diagram: Alinor Streetlight, Paired Wrought Iron
+  139503, -- Praxis: Alinor Floor, Ballroom Timeworn
+  139544, -- Blueprint: Alinor Bench, Verdant
+  139649, -- Blueprint: Alinor Cabinet, Noble
+  139559, -- Blueprint: Alinor Counter, Polished Corner
+  139490, -- Blueprint: Psijic Table, Small
+  139520, -- Diagram: Alinor Sconce, Crenellated
+  139487, -- Praxis: Book Row, Levitating
+  139485, -- Blueprint: Alinor Pew, Polished
+  139647, -- Praxis: Alinor Statue, Orator
+  139603, -- Praxis: Alinor Shrine, Limestone
+  139529, -- Diagram: Alinor Sconce, Candles
+  139532, -- Blueprint: Alinor Candles, Stand
+  139494, -- Praxis: Psijic Table, Six-fold Symmetry
+  139525, -- Diagram: Alinor Sconce, Lantern
+  139627, -- Blueprint: Display Case, Large
+  139516, -- Praxis: Alinor Fence, Tall
+  139572, -- Sketch: Figurine, The Taming of the Gryphon
+  139557, -- Blueprint: Alinor Winerack, Polished
+  139617, -- Diagram: Alinor Plate, Embossed
+  139518, -- Praxis: Alinor Archway, Tall
+  139630, -- Praxis: Alinor Potted Plant, Double Tiered
+  139620, -- Diagram: Alinor Bread Basket, Wrought Iron
+  139613, -- Sketch: Alinor Chalice, Delicate
+  139519, -- Diagram: Alinor Sconce, Arched
+  139505, -- Praxis: Alinor Sarcophagus, Wedge
+  139545, -- Blueprint: Alinor Armchair, Backless Verdant
+  139586, -- Diagram: Fireplace Tools, Wrought Iron
+  139506, -- Praxis: Alinor Sarcophagus, Peaked
+  139497, -- Praxis: Psijic Table, Grand
+  139642, -- Pattern: Alinor Carpet, Intricate
+  139625, -- Blueprint: Display Case, Standing Arched
+  139612, -- Sketch: Alinor Goblet, Silver Plain
+  139598, -- Design: Alinor Amphora, Embossed
+  139599, -- Diagram: Alinor Urn, Bronze
+  139638, -- Pattern: Alinor Carpet, Verdant
+  139583, -- Blueprint: Alinor Divider, Noble
+  139639, -- Pattern: Alinor Carpet, Vibrant
+  139619, -- Design: Alinor Meal, Individual
+  139614, -- Sketch: Alinor Goblet, Silver Stamped
+  139495, -- Praxis: Psijic Lighting Globe, Large
+  139646, -- Praxis: Alinor Statue, Kinlord
+  139645, -- Pattern: Alinor Tapestry, Royal Gryphons
+  139595, -- Design: Alinor Amphora, Delicate
+  139542, -- Blueprint: Alinor Bookshelf, Polished
+  139644, -- Pattern: Alinor Tapestry, Alinor Dusk
+  139643, -- Pattern: Alinor Tapestry, Alinor Dawn
+  139571, -- Sketch: Figurine, The Sea-Monster's Surprise
+  139530, -- Diagram: Alinor Sconce, Candles Tall
+  139605, -- Praxis: Alinor Pot, Limestone
+  139566, -- Blueprint: Alinor Trunk, Spired
+  139624, -- Blueprint: Display Case, Standing
+  139513, -- Praxis: Alinor Wall, Stone
+  139635, -- Pattern: Alinor Curtains, Drawn
+  139539, -- Blueprint: Alinor Bed, Polished Single
+  139567, -- Blueprint: Alinor Jewelry Box, Noble
+  139629, -- Praxis: Alinor Potted Plant, Triple Tiered
+  139628, -- Praxis: Alinor Potted Plant, Perpetual Bloom
+  139626, -- Blueprint: Display Case, Specimen
+  139636, -- Pattern: Alinor Drapes, Noble
+  139543, -- Blueprint: Alinor Wardrobe, Polished
+  139493, -- Pattern: Psijic Banner
+  139623, -- Design: Alinor Bowl, Millet
+  139584, -- Blueprint: Alinor Divider, Polished
+  139510, -- Praxis: Alinor Stairway, Timeworn Wide
+  139488, -- Praxis: Book Stack, Levitating
+  139621, -- Design: Alinor Pie Dish, Cherry Pie
+  139618, -- Diagram: Alinor Platter, Scalloped
+  139564, -- Blueprint: Alinor Trunk, Engraved
+  139501, -- Praxis: Alinor Bookshelf Wall, Timeworn
+  139535, -- Diagram: Alinor Streetlight, Wrought Iron
+  139615, -- Sketch: Alinor Chalice, Ornate
+  139537, -- Blueprint: Alinor Bed, Canopy Full
+  139533, -- Diagram: Alinor Brazier, Hanging Coals
+  139492, -- Praxis: Psijic Table, Scalloped
+  139594, -- Design: Alinor Urn, Gilded
+  139528, -- Diagram: Alinor Candelabra, Wrought Iron
+  139633, -- Praxis: Alinor Windowbox, Blue Wisteria
+  139531, -- Blueprint: Alinor Candles, Tall Stand
+  139504, -- Praxis: Alinor Column, Timeworn
+  139641, -- Pattern: Alinor Runner, Royal
+  139611, -- Sketch: Alinor Goblet, Simple
+  139610, -- Design: Alinor Meal, Complete Setting
+  139554, -- Blueprint: Alinor Nightstand, Scalloped
+  139551, -- Blueprint: Alinor Armchair, Backless Polished
+  139521, -- Diagram: Alinor Lantern, Hanging
+  139499, -- Praxis: Alinor Column, Heavy Timeworn
+  139607, -- Praxis: Alinor Display Stand, Marble
+  139500, -- Praxis: Alinor Pedestal, Timeworn
+  139606, -- Praxis: Alinor Display Stand, Marble Wide
+  139527, -- Diagram: Alinor Brazier, Noble
+  139602, -- Praxis: Alinor Urn, Limestone Large
+  139547, -- Blueprint: Alinor Armchair, Noble
+  139508, -- Praxis: Alinor Sarcophagus, Open
+  139573, -- Sketch: Figurine, The Fish and the Unicorn
+  139553, -- Blueprint: Alinor Desk, Mirrored
+  139597, -- Design: Alinor Urn, Stemmed
+  139517, -- Praxis: Alinor Fence, Tall Long
+  139491, -- Praxis: Psijic Lighting Globe, Small
+  139489, -- Blueprint: Psijic Chair, Arched
+  139596, -- Design: Alinor Amphora, Slender
+  139600, -- Praxis: Alinor Bowl, Shallow Limestone
+  139509, -- Praxis: Alinor Stairway, Timeworn
+  139515, -- Praxis: Alinor Post, Tall Fence
+  139591, -- Praxis: Alinor Table, Decorative Marble
+  139590, -- Praxis: Alinor Table, Round Marble
+  139589, -- Praxis: Alinor Fountain, Timeworn
+  139592, -- Blueprint: Alinor Table, Noble Grand
+  139552, -- Blueprint: Alinor Desk, Polished
+  139578, -- Sketch: Scrimshaw, Octopus
+  139580, -- Sketch: Scrimshaw Jewelry Box, Floral
+  139549, -- Blueprint: Alinor Chair, Polished
+  139496, -- Pattern: Psijic Banner, Large
+  139576, -- Sketch: Scrimshaw, Sea Monster
+  139502, -- Praxis: Alinor Column, Slender Timeworn
+  139568, -- Blueprint: Alinor Jewelry Box, Polished
+  139523, -- Diagram: Alinor Sconce, Wrought Glass
+  139616, -- Sketch: Alinor Goblet, Silver Ornate
+  139563, -- Blueprint: Alinor Trunk, Peaked
+  139522, -- Diagram: Alinor Lantern, Stationary
+  139555, -- Blueprint: Alinor Nightstand, Octagonal
+  139570, -- Blueprint: Alinor Jewelry Box, Octagonal
+  139648, -- Design: Alinor Amphora, Portrait
+  139484, -- Blueprint: Alinor Writing Desk, Noble
+}
+
diff --git a/data/06_2018/AchievementVendors.lua b/data/06_2018/AchievementVendors.lua
new file mode 100644
index 0000000..a1b099c
--- /dev/null
+++ b/data/06_2018/AchievementVendors.lua
@@ -0,0 +1,361 @@
+FurC.AchievementVendors[FURC_SLAVES] = {
+  ["Murkmire"] = {
+    [GetString(FURC_AV_HAR)] = {
+      [145408] = {          --Argon Pedestal, Replica
+        itemPrice   = 15000,
+        achievement = 0,  -- The river of rebirth
+      },
+      [145406] = {          --Banner, Bright-Throat
+        itemPrice   = 10000,
+        achievement = 2353,  -- murky marketeer
+      },
+      [145404] = {          --Banner, Dead-Water
+        itemPrice   = 10000,
+        achievement = 2354, -- Cold Blood, Warm Heart
+      },
+      [145405] = {          --Banner, Rootwater
+        itemPrice   = 10000,
+        achievement = 0,  -- Resplendent Rootmender
+      },
+      [145553] = {          --Grave Stake, Small Glyphed
+        itemPrice   = 5000,
+        achievement = 2330,  -- Surreptiliously Shadowed
+      },
+      [145549] = {           --Murkmire Totem, Stone Head
+        itemPrice   = 12000,
+        achievement = 0,  -- Art of the Nisswo
+      },
+      [145407] = {          -- Remnant of Argon, Replica
+        itemPrice   = 75000,
+        achievement = 2339,  -- River of Rebirth
+      },
+      [145412] = {          --Seed Doll, Turtle
+        itemPrice   = 20000,
+        achievement = 2336,  -- Sap-Sleeper
+      },
+      [145576] = {          --Timid Vine-Tongue
+        itemPrice   = 40000,
+        achievement = 2357,  --  Vine-Tongue Traveler
+      },
+
+    },
+    [GetString(FURC_AV_ADO)] = {
+      [145551] = {        -- Murkmire Kiln, Derelict
+        itemPrice   = 450,
+      },
+      [145557] = {        -- Plant Cluster, Spadeleaf
+        itemPrice   = 350,
+      },
+      [145414] = {        -- Plant Cluster, Marsh Saplings
+        itemPrice   = 250,
+      },
+      [145417] = {        -- Plant, Bramblebrush
+        itemPrice   = 250,
+      },
+      [145413] = {        -- Plant, Marsh Palm
+        itemPrice   = 350,
+      },
+      [145419] = {        -- Plant, Marshfrond
+        itemPrice   = 400,
+      },
+      [145547] = {        -- Plant, Moorstalk Hive
+        itemPrice   = 1250,
+      },
+      [145416] = {        -- Plant, Purple Spadeleaf
+        itemPrice   = 300,
+      },
+      [145420] = {        -- Plant, Thorny Swamp Lily
+        itemPrice   = 400,
+      },
+      [145418] = {        -- Plant, Young Marshfrond
+        itemPrice   = 250,
+      },
+      [145425] = {        -- Rock, Mossy Marsh
+        itemPrice   = 250,
+      },
+      [145424] = {        -- Rocks, Mossy Marsh Cluster
+        itemPrice   = 750,
+      },
+      [145422] = {        -- Tree Cluster, Young Sycamore
+        itemPrice   = 450,
+      },
+      [145421] = {        -- Tree, Marsh Cypress
+        itemPrice   = 350,
+      },
+      [145423] = {        -- Tree, Mire Mangrove
+        itemPrice   = 4000,
+      },
+      [145415] = {        -- Tree, Mossy Sycamore
+        itemPrice   = 2000,
+      },
+
+    }
+  }
+}
+
+FurC.AchievementVendors[FURC_WEREWOLF] = {
+  ["the Undaunted Enclaves"] = {
+    ["Undaunted Quartermaster"] = {
+      [141857] = {        --Ritual Chalice, Hircine
+                itemPrice   = 5000,
+                achievement = 2162,
+            },
+      [141858] = {        --Banner of the Silver Dawn
+                itemPrice   = 15000,
+                achievement = 2152,
+            },
+    },
+  },
+
+
+  ["Hew's Bane"] = {
+    [GetString(FURC_AV_LTS)] = {
+      [119966] = {        -- Iron Wheel Banner
+        itemPrice   = 15000,
+      },
+      [119971] = {        -- Statue of Shadows
+        itemPrice   = 25000,
+      },
+    }
+  },
+
+  [GetString(FURC_AV_ALI)] = {
+    [GetString(FURC_AV_UNW)] = {
+      [141824] = {
+        itemPrice   = 100,
+      },
+      [141819] = {
+        itemPrice   = 500,
+      },
+      [141818] = {
+        itemPrice   = 100,
+      },
+      [141817] = {
+        itemPrice   = 750,
+      },
+      [141816] = {
+        itemPrice   = 500,
+      },
+    }
+  },
+
+  ["Glenumbra, Daggerfall, The Rosy Lion"] = {
+
+    [GetString(FURC_AV_ROH)] = {
+      [130305] = {        -- Stone, Mossy Swamp
+        itemPrice   = 100,
+      },
+      [130306] = {        -- Stones, Gray Swampy
+        itemPrice   = 100,
+      },
+      [130292] = {        -- Stump, Fetid Swamp
+        itemPrice   = 100,
+      },
+      [130291] = {        -- Stump, Rotten Pine
+        itemPrice   = 100,
+      },
+    }
+  },
+  ["Reaper's March, Rawl'Kha, Market"] = {
+
+    [GetString(FURC_AV_MAL)] = {
+      [120658] = {        -- Tree, Forked Sturdy
+        itemPrice   = 250,
+      },
+    }
+  },
+}
+
+FurC.AchievementVendors[FURC_ALTMER] = {
+
+    [GetString(FURC_AV_ALI)] = {
+    [GetString(FURC_AV_UNW)] = {
+      [139122] = { -- Bush, Summerset Spruce
+        itemPrice   = 100,
+      },
+      [139107] = { -- Coral Shelf, Flat
+        itemPrice   = 100,
+      },
+      [139108] = { --  Coral Shelf, Large
+        itemPrice   = 250,
+      },
+      [139127] = { -- Hedge, Overgrown
+        itemPrice   = 100,
+      },
+      [139128] = { -- Hedge, Overgrown long
+        itemPrice   = 100,
+      },
+      [139112] = { -- Limestone Border, Boulders
+        itemPrice   = 100,
+      },
+      [139113] = { -- Limestone Border, Pebbles
+        itemPrice   = 100,
+      },
+      [139111] = { -- Limestone Border, Stones
+        itemPrice   = 100,
+      },
+      [139114] = { -- Limestone Retaining Wall, Curved
+        itemPrice   = 100,
+      },
+      [139116] = { -- Limestone Retaining Wall, Long
+        itemPrice   = 100,
+      },
+      [139115] = { -- Limestone Retaining Wall, Short
+        itemPrice   = 100,
+      },
+      [139109] = { -- Limestone Shelf, Curved
+        itemPrice   = 100,
+      },
+      [139110] = { -- Limestone Shelf, Large
+        itemPrice   = 250,
+      },
+      [139117] = { -- Limestone Stairway, Natural
+        itemPrice   = 100,
+      },
+      [139126] = { -- Sapling, Gingko
+        itemPrice   = 100,
+      },
+      [139121] = { -- Sapling, Growing Shade
+        itemPrice   = 100,
+      },
+      [139132] = { -- Sapling, Sea Grapes
+        itemPrice   = 100,
+      },
+      [139124] = { -- Sapling, Summerset Spruce
+        itemPrice   = 100,
+      },
+      [139120] = { -- Sapling, Young Shade
+        itemPrice   = 100,
+      },
+      [139130] = { -- Saplings, Mangrove
+        itemPrice   = 100,
+      },
+      [139125] = { -- Tree, Blooming Gingko
+        itemPrice   = 2000,
+      },
+      [139131] = { -- Tree, Solitary Mangrove
+        itemPrice   = 250,
+      },
+      [139134] = { -- Tree, Seagrapes
+        itemPrice   = 100,
+      },
+      [139136] = { -- Tree, Twin Poplar
+        itemPrice   = 100,
+      },
+      [139123] = { -- Tree, Summerset Spruce
+        itemPrice   = 250,
+      },
+      [139119] = { -- Tree, Upstretched Shade
+        itemPrice   = 250,
+      },
+      [139118] = { -- Tree, Wide-Trunked Shade
+        itemPrice   = 250,
+      },
+      [139129] = { -- Tree, Young Mangrove
+        itemPrice   = 100,
+      },
+      [139135] = { -- Tree, Young Poplar
+        itemPrice   = 100,
+      },
+      [139133] = { -- Tree, Young Sea Grapes
+        itemPrice   = 100,
+      },
+        },
+
+        [GetString(FURC_AV_TAR)] = {
+            [139369] = { -- Abyssal Pearl, Sealed
+                itemPrice   = 75000,
+                achievement = 2101, -- Back to the Abyss
+            },
+            [139388] = { -- Banner of the House of Reveries, Hanging
+                itemPrice   = 10000,
+                achievement = "Manor of Masques", --
+            },
+            [139377] = { -- Banner of the Sapiarchs, Hanging
+                itemPrice   = 10000,
+                achievement = 2204, -- Resolute Guardian
+            },
+            [139393] = { -- Cloudrest Banner, hanging
+                itemPrice   = 10000,
+                achievement = 2131, -- Cloudrest Completed
+            },
+            [139379] = { -- Coral Formation, Luminescent
+                itemPrice   = 15000,
+                achievement = 2202, -- Precious Pearl
+            },
+            [139380] = { -- Crystal Tower Key, Replica
+                itemPrice   = 150000,
+                achievement = 2208, -- What Must Be Done
+            },
+            [139371] = { -- Crystal Tower Stand
+                itemPrice   = 50000,
+                achievement = 2193, -- Savior of Summerset
+            },
+            [139386] = { -- Direnni Banner, Hanging
+                itemPrice   = 10000,
+                achievement = "Lauriel's Lament", --
+            },
+            [139302] = { -- Display Case, Exhibit
+                itemPrice   = 25000,
+                achievement = 2203, -- Mind Games
+            },
+            [139374] = { -- Enchanted Text, Illusory Forest
+                itemPrice   = 100000,
+                achievement = 2209, -- Summerset Grand Adventurer
+            },
+            [139381] = { -- Evergloam Wispstone
+                itemPrice   = 75000,
+                achievement = 2207, -- Enemy of my enemy
+            },
+            [139326] = { -- High Elf Statue, Kinlady
+                itemPrice   = 50000,
+                achievement = 2204, -- Resolute Guardian
+            },
+            [139373] = { -- High Elf Wine Press, Display
+                itemPrice   = 20000,
+                achievement = 2007, -- Summerset Cave Delver
+            },
+            [139387] = { -- Lillandril Banner
+                itemPrice   = 10000,
+                achievement = "Murder in Lilandril",
+            },
+            [139372] = { -- Mind Trap Kelp, Adult
+                itemPrice   = 20000,
+                achievement = 2203, -- Mind Games
+            },
+            [139383] = { -- Psijic Control Globe, Inactive
+                itemPrice   = 50000,
+                achievement = 2206, -- Unreliable Narrator
+            },
+            [139370] = { -- Replica of the Transparent Law
+                itemPrice   = 100000,
+                achievement = 2193, -- Saviour of Summerset
+            },
+            [139378] = { -- Shimmerene Banner, Hanging
+                itemPrice   = 10000,
+                achievement = 2194, -- The Good of Many
+            },
+            [139446] = { -- Spiral Skein Coral, Brittle-Vein
+                itemPrice   = 10000,
+                achievement = 2008, -- Summerset Pathfinder
+            },
+            [139382] = { -- Spiral Skein Coral, Elkhorn
+                itemPrice   = 1000,
+                achievement = 2205, -- Sweet Dreams
+            },
+            [139392] = { -- Sunhold Banner, Hanging
+                itemPrice   = 10000,
+                achievement = 2095, -- Sunhold Group Event
+            },
+            [139385] = { -- The Keeper's Oath
+                itemPrice   = 75000,
+                achievement = 2099, -- Relics of Summerset
+            },
+            [139384] = { -- Waterfall, Small Everlasting
+                itemPrice   = 75000,
+                achievement = 2197, -- Divine Magistrate
+            },
+        },
+    },
+}
+
diff --git a/data/06_2018/LuxuryFurnisher.lua b/data/06_2018/LuxuryFurnisher.lua
new file mode 100644
index 0000000..9d3b177
--- /dev/null
+++ b/data/06_2018/LuxuryFurnisher.lua
@@ -0,0 +1,444 @@
+FurC.LuxuryFurnisher = FurC.LuxuryFurnisher or {}
+
+FurC.LuxuryFurnisher[FURC_WEREWOLF] = {
+
+-- Oct. 21
+[132155] = { -- Witch's Torch, Wretched
+    itemPrice   = 5000,
+    itemDate  = "2019-10-20",
+  },
+  [132154] = { -- Witch's Totem, Bog
+    itemPrice   = 50000,
+    itemDate  = "2019-10-20",
+  },
+  [132153] = { -- Witch's Tree, Captive
+    itemPrice   = 35000,
+    itemDate  = "2019-10-20",
+  },
+
+  [141759] = {        -- Orcish Gazebo, Orsinium
+    itemPrice   = 20000,
+    itemDate  = "2019-10-13",
+  },
+  [132152] = {        -- Orsinium Sarcophagus, Warrior's
+    itemPrice   = 35000,
+    itemDate  = "2019-10-13",
+  },
+  [132150] = {        -- Orsinium Totem, Honor
+    itemPrice   = 20000,
+    itemDate  = "2019-10-13",
+  },
+  [132151] = {        -- Orsinium Totem, Obedience
+    itemPrice   = 20000,
+    itemDate  = "2019-10-13",
+  },
+  [132149] = {        -- Orsinium Totem, Strength
+    itemPrice   = 20000,
+    itemDate  = "2019-10-13",
+  },
+
+
+  [141758] = {        -- Orcish Wagon, Merchant
+    itemPrice   = 15000,
+    itemDate  = "2019-10-06",
+  },
+  -- Oct. 7
+  [132145] = { -- Orsinium Tent, Chief’s
+    itemPrice   = 15000,
+    itemDate  = "2019-10-06",
+  },
+  [132146] = { -- Orsinium Relief, Malacath
+    itemPrice   = 25000,
+    itemDate  = "2019-10-06",
+  },
+  [132148] = { -- Orsinium Statue, Head
+    itemPrice   = 25000,
+    itemDate  = "2019-10-06",
+  },
+  [132147] = { -- Orsinium Statue, Honor’s Rest
+    itemPrice   = 25000,
+    itemDate  = "2019-10-06",
+  },
+
+
+  [141756] = {        -- Mushrooms, Aether Cup Cluster
+        itemPrice   = 10000,
+    itemDate  = "2019-09-29",
+    },
+    [141755] = {        -- Mushrooms, Aether Cup Ring
+        itemPrice   = 10000,
+    itemDate  = "2019-09-29",
+    },
+    [141757] = {        -- Mushrooms, Climbing Aether Cup
+        itemPrice   = 5000,
+    itemDate  = "2019-09-29",
+    },
+
+  [141752] = {        -- Plant, Cerulean Spadeleaf
+    itemPrice   = 1000,
+    itemDate  = "2019-09-22",
+  },
+  [141753] = {        -- Plants, Cerulean Spadeleaf Cluster
+    itemPrice   = 2500,
+    itemDate  = "2019-09-22",
+  },
+  [141754] = {        -- Skull Totem, Hircine Worship
+    itemPrice   = 7500,
+    itemDate  = "2019-09-22",
+  },
+
+
+  [139106] = {    -- Reach Briarheart, Corpse Blue
+    itemPrice   = 15000,
+    itemDate  = "2019-09-16",
+    },
+  -- Sept. 30
+  [132144] = { -- Reach Briarheart, Blood Red
+    itemPrice   = 15000,
+    itemDate  = "2019-09-16",
+  },
+  [132141] = { -- Reach Skull, Mammoth
+    itemPrice   = 50000,
+    itemDate  = "2019-09-16",
+  },
+  [132142] = { -- Reach Tent, Camp
+    itemPrice   = 2500,
+    itemDate  = "2019-09-16",
+  },
+
+  [139105] = {        -- Reach Grinding Stones, Nirncrux
+        itemPrice   = 4500,
+    itemDate  = "2019-09-08",
+    },
+
+  -- Sept. 23rd
+  [131435] = { -- Reach Bowl, Nirncrux
+    itemPrice   = 5000,
+    itemDate  = "2019-09-08",
+  },
+  [131438] = { -- Reach Grinder, Nirncrux
+    itemPrice   = 50000,
+    itemDate  = "2019-09-08",
+  },
+  [131436] = { -- Reach Vine, Bloodroot Sprout
+    itemPrice   = 15000,
+    itemDate  = "2019-09-08",
+  },
+  [131437] = { -- Reach Vine, Bloodroot Tendril
+    itemPrice   = 25000,
+    itemDate  = "2019-09-08",
+  },
+
+
+  [120844] = {        -- Craglorn Brazier, Ornate
+        itemPrice   = 15000,
+    itemDate  = "2019-09-01",
+    },
+    [139104] = {        -- Craglorn Relief, Serpent
+        itemPrice   = 20000,
+    itemDate  = "2019-09-01",
+    },
+    [120843] = {        -- Craglorn Skull, Carved
+        itemPrice   = 35000,
+    itemDate  = "2019-09-01",
+    },
+    [120845] = {        -- Craglorn Sword Sconce
+        itemPrice   = 5000,
+    itemDate  = "2019-09-01",
+    },
+
+  [139103] = {        -- Craglorn Display Case, Sealed
+        itemPrice   = 10000,
+    itemDate  = "2019-08-25",
+    },
+
+  [120842] = { -- Craglorn Chair, Serpent
+    itemPrice   = 2500,
+    itemDate  = "2019-08-25",
+  },
+  [120841] = { -- Craglorn Urn, Standing
+    itemPrice   = 7500,
+    itemDate  = "2019-08-25",
+  },
+  [120840] = { -- Craglorn Coffer, Ornate
+    itemPrice   = 5000,
+    itemDate  = "2019-08-25",
+  },
+}
+FurC.LuxuryFurnisher[FURC_ALTMER] = {
+
+
+  [139102] = {        -- Blue Crystal Spire, Large
+        itemPrice   = 18000,
+    itemDate  = "2019-08-18",
+    },
+
+  -- Sept. 2nd + 3rd
+  [120832] = { -- Blue Crystal Spire
+    itemPrice   = 12000,
+    itemDate  = "2019-08-18",
+  },
+  [120834] = { -- Blue Flame Brazier
+    itemPrice   = 5000,
+    itemDate  = "2019-08-18",
+  },
+  [121272] = { -- Great Soul Gem
+    itemPrice   = 20000,
+    itemDate  = "2019-08-18",
+  },
+
+
+  [139101] = {        -- Blue Crystal Cluster, Large
+    itemPrice   = 20000,
+    itemDate  = "2019-08-11",
+    },
+  [120831] = { -- Blue Crystal Cluster
+    itemPrice   = 10834,
+    itemDate  = "2019-08-11",
+  },
+  [120833] = { -- Blue Crystal Fragments
+    itemPrice   = 8125,
+    itemDate  = "2019-08-11",
+  },
+  [120830] = { -- Blue Flame Candles
+    itemPrice   = 2500,
+    itemDate  = "2019-08-11",
+  },
+  [121273] = { -- Soul Gem, Grand
+    itemPrice   = 5417,
+    itemDate  = "2019-08-11",
+  },
+
+
+    [139100] = {        -- Dark Elf Ash Garden, Familial
+        itemPrice   = 10000,
+    itemDate  = "2019-08-04",
+    },
+  [126579] = { -- Velothi Altar, Sacrificial
+    itemPrice   = 10834,
+    itemDate  = "2019-08-04",
+  },
+  [126576] = { -- Velothi Kneeler, Prayer
+    itemPrice   = 3000,
+    itemDate  = "2019-08-04",
+  },
+
+  [126577] = { -- Velothi Podium of Recitation
+    itemPrice   = 37500,
+    itemDate  = "2019-08-04",
+  },
+
+  [126578] = { -- Velothi Burial Urn
+    itemPrice   = 10834,
+    itemDate  = "2019-08-04",
+  },
+
+  -- August 5+6
+  [126573] = { -- Velothi Candle, Mourning
+    itemPrice   = 5000,
+    itemDate  = "2019-07-28",
+  },
+  [126574] = { -- Velothi Cerecloth, Prayer
+    itemPrice   = 5000,
+    itemDate  = "2019-07-28",
+  },
+  [126575] = { -- Velothi Seat, Meditation
+    itemPrice   = 10000,
+    itemDate  = "2019-07-28",
+  },
+  [126572] = { -- Velothi Shroud, Mourning
+    itemPrice   = 5000,
+    itemDate  = "2019-07-28",
+  },
+    [139099] = { -- Dark Elf Brazier, Ancestral Tomb
+        itemPrice   = 15000,
+    itemDate  = "2019-07-28",
+    },
+
+
+    [139098] = { -- Darkshade Glowstalks, Inquisitive
+        itemPrice   = 45000,
+    itemDate  = "2019-07-21",
+    },
+  -- August 5+6
+  [126611] = { -- Vvardenfell Anemone, Sprout
+    itemPrice   = 5417,
+    itemDate  = "2019-07-21",
+  },
+  [126612] = { -- Vvardenfell Anemone, Strong
+    itemPrice   = 27084,
+    itemDate  = "2019-07-21",
+  },
+  [126610] = { -- Vvardenfell Coral Plant,
+    itemPrice   = 10834,
+    itemDate  = "2019-07-21",
+  },
+  [126591] = { -- Vvardenfell Coral Plant, Young
+    itemPrice   = 5417,
+    itemDate  = "2019-07-21",
+  },
+
+
+    [139097] = { -- Spiral Skein Glowstalks, Sprouts
+       itemPrice = 8000,
+    itemDate  = "2019-07-14",
+    },
+
+  --July 29 + 30
+  [126587] = {  -- Vvardenfell Glowstalk, Sprout
+    itemPrice   = 2500,
+    itemDate  = "2019-07-14",
+  },
+  [126585] = {  -- Vvardenfell Glowstalk, Strong
+    itemPrice   = 10000,
+    itemDate  = "2019-07-14",
+  },
+  [126580] = {  -- Vvardenfell Glowstalk, Towering
+    itemPrice   = 15000,
+    itemDate  = "2019-07-14",
+  },
+  [126586] = {  -- Vvardenfell Glowstalk, Young
+    itemPrice   = 5000,
+    itemDate  = "2019-07-14",
+  },
+
+
+
+  [139096] = {  -- Daedric Urn, Sealed
+    itemPrice   = 1000,
+    itemDate  = "2019-07-07",
+  },
+    [139095] = {  -- Daedric Drinking Bowl, Ritual
+    itemPrice   = 650,
+    itemDate  = "2019-07-07",
+  },
+    [126571] = {  -- Daedric Chandelier, Spiked
+    itemPrice   = 8000,
+    itemDate  = "2019-07-07",
+  },
+  [126569] = {  -- Daedric Chest, Sealed
+    itemPrice   = 8000,
+    itemDate  = "2019-07-07",
+  },
+  [126570] = {  -- Daedric Throne, Skulls
+    itemPrice   = 25000,
+    itemDate  = "2019-07-07",
+  },
+
+
+    [139094] = { -- Daedric Altar, Periyte
+    itemPrice   = 40000,
+    itemDate  = "2016-06-30",
+  },
+  [126567] = {  -- Daedric Sarcophagus, Sealed
+    itemPrice   = 10000,
+    itemDate  = "2016-06-30",
+  },
+  [126565] = {  -- Daedric Platform, Sarcophagus
+    itemPrice   = 8000,
+    itemDate  = "2016-06-30",
+  },
+  [126566] = {  -- Daedric Brazier, Ritual
+    itemPrice   = 25000,
+    itemDate  = "2016-06-30",
+  },
+
+
+  [126562] = {  -- Dwarven Crystal Mechanism
+    itemPrice   = 50000,
+    itemDate  = "2019-06-23",
+  },
+  [126563] = {  -- Dwarven Orrery, Reference
+    itemPrice   = 25000,
+    itemDate  = "2019-06-23",
+  },
+  [126559] = {  -- Dwarven Schematics, technical
+    itemPrice   = 8000,
+    itemDate  = "2019-06-23",
+  },
+  [139093] = {  -- Dwarven Centurion Hammer, Detached
+    itemPrice   = 3000,
+    itemDate  = "2019-06-23",
+  },
+
+  --
+  [126560] = {  -- Dwarven fountain, forged
+    itemPrice   = 50000,
+    itemDate  = "2019-06-16",
+  },
+  [126564] = {  -- Dwarven Clock, Deactivated
+    itemPrice   = 15000,
+    itemDate  = "2019-06-16",
+  },
+  [126561] = {  -- Dwarven Pillar, Forged
+    itemPrice   = 10000,
+    itemDate  = "2019-06-16",
+  },
+  [139092] = {  -- Dwarven Engine, Fused
+    itemPrice   = 24000,
+    itemDate  = "2019-06-16",
+  },
+
+  -- June, 23 - 26
+  [121270] = {  -- Brotherhood Banner, Large
+    itemPrice   = 25000,
+    itemDate  = "2019-06-09",
+  },
+  [120836] = {  -- Brotherhood Candelabra, Floor
+    itemPrice   = 8000,
+    itemDate  = "2019-06-09",
+  },
+  [120839] = {  -- Brotherhood Ledger, Stand
+    itemPrice   = 4000,
+    itemDate  = "2019-06-09",
+  },
+  [120838] = {  -- Brotherhood Plaque, Wolf
+    itemPrice   = 25000,
+    itemDate  = "2019-06-09",
+  },
+  [134846] = {  -- Brotherhood Carpet, Large
+    itemPrice   = 15000,
+    itemDate  = "2019-06-09",
+  },
+
+  [134845] = {  -- Brotherhood  Tapestry, Small
+    itemPrice   = 5000,
+    itemDate  = "2019-06-02",
+  },
+  [120837] = {  -- Brotherhood Window, Stained Glass
+    itemPrice   = 100000,
+    itemDate  = "2019-06-02",
+  },
+  [121271] = {  -- Brotherhood Tapestry
+    itemPrice   = 10000,
+    itemDate  = "2019-06-02",
+  },
+  [120835] = {  -- Brotherhood Candelabra, Table
+    itemPrice   = 2500,
+    itemDate  = "2019-06-02",
+  },
+
+
+  [134844] = {  -- Ra Gada Statue, Forward Scout
+    itemPrice   = 25000,
+    itemDate  = "2019-05-26",
+  },
+  [120808] = {  -- Statue Base, Circular
+    itemPrice   = 2500,
+    itemDate  = "2019-05-26",
+  },
+  [120811] = {  -- Statue, Justice
+    itemPrice   = 25000,
+    itemDate  = "2019-05-26",
+  },
+  [120814] = {  -- Statue, Order
+    itemPrice   = 25000,
+    itemDate  = "2019-05-26",
+  },
+  [120813] = {  -- Statue, Truth
+    itemPrice   = 25000,
+    itemDate  = "2019-05-26",
+  },
+
+}
+
diff --git a/data/06_2018/RumourRecipes.lua b/data/06_2018/RumourRecipes.lua
new file mode 100644
index 0000000..7d88cf3
--- /dev/null
+++ b/data/06_2018/RumourRecipes.lua
@@ -0,0 +1,67 @@
+FurC.RumourRecipes = {
+  121198, -- Formula: Shelf, Poison
+  119441, -- Design: Steak, Display
+  119442, -- Diagram: Teapot, Common
+  121208, -- Praxis: Orcish Table with Furs
+  121210, -- Praxis: Orcish Throne, Skull
+  121212, -- Praxis: Orcish Effigy, Bear
+  121213, -- Diagram: Orcish Skull Goblet, Empty
+  119454, -- Blueprint: Plaque, Large
+  119455, -- Blueprint: Plaque, Standard
+  119466, -- Blueprint: Podium, Engraved
+  119437, -- Design: Pie, Display
+  121161, -- Design: Ram Horns, Mounted
+  121216, -- Blueprint: Redguard Divider, Gilded
+  121203, -- Praxis: Khajiit Brazier, Enchanted
+  121217, -- Formula: Redguard Lamp, Oil
+  121215, -- Pattern: Redguard Canopy, Dusk
+  119426, -- Design: Bread, Plain
+  121102, -- Design: Chicken Dinner, Display
+  121103, -- Design: Chicken Meal, Display
+  119426, -- Bread, Plain
+  119448, -- Minecart, Empty
+  119449, -- Minecart, Push
+  119450, -- Knife, Carving
+  121100, -- Common Stewpot, Hanging
+  119428, -- Common Bowl, Serving
+  121201, -- Sack of Beans
+  121101, -- Sack of Millet
+  121111, -- Simple Red Banner
+  121110, -- Simple Purple Banner
+  121109, -- Simple Gray Banner
+  121108, -- Simple Brown Banner
+  119355, -- Garlic String, Display
+  121203, -- Khajiit Brazier, Enchanted
+  121091, -- Stool, Carved
+  119447, -- Candles, Lasting
+}
+local function getCrownStorePriceString(price)
+    return string.format("%s (%u)", GetString(SI_FURC_CROWNSTORESOURCE), price)
+end
+
+
+FurC.MiscItemSources[FURC_ALTMER] = FurC.MiscItemSources[FURC_ALTMER] or {}
+FurC.MiscItemSources[FURC_ALTMER][FURC_RUMOUR] = {
+
+    [139137] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Tapestry, Nocturnal
+    [139138] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Banner, Nocturnal
+    [139139] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Nocturnal, Mistress of Shadows
+
+    [139147] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Plants, Scarlet Sawleaf
+    [139149] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Plant, Scarlet Fleshfrond
+
+    [139351] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Alinor Monument, Marble
+
+    [139366] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Alinor Fountain, Regal
+    [139367] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Regal Sauna Pool, Two Person
+
+    [139369] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Abyssal Pearl, Sealed
+
+}
+
+-- Removed with Murkmire Live Release, RIP
+-- [126154] = GetString(SI_FURC_DATAMINED_UNCLEAR),  -- Statuette of Azura with Moon and Star
+-- [126155] = GetString(SI_FURC_DATAMINED_UNCLEAR),  -- Statuette of Lord Vivec, Warrior-Poet
+-- [126156] = GetString(SI_FURC_DATAMINED_UNCLEAR),  -- Statuette of Clavicus Vile, Unmasked
+
+
diff --git a/data/100025.lua b/data/100025.lua
index df1778c..c2bf35c 100644
--- a/data/100025.lua
+++ b/data/100025.lua
@@ -1,245 +1,239 @@
 local function getCrownPrice(price)
     return string.format("%s (PTS, %u)", GetString(SI_FURC_CROWNSTORESOURCE), price)
 end
-
-FurC.MiscItemSources[FURC_SLAVES]	= {
+
+FurC.MiscItemSources[FURC_SLAVES]  = {
     [FURC_RUMOUR]   = {
-		[146048] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Festive Fir
-		[146049] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Winter Festival Hearth
-		[146050] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Winter Festival Hearthfire
-		[145923] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Lies of the Dread-Father
-		[146052] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Vvardvark Ice Sculpture
-		[146053] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Guar Ice Sculpture
-		[145926] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- That of Void
-		[145927] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Acts of Honoring
-		[145928] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Speakers of Nothing
-		[146057] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Snowmortal, Human
-		[146058] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Snowmortal, Argonian
-		[146060] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Ladle
-		[146062] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Winter Ouroboros Wreath
-		[145553] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Small Glyphed
-		[145426] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Felucca, Canopied
-		[145427] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Serpent Skull, Colossal
-		[145428] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Lantern Post, Covered
-		[145429] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant Cluster, Cardinal Flower Large
-		[145430] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Star Blossom
-		[145431] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Marsh Nigella
-		[145432] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Canna Lily
-		[146061] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Triptych Banner
-		[145434] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Large Lantern Flower
-		[145435] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Marsh Mani Flower
-		[145436] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Canopied Felucca, Double Hulled
-		[145437] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Reed Felucca, Double Hulled
-		[145438] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Large Glyphed
-		[145439] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Large Fearsome
-		[145440] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Large Skull
-		[145441] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Large Serpent
-		[145442] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Large Twinned
-		[145443] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Shrine, Sithis Looming
-		[145444] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Totem, Hist Guardian
-		[145445] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- The Sharper Tongue: A Jel Primer
-		[145446] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Sithis, the Hungering Dark
-		[145447] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Dais, Engraved
-		[145448] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Throne, Engraved
-		[145449] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Stele, Hist Guardians
-		[145450] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Stele, Hist Cultivation
-		[145451] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Shrine, Sithis Figure Anointed
-		[145452] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Shrine, Sithis Looming Anointed
-		[145453] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Marsh Aloe
-		[145454] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Marsh Aloe Pod
-		[145455] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Dendritic Hist Bulb
-		[145456] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Hist Bulb
-		[145457] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Tree, Banyan
-		[145458] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Tree, Ancient Banyan
-		[141875] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Witches Festival Scarecrow
-		[145462] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Cardinal Flower
-		[146059] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Snowmortal, Khajiit
-		[146051] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Mudcrab Ice Sculpture
-		[146054] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Garland
-		[145467] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- The Way of Shadow
-		[145468] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Wedding Lantern, Hanging
-		[145469] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Redguard Gazebo, Palatial Domed
-		[145470] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Redguard Vase, Golden
-		[145471] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Redguard Raincatcher, Golden
-		[145472] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Antler Coral, Crimson
-		[145473] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Antler Coral, Stout Crimson
-		[145474] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Flytrap
-		[145475] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Soulsplinter Weed
-		[145476] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Alinor Shrine, Trinimac
-		[145477] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Alinor Pedestal, Shrine
-		[145478] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Alinor Shrine, Y'ffre
-		[145479] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Iron Maiden, Occupied
-		[145480] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Corpse, Burned Seated
-		[145481] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Corpse, Burned Sprawled
-		[145482] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Wheelbarrow, Bones
-		[145483] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Column, Ossuary
-		[145484] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Dark Elf Statue, Ordinator
-		[145485] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Dark Elf Statue, Knight
-		[145486] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Door, Sweet Mother
-		[145487] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Banner, Order of the Hour
-		[145488] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Banner, Jewelry Crafting
-		[146055] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Garland Wreath
-		[146056] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Cookies and Ale
-		[145491] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Static Pitcher
-		[145492] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Gas Blossom
-		[145493] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Lantern Mantis
-		[141854] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Decorative Hollowjack Flame-Skull
-		[145554] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Tree, Towering Snowy Fir
-		[145555] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Tree, Snowy Fir
-		[145597] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Scales of Shadow
-		[145595] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Scuttlebloom
-		[145322] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Music Box, Blood and Glory
-		[145576] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Timid Vine-Tongue
-		[145318] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Gravestone, Small Broken
-		[145317] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Gravestone, Broken
-		[141920] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Brazier, Ceremonial
-		[141921] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Bowl, Geometric Pattern
-		[141922] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Dish, Geometric Pattern
-		[141923] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Amphora, Seed Pattern
-		[141924] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Vase, Scale Pattern
-		[141925] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Hearth Shrine, Sithis Relief
-		[141926] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Hearth Shrine, Sithis Figure
-		[145550] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Hunting Lure, Grisly
-		[145549] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Totem, Stone Head
-		[141870] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Raven-Perch Cemetery Wreath
-		[142235] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Music Box, Flickering Shadows
-		[141856] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Decorative Hollowjack Daedra-Skull
-		[141855] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Decorative Hollowjack Wraith-Lantern
-		[145556] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Tree, Tall Snowy Fir
-		[145396] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Tapestry, Hist Gathering Worn
-		[145397] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Rug, Hist Gathering Worn
-		[145398] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Rug, Supine Turtle Worn
-		[145399] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Rug, Crawling Serpents Worn
-		[145400] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Rug, Lurking Lizard Worn
-		[145401] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Tapestry, Xanmeer Worn
-		[145402] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Fish, Black Marsh
-		[145403] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Jel Parchment
-		[146047] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- From Old Life To New
+    [146048] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Festive Fir
+    [146049] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Winter Festival Hearth
+    [146050] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Winter Festival Hearthfire
+    [145923] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Lies of the Dread-Father
+    [146052] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Vvardvark Ice Sculpture
+    [146053] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Guar Ice Sculpture
+    [145926] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- That of Void
+    [145927] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Acts of Honoring
+    [145928] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Speakers of Nothing
+    [146057] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Snowmortal, Human
+    [146058] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Snowmortal, Argonian
+    [146060] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Ladle
+    [146062] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Winter Ouroboros Wreath
+    [145553] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Small Glyphed
+    [145426] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Felucca, Canopied
+    [145427] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Serpent Skull, Colossal
+    [145428] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Lantern Post, Covered
+    [145429] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant Cluster, Cardinal Flower Large
+    [145430] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Star Blossom
+    [145431] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Marsh Nigella
+    [145432] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Canna Lily
+    [146061] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Triptych Banner
+    [145434] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Large Lantern Flower
+    [145435] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Marsh Mani Flower
+    [145436] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Canopied Felucca, Double Hulled
+    [145437] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Reed Felucca, Double Hulled
+    [145438] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Large Glyphed
+    [145439] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Large Fearsome
+    [145440] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Large Skull
+    [145441] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Large Serpent
+    [145442] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Grave Stake, Large Twinned
+    [145443] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Shrine, Sithis Looming
+    [145444] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Totem, Hist Guardian
+    [145445] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- The Sharper Tongue: A Jel Primer
+    [145446] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Sithis, the Hungering Dark
+    [145447] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Dais, Engraved
+    [145448] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Throne, Engraved
+    [145449] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Stele, Hist Guardians
+    [145450] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Stele, Hist Cultivation
+    [145451] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Shrine, Sithis Figure Anointed
+    [145452] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Shrine, Sithis Looming Anointed
+    [145453] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Marsh Aloe
+    [145454] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Marsh Aloe Pod
+    [145455] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Dendritic Hist Bulb
+    [145456] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Hist Bulb
+    [145457] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Tree, Banyan
+    [145458] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Tree, Ancient Banyan
+    [141875] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Witches Festival Scarecrow
+    [145462] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Cardinal Flower
+    [146059] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Snowmortal, Khajiit
+    [146051] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Mudcrab Ice Sculpture
+    [146054] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Garland
+    [145467] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- The Way of Shadow
+    [145468] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Wedding Lantern, Hanging
+    [145469] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Redguard Gazebo, Palatial Domed
+    [145470] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Redguard Vase, Golden
+    [145471] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Redguard Raincatcher, Golden
+    [145472] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Antler Coral, Crimson
+    [145473] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Antler Coral, Stout Crimson
+    [145474] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Flytrap
+    [145475] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Plant, Soulsplinter Weed
+    [145476] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Alinor Shrine, Trinimac
+    [145477] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Alinor Pedestal, Shrine
+    [145478] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Alinor Shrine, Y'ffre
+    [145479] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Iron Maiden, Occupied
+    [145480] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Corpse, Burned Seated
+    [145481] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Corpse, Burned Sprawled
+    [145482] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Wheelbarrow, Bones
+    [145483] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Column, Ossuary
+    [145484] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Dark Elf Statue, Ordinator
+    [145485] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Dark Elf Statue, Knight
+    [145486] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Door, Sweet Mother
+    [145487] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Banner, Order of the Hour
+    [145488] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Banner, Jewelry Crafting
+    [146055] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Garland Wreath
+    [146056] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- New Life Cookies and Ale
+    [145491] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Static Pitcher
+    [145492] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Gas Blossom
+    [145493] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Lantern Mantis
+    [141854] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Decorative Hollowjack Flame-Skull
+    [145554] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Tree, Towering Snowy Fir
+    [145555] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Tree, Snowy Fir
+    [145597] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Scales of Shadow
+    [145595] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Scuttlebloom
+    [145322] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Music Box, Blood and Glory
+    [145576] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Timid Vine-Tongue
+    [145318] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Gravestone, Small Broken
+    [145317] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Gravestone, Broken
+    [145550] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Hunting Lure, Grisly
+    [145549] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Totem, Stone Head
+    [141870] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Raven-Perch Cemetery Wreath
+    [142235] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Music Box, Flickering Shadows
+    [141856] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Decorative Hollowjack Daedra-Skull
+    [141855] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Decorative Hollowjack Wraith-Lantern
+    [145556] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Tree, Tall Snowy Fir
+    [145396] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Tapestry, Hist Gathering Worn
+    [145397] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Rug, Hist Gathering Worn
+    [145398] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Rug, Supine Turtle Worn
+    [145399] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Rug, Crawling Serpents Worn
+    [145400] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Rug, Lurking Lizard Worn
+    [145401] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Murkmire Tapestry, Xanmeer Worn
+    [145402] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Fish, Black Marsh
+    [145403] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- Jel Parchment
+    [146047] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM), -- From Old Life To New
     },
-
-    [FURC_CROWN]	= {
-		[145433] = getCrownPrice(1), -- Plant, Rafflesia
-		[145459] = getCrownPrice(1), -- Murkmire Kiln, Ancient Stone
-		[145460] = getCrownPrice(1), -- Plant, Canna Leaves
-		[145461] = getCrownPrice(1), -- Plant Cluster, Cardinal Flower Small
-		[145463] = getCrownPrice(1), -- Plant Cluster, Red Sister Ti
-		[145464] = getCrownPrice(1), -- Plant, Red Sister Ti
-		[145465] = getCrownPrice(1), -- Plant Cluster, Wilted Hist Bulb
-		[145466] = getCrownPrice(1), -- Plant, Wilted Hist Bulb
-		[141939] = getCrownPrice(1), -- Grave, Grasping
-		[145411] = getCrownPrice(1), -- Plant, Lantern Flower
-		[141965] = getCrownPrice(1), -- Hollowjack Lantern, Soaring Dragon
-		[141966] = getCrownPrice(1), -- Hollowjack Lantern, Toothy Grin
-		[141967] = getCrownPrice(1), -- Hollowjack Lantern, Ouroboros
-		[142004] = getCrownPrice(1), -- Specimen Jar, Spare Brain
-		[142005] = getCrownPrice(1), -- Specimen Jar, Monstrous Remains
-		[142003] = getCrownPrice(1), -- Specimen Jar, Eyes
-		[141869] = getCrownPrice(1), -- Alinor Potted Plant, Cypress
-		[141976] = getCrownPrice(1), -- Pumpkin Patch, Display
-		[141853] = getCrownPrice(1), -- Statue of Hircine's Bitter Mercy
-
+
+
+    [FURC_CROWN]  = {
+    [145433] = getCrownPrice(1), -- Plant, Rafflesia
+    [145459] = getCrownPrice(1), -- Murkmire Kiln, Ancient Stone
+    [145460] = getCrownPrice(1), -- Plant, Canna Leaves
+    [145461] = getCrownPrice(1), -- Plant Cluster, Cardinal Flower Small
+    [145463] = getCrownPrice(1), -- Plant Cluster, Red Sister Ti
+    [145464] = getCrownPrice(1), -- Plant, Red Sister Ti
+    [145465] = getCrownPrice(1), -- Plant Cluster, Wilted Hist Bulb
+    [145466] = getCrownPrice(1), -- Plant, Wilted Hist Bulb
+    [141939] = getCrownPrice(1), -- Grave, Grasping
+    [145411] = getCrownPrice(1), -- Plant, Lantern Flower
+    [141965] = getCrownPrice(1), -- Hollowjack Lantern, Soaring Dragon
+    [141966] = getCrownPrice(1), -- Hollowjack Lantern, Toothy Grin
+    [141967] = getCrownPrice(1), -- Hollowjack Lantern, Ouroboros
+    [142004] = getCrownPrice(1), -- Specimen Jar, Spare Brain
+    [142005] = getCrownPrice(1), -- Specimen Jar, Monstrous Remains
+    [142003] = getCrownPrice(1), -- Specimen Jar, Eyes
+    [141869] = getCrownPrice(1), -- Alinor Potted Plant, Cypress
+    [141976] = getCrownPrice(1), -- Pumpkin Patch, Display
+    [141853] = getCrownPrice(1), -- Statue of Hircine's Bitter Mercy
+
     },
-    [FURC_FISHING] 	= {
+    [FURC_FISHING]   = {
         -- fishing
-        -- [118902] = GetString(SI_FURC_CANBEFISHED), 		-- Coral, Sun
+        -- [118902] = GetString(SI_FURC_CANBEFISHED),     -- Coral, Sun
     },
-    [FURC_DROP]		= {
-        -- [121058] = FURC_DB_SNEAKY, 						-- Candles of Silence
+    [FURC_DROP]    = {
+        -- [121058] = FURC_DB_SNEAKY,             -- Candles of Silence
     },
-
+
 }


 FurC.Recipes[FURC_SLAVES] = {
-
-	145944, -- Praxis: Murkmire Chair, Engraved
-	145945, -- Praxis: Murkmire Bench, Wide
-	145946, -- Praxis: Murkmire Bench, Armless
-	145947, -- Praxis: Murkmire Bed, Enclosed
-	145948, -- Praxis: Murkmire Pedestal, Low
-	145949, -- Praxis: Murkmire Table, Engraved
-	145950, -- Praxis: Murkmire Brazier, Engraved
-	145951, -- Praxis: Murkmire Bookshelf, Grand
-	145952, -- Praxis: Murkmire Bookshelf, Grand Full
-	145953, -- Praxis: Murkmire Sarcophagus, Empty
-	145954, -- Praxis: Murkmire Sarcophagus Lid
-	145955, -- Praxis: Murkmire Bookshelf
-	145956, -- Praxis: Murkmire Bookshelf, Full
-	145957, -- Praxis: Murkmire Platform, Sectioned
-	145958, -- Praxis: Murkmire Pedestal, Winged
-	145959, -- Praxis: Murkmire Totem, Beacon
-	145960, -- Diagram: Murkmire Brazier, Bowl
-	145961, -- Praxis: Murkmire Hearth Shrine, Sithis Rearing
-	145962, -- Praxis: Murkmire Hearth Shrine, Sithis Coiled
-	145963, -- Praxis: Murkmire Hearth Shrine, Sithis Looming
-	145964, -- Praxis: Murkmire Shrine, Sithis Relief
-	145965, -- Praxis: Murkmire Shrine, Sithis Rearing
-	145966, -- Praxis: Murkmire Shrine, Sithis Figure
-	145967, -- Praxis: Murkmire Shrine, Sithis Coiled
-	145968, -- Design: Murkmire Pot, Large Carved
-	145969, -- Design: Bowl of Worms
-	145970, -- Design: Bowl of Guts
-	145971, -- Design: Bowl of Worms, Large
-	145972, -- Design: Grub Kebabs
-	145973, -- Design: Murkmire Berry Strand
-	145974, -- Design: Murkmire Pot, Handmade
-	145975, -- Design: Melon, Wax
-	145976, -- Design: Dragonfruit, Wax
-	145977, -- Blueprint: Murkmire Platter, Large
-	145978, -- Blueprint: Murkmire Plate, Charger
-	145979, -- Praxis: Murkmire Wall, Stone
-	145980, -- Blueprint: Murkmire Bonding Chimes, Domed
-	145981, -- Formula: Murkmire Lantern, Covered
-	145982, -- Formula: Murkmire Lamp, Hanging Bottle
-	145983, -- Formula: Murkmire Lamp, Hanging Conch
-	145984, -- Formula: Murkmire Sconce, Shell
-	145985, -- Formula: Murkmire Brazier, Shell
-	145986, -- Formula: Murkmire Lamp, Shell
-	145987, -- Design: Murkmire Candlepost, Timber
-	145988, -- Design: Murkmire Candlepost, Driftwood
-	145989, -- Design: Murkmire Candles, Bone Group
-	145990, -- Design: Murkmire Candle, Bone Tall
-	145991, -- Design: Murkmire Candle, Bone Squat
-	145992, -- Blueprint: Murkmire Bed, Carved
-	145993, -- Blueprint: Murkmire Wardrobe, Woven
-	145994, -- Blueprint: Murkmire Chair, Woven
-	141899, -- Praxis: Sacrificial Altar, Hircine
-	141900, -- Blueprint: Ritual Fetish, Hircine
-	146004, -- Blueprint: Murkmire Ramp, Reed
-	146005, -- Blueprint: Murkmire Platform, Reed
-	146006, -- Blueprint: Murkmire Gate, Arched
-	146007, -- Blueprint: Murkmire Wall, Straight
-	146008, -- Blueprint: Murkmire Totem Post, Carved
-	146009, -- Blueprint: Murkmire Wall, Corner Curve
-	146010, -- Pattern: Murkmire Tapestry, Hist Gathering
-	146011, -- Pattern: Murkmire Rug, Hist Gathering
-	146012, -- Pattern: Murkmire Rug, Supine Turtle
-	146013, -- Pattern: Murkmire Rug, Crawling Serpents
-	146014, -- Pattern: Murkmire Rug, Lurking Lizard
-	146015, -- Pattern: Murkmire Tapestry, Xanmeer
-	146016, -- Blueprint: Murkmire Bonding Chimes, Simple
-	146017, -- Blueprint: Murkmire Totem, Wolf-Lizard
-	141898, -- Praxis: Ritual Stone, Hircine
-	141897, -- Praxis: Obelisk, Lord Hircine Ritual
-	141896, -- Sketch: Figurine, The Dragon's Glare
-	145995, -- Blueprint: Murkmire Trunk, Leatherbound
-	145999, -- Blueprint: Murkmire Shelf, Reed
-	145996, -- Blueprint: Murkmire Counter, Cabinet
-	145997, -- Blueprint: Murkmire Counter, Low Cabinet
-	145998, -- Blueprint: Murkmire Table, Woven
-	145915, -- Praxis: Murkmire Desk, Engraved
-	146000, -- Blueprint: Murkmire Shelves, Woven
-	146001, -- Blueprint: Murkmire Shelf, Woven Hanging
-	146002, -- Blueprint: Murkmire Ramp, Marshwood
-	146003, -- Blueprint: Murkmire Walkway, Reed
+
+  145944, -- Praxis: Murkmire Chair, Engraved
+  145945, -- Praxis: Murkmire Bench, Wide
+  145946, -- Praxis: Murkmire Bench, Armless
+  145947, -- Praxis: Murkmire Bed, Enclosed
+  145948, -- Praxis: Murkmire Pedestal, Low
+  145949, -- Praxis: Murkmire Table, Engraved
+  145950, -- Praxis: Murkmire Brazier, Engraved
+  145951, -- Praxis: Murkmire Bookshelf, Grand
+  145952, -- Praxis: Murkmire Bookshelf, Grand Full
+  145953, -- Praxis: Murkmire Sarcophagus, Empty
+  145954, -- Praxis: Murkmire Sarcophagus Lid
+  145955, -- Praxis: Murkmire Bookshelf
+  145956, -- Praxis: Murkmire Bookshelf, Full
+  145957, -- Praxis: Murkmire Platform, Sectioned
+  145958, -- Praxis: Murkmire Pedestal, Winged
+  145959, -- Praxis: Murkmire Totem, Beacon
+  145960, -- Diagram: Murkmire Brazier, Bowl
+  145961, -- Praxis: Murkmire Hearth Shrine, Sithis Rearing
+  145962, -- Praxis: Murkmire Hearth Shrine, Sithis Coiled
+  145963, -- Praxis: Murkmire Hearth Shrine, Sithis Looming
+  145964, -- Praxis: Murkmire Shrine, Sithis Relief
+  145965, -- Praxis: Murkmire Shrine, Sithis Rearing
+  145966, -- Praxis: Murkmire Shrine, Sithis Figure
+  145967, -- Praxis: Murkmire Shrine, Sithis Coiled
+  145968, -- Design: Murkmire Pot, Large Carved
+  145969, -- Design: Bowl of Worms
+  145970, -- Design: Bowl of Guts
+  145971, -- Design: Bowl of Worms, Large
+  145972, -- Design: Grub Kebabs
+  145973, -- Design: Murkmire Berry Strand
+  145974, -- Design: Murkmire Pot, Handmade
+  145975, -- Design: Melon, Wax
+  145976, -- Design: Dragonfruit, Wax
+  145977, -- Blueprint: Murkmire Platter, Large
+  145978, -- Blueprint: Murkmire Plate, Charger
+  145979, -- Praxis: Murkmire Wall, Stone
+  145980, -- Blueprint: Murkmire Bonding Chimes, Domed
+  145981, -- Formula: Murkmire Lantern, Covered
+  145982, -- Formula: Murkmire Lamp, Hanging Bottle
+  145983, -- Formula: Murkmire Lamp, Hanging Conch
+  145984, -- Formula: Murkmire Sconce, Shell
+  145985, -- Formula: Murkmire Brazier, Shell
+  145986, -- Formula: Murkmire Lamp, Shell
+  145987, -- Design: Murkmire Candlepost, Timber
+  145988, -- Design: Murkmire Candlepost, Driftwood
+  145989, -- Design: Murkmire Candles, Bone Group
+  145990, -- Design: Murkmire Candle, Bone Tall
+  145991, -- Design: Murkmire Candle, Bone Squat
+  145992, -- Blueprint: Murkmire Bed, Carved
+  145993, -- Blueprint: Murkmire Wardrobe, Woven
+  145994, -- Blueprint: Murkmire Chair, Woven
+  141899, -- Praxis: Sacrificial Altar, Hircine
+  141900, -- Blueprint: Ritual Fetish, Hircine
+  146004, -- Blueprint: Murkmire Ramp, Reed
+  146005, -- Blueprint: Murkmire Platform, Reed
+  146006, -- Blueprint: Murkmire Gate, Arched
+  146007, -- Blueprint: Murkmire Wall, Straight
+  146008, -- Blueprint: Murkmire Totem Post, Carved
+  146009, -- Blueprint: Murkmire Wall, Corner Curve
+  146010, -- Pattern: Murkmire Tapestry, Hist Gathering
+  146011, -- Pattern: Murkmire Rug, Hist Gathering
+  146012, -- Pattern: Murkmire Rug, Supine Turtle
+  146013, -- Pattern: Murkmire Rug, Crawling Serpents
+  146014, -- Pattern: Murkmire Rug, Lurking Lizard
+  146015, -- Pattern: Murkmire Tapestry, Xanmeer
+  146016, -- Blueprint: Murkmire Bonding Chimes, Simple
+  146017, -- Blueprint: Murkmire Totem, Wolf-Lizard
+  141898, -- Praxis: Ritual Stone, Hircine
+  141897, -- Praxis: Obelisk, Lord Hircine Ritual
+  141896, -- Sketch: Figurine, The Dragon's Glare
+  145995, -- Blueprint: Murkmire Trunk, Leatherbound
+  145999, -- Blueprint: Murkmire Shelf, Reed
+  145996, -- Blueprint: Murkmire Counter, Cabinet
+  145997, -- Blueprint: Murkmire Counter, Low Cabinet
+  145998, -- Blueprint: Murkmire Table, Woven
+  145915, -- Praxis: Murkmire Desk, Engraved
+  146000, -- Blueprint: Murkmire Shelves, Woven
+  146001, -- Blueprint: Murkmire Shelf, Woven Hanging
+  146002, -- Blueprint: Murkmire Ramp, Marshwood
+  146003, -- Blueprint: Murkmire Walkway, Reed
 }



 FurC.AchievementVendors[FURC_SLAVES] = {
-	-- ["the Undaunted Enclaves"] = {
-		-- ["Undaunted Quartermaster"] = {
-			-- [141858] = {        --Banner of the Silver Dawn
+  -- ["the Undaunted Enclaves"] = {
+    -- ["Undaunted Quartermaster"] = {
+      -- [141858] = {        --Banner of the Silver Dawn
                 -- itemPrice   = 15000,
                 -- achievement = 2152,
             -- },
@@ -247,105 +241,105 @@ FurC.AchievementVendors[FURC_SLAVES] = {
                 -- itemPrice   = 5000,
                 -- achievement = 2162,
             -- },
-		-- },
-	-- },
-	["Murkmire"] = {
-		[GetString(FURC_AV_HAR)] = {
-			[145408] = {        	--Argon Pedestal, Replica
-				itemPrice   = 15000,
-				achievement = 0,	-- The river of rebirth
-			},
-			[145406] = {        	--Banner, Bright-Throat
-				itemPrice   = 10000,
-				achievement = 2353,	-- murky marketeer
-			},
-			[145404] = {        	--Banner, Dead-Water
-				itemPrice   = 10000,
-				achievement = 2354, -- Cold Blood, Warm Heart
-			},
-			[145405] = {        	--Banner, Rootwater
-				itemPrice   = 10000,
-				achievement = 0,	-- Resplendent Rootmender
-			},
-			[145553] = {        	--Grave Stake, Small Glyphed
-				itemPrice   = 5000,
-				achievement = 2330,	-- Surreptiliously Shadowed
-			},
-			[145549] = {       		--Murkmire Totem, Stone Head
-				itemPrice   = 12000,
-				achievement = 0,	-- Art of the Nisswo
-			},
-			[145407] = {        	-- Remnant of Argon, Replica
-				itemPrice   = 75000,
-				achievement = 2339,	-- River of Rebirth
-			},
-			[145412] = {        	--Seed Doll, Turtle
-				itemPrice   = 20000,
-				achievement = 2336,	-- Sap-Sleeper
-			},
-			[145576] = {        	--Timid Vine-Tongue
-				itemPrice   = 40000,
-				achievement = 2357,	--	Vine-Tongue Traveler
-			},
+    -- },
+  -- },
+  ["Murkmire"] = {
+    [GetString(FURC_AV_HAR)] = {
+      [145408] = {          --Argon Pedestal, Replica
+        itemPrice   = 15000,
+        achievement = 0,  -- The river of rebirth
+      },
+      [145406] = {          --Banner, Bright-Throat
+        itemPrice   = 10000,
+        achievement = 2353,  -- murky marketeer
+      },
+      [145404] = {          --Banner, Dead-Water
+        itemPrice   = 10000,
+        achievement = 2354, -- Cold Blood, Warm Heart
+      },
+      [145405] = {          --Banner, Rootwater
+        itemPrice   = 10000,
+        achievement = 0,  -- Resplendent Rootmender
+      },
+      [145553] = {          --Grave Stake, Small Glyphed
+        itemPrice   = 5000,
+        achievement = 2330,  -- Surreptiliously Shadowed
+      },
+      [145549] = {           --Murkmire Totem, Stone Head
+        itemPrice   = 12000,
+        achievement = 0,  -- Art of the Nisswo
+      },
+      [145407] = {          -- Remnant of Argon, Replica
+        itemPrice   = 75000,
+        achievement = 2339,  -- River of Rebirth
+      },
+      [145412] = {          --Seed Doll, Turtle
+        itemPrice   = 20000,
+        achievement = 2336,  -- Sap-Sleeper
+      },
+      [145576] = {          --Timid Vine-Tongue
+        itemPrice   = 40000,
+        achievement = 2357,  --  Vine-Tongue Traveler
+      },

-		},
-		[GetString(FURC_AV_ADO)] = {
-			[145551] = {        -- Murkmire Kiln, Derelict
-				itemPrice   = 450,
-			},
-			[145557] = {        -- Plant Cluster, Spadeleaf
-				itemPrice   = 350,
-			},
-			[145414] = {        -- Plant Cluster, Marsh Saplings
-				itemPrice   = 250,
-			},
-			[145417] = {        -- Plant, Bramblebrush
-				itemPrice   = 250,
-			},
-			[145413] = {        -- Plant, Marsh Palm
-				itemPrice   = 350,
-			},
-			[145419] = {        -- Plant, Marshfrond
-				itemPrice   = 400,
-			},
-			[145547] = {        -- Plant, Moorstalk Hive
-				itemPrice   = 1250,
-			},
-			[145416] = {        -- Plant, Purple Spadeleaf
-				itemPrice   = 300,
-			},
-			[145420] = {        -- Plant, Thorny Swamp Lily
-				itemPrice   = 400,
-			},
-			[145418] = {        -- Plant, Young Marshfrond
-				itemPrice   = 250,
-			},
-			[145425] = {        -- Rock, Mossy Marsh
-				itemPrice   = 250,
-			},
-			[145424] = {        -- Rocks, Mossy Marsh Cluster
-				itemPrice   = 750,
-			},
-			[145422] = {        -- Tree Cluster, Young Sycamore
-				itemPrice   = 450,
-			},
-			[145421] = {        -- Tree, Marsh Cypress
-				itemPrice   = 350,
-			},
-			[145423] = {        -- Tree, Mire Mangrove
-				itemPrice   = 4000,
-			},
-			[145415] = {        -- Tree, Mossy Sycamore
-				itemPrice   = 2000,
-			},
+    },
+    [GetString(FURC_AV_ADO)] = {
+      [145551] = {        -- Murkmire Kiln, Derelict
+        itemPrice   = 450,
+      },
+      [145557] = {        -- Plant Cluster, Spadeleaf
+        itemPrice   = 350,
+      },
+      [145414] = {        -- Plant Cluster, Marsh Saplings
+        itemPrice   = 250,
+      },
+      [145417] = {        -- Plant, Bramblebrush
+        itemPrice   = 250,
+      },
+      [145413] = {        -- Plant, Marsh Palm
+        itemPrice   = 350,
+      },
+      [145419] = {        -- Plant, Marshfrond
+        itemPrice   = 400,
+      },
+      [145547] = {        -- Plant, Moorstalk Hive
+        itemPrice   = 1250,
+      },
+      [145416] = {        -- Plant, Purple Spadeleaf
+        itemPrice   = 300,
+      },
+      [145420] = {        -- Plant, Thorny Swamp Lily
+        itemPrice   = 400,
+      },
+      [145418] = {        -- Plant, Young Marshfrond
+        itemPrice   = 250,
+      },
+      [145425] = {        -- Rock, Mossy Marsh
+        itemPrice   = 250,
+      },
+      [145424] = {        -- Rocks, Mossy Marsh Cluster
+        itemPrice   = 750,
+      },
+      [145422] = {        -- Tree Cluster, Young Sycamore
+        itemPrice   = 450,
+      },
+      [145421] = {        -- Tree, Marsh Cypress
+        itemPrice   = 350,
+      },
+      [145423] = {        -- Tree, Mire Mangrove
+        itemPrice   = 4000,
+      },
+      [145415] = {        -- Tree, Mossy Sycamore
+        itemPrice   = 2000,
+      },

-		}
-	}
+    }
+  }
 }

 -- local versionData = FurC.MiscItemSources[FURC_SLAVES]

 -- d(zo_strformat("num entries in FurC.MiscItemSources[FURC_SLAVES]: <<1>>", NonContiguousCount(versionData)))
 -- for origin, originData in pairs(versionData) do
-	-- d(zo_strformat("origin <<1>>, <<2>> entries", origin, NonContiguousCount(originData)))
+  -- d(zo_strformat("origin <<1>>, <<2>> entries", origin, NonContiguousCount(originData)))
 -- end
\ No newline at end of file
diff --git a/data/100026.lua b/data/100026.lua
new file mode 100644
index 0000000..e92527c
--- /dev/null
+++ b/data/100026.lua
@@ -0,0 +1,148 @@
+
+FurC.AchievementVendors[FURC_WOTL] = {
+  ["the Undaunted Enclaves"] = {
+    ["Undaunted Quartermaster"] = {
+     [147645] = {    --Dwarven Tonal Arc
+		itemPrice   = 15000,
+		achievement = 2260,
+	  },
+
+      [147638] = {    --Replica Cursed Orb of Meridia
+		itemPrice   = 100000,
+		achievement = 2270,
+	  },
+
+    },
+  },
+}
+
+FurC.Recipes[FURC_WOTL] = {
+
+	147656, -- Dark Elf Tent, Canopy,
+	147657, -- Hlaalu Stove, Chiminea,
+	147651, -- Silver Kettle, Masterworked,
+	147652, -- Frog-Caller, Untuned,
+	147653, -- Pottery Wheel, Ever-Turning,
+	147654, -- Alchemical Apparatus, Condens
+	147655, -- Hlaalu Salt Lamp, Enchanted,
+}
+
+local rumourSource          = GetString(SI_FURC_RUMOUR_SOURCE_ITEM)
+FurC.MiscItemSources[FURC_WOTL]  = {
+  [FURC_RUMOUR]   = {
+		[134272] = rumourSource,     -- Cave Deposit, Stalagmite Cluster,
+        [147585] = rumourSource,     -- Dwarven Gear, Large Spokes,
+        [147586] = rumourSource,     -- Dwarven Hub, Sentry Wheel,
+        [147587] = rumourSource,     -- Dwarven Gear, Large Open,
+        [147588] = rumourSource,     -- Dwarven Conduit, Rounded,
+        [147589] = rumourSource,     -- Dwarven Brazier, Open,
+        [147590] = rumourSource,     -- Dwarven Bust, Forge-Lord,
+        [147591] = rumourSource,     -- Namira, Mistress of Decay,
+        [147592] = rumourSource,     -- Silver Kettle, Masterworked,
+        [140297] = rumourSource,     -- Replica Throne of Alinor,
+        [147594] = rumourSource,     -- Pottery Wheel, Ever-Turning,
+        [147595] = rumourSource,     -- Alchemical Apparatus, Condenser,
+        [147596] = rumourSource,     -- Hlaalu Salt Lamp, Enchanted,
+        [130189] = rumourSource,     -- Tapestry of Sheogorath,
+        [130190] = rumourSource,     -- Banner of Sheogorath,
+        [134287] = rumourSource,     -- Projector TBD,
+        [147600] = rumourSource,     -- Tapestry of Namira,
+        [130193] = rumourSource,     -- Robust Target Minotaur Handler,
+        [130194] = rumourSource,     -- Target Stone Atronach,
+        [130195] = rumourSource,     -- Target Iron Atronach,
+        [120852] = rumourSource,     -- Holding Cell,
+        [146069] = rumourSource,     -- Target Voriplasm,
+        [120856] = rumourSource,     -- Yokudan Sarcophagus,
+        [146073] = rumourSource,     -- Plant Cluster, Marsh Nigella,
+        [120858] = rumourSource,     -- Yokudan Tapestry,
+        [120860] = rumourSource,     -- Yokudan Throne,
+        [120861] = rumourSource,     -- Yokudan Sitting Griffin Statue,
+        [130080] = rumourSource,     -- Soul Gems, Scattered,
+        [130081] = rumourSource,     -- Soul-Shriven, Armored,
+        [130083] = rumourSource,     -- Daedric Block, Seat,
+        [130084] = rumourSource,     -- Daedric Tapestry, Molag Bal,
+        [130085] = rumourSource,     -- Daedric Banner, Molag Bal,
+        [130086] = rumourSource,     -- Daedric Pennant, Molag Bal,
+        [130087] = rumourSource,     -- Daedric Shards, Coldharbour,
+        [120872] = rumourSource,     -- Daedric Pike, Daedroth Head,
+        [130089] = rumourSource,     -- Daedric Brazier, Molag Bal,
+        [120874] = rumourSource,     -- Daedric Coffin, Lid,
+        [130091] = rumourSource,     -- Statue of Molag Bal, God of Schemes,
+        [120876] = rumourSource,     -- Gravestone, Imp Engraving,
+        [120877] = rumourSource,     -- Gravestone, Cracked,
+        [120880] = rumourSource,     -- Tombstone, Engraved, Decorative,
+        [120881] = rumourSource,     -- Tombstone, Engraved, Order of the Hour,
+        [120882] = rumourSource,     -- Tombstone, Small,
+        [147507] = rumourSource,     -- Music Box, \"Hinterlands\",
+        [147636] = rumourSource,     -- Banner of Hermaeus Mora,
+        [147638] = rumourSource,     -- Replica Cursed Orb of Meridia,
+        [147639] = rumourSource,     -- Magna-Geode,
+        [147640] = rumourSource,     -- Magna-Geode, Large,
+        [147641] = rumourSource,     -- Garlas Alpinia, Tall,
+        [147642] = rumourSource,     -- Boar Totem, Balance,
+        [147643] = rumourSource,     -- Boar Totem, Solitary,
+        [147644] = rumourSource,     -- Palisade, Crude,
+        [147645] = rumourSource,     -- Dwarven Tonal Arc,
+        [147646] = rumourSource,     -- Meridia, Lady of Infinite Energies,
+        [147647] = rumourSource,     -- Dwarven Centurion Blade, Detached,
+        [147648] = rumourSource,     -- Dwarven Press Bed, Forge-Sized,
+        [132166] = rumourSource,     -- Death Skeleton, Robed,
+        [134474] = rumourSource,     -- Banner, Malacath,
+        [147664] = rumourSource,     -- Dwarven Dais, Conduit,
+        [147599] = rumourSource,     -- Banner of Namira,
+        [147598] = rumourSource,     -- Hlaalu Stove, Chiminea,
+        [147597] = rumourSource,     -- Dark Elf Tent, Canopy,
+        [147593] = rumourSource,     -- Frog-Caller, Untuned,
+        [147584] = rumourSource,     -- Dwarven Rack, Spider Legs,
+        [120857] = rumourSource,     -- Yokudan Sarcophagus Lid,
+        [147505] = rumourSource,     -- Music Box, \"Y'ffre in Every Leaf\",
+        [147506] = rumourSource,     -- Music Box, \"Sands of the Alik'r\",
+        [120853] = rumourSource,     -- Stockade,
+        [147574] = rumourSource,     -- Dwarven Frieze, Wrathstone,
+        [147573] = rumourSource,     -- Barricade, Bladed Hurdle,
+        [132197] = rumourSource,     -- Death Skeleton, Shrouded,
+        [134246] = rumourSource,     -- The Law of Gears,
+        [147572] = rumourSource,     -- Barricade, Bladed Fence,
+        [132200] = rumourSource,     -- Imperial Well, Akatosh,
+        [132201] = rumourSource,     -- Tree, Kvatch Nut,
+        [132202] = rumourSource,     -- Rock, Anvil Limestone,
+        [132203] = rumourSource,     -- Stone, Anvil Limestone,
+        [132204] = rumourSource,     -- Imperial Statue, Truth,
+        [134253] = rumourSource,     -- Coldharbour Bookshelf, Filled Wide,
+        [134254] = rumourSource,     -- Seal of Molag Bal,
+        [134255] = rumourSource,     -- Transliminal Rupture,
+        [134256] = rumourSource,     -- Coldharbour Bookshelf, Filled Pillar,
+        [134257] = rumourSource,     -- Daedra Dossier: Cold-Flame Atronach,
+        [134258] = rumourSource,     -- Prayer to the Furious One,
+        [134259] = rumourSource,     -- Malacath, God of Oaths and Curses,
+        [134260] = rumourSource,     -- Orcish Bas-Relief, Axe,
+        [134261] = rumourSource,     -- Orcish Bas-Relief, Sword,
+        [134262] = rumourSource,     -- Orcish Bas-Relief, Spear,
+        [147575] = rumourSource,     -- Dwarven Frieze, Power in Twain,
+        [147576] = rumourSource,     -- Dwarven Frieze, Colossal Power,
+        [147577] = rumourSource,     -- Dwarven Platform, Fan,
+        [147578] = rumourSource,     -- Dwarven Throne, Conduit,
+        [147579] = rumourSource,     -- Dwarven Gearwork, Perpetual,
+        [147580] = rumourSource,     -- Dwarven Lamps, Heavy,
+        [147581] = rumourSource,     -- Dwarven Table, Heavy Workbench,
+        [147582] = rumourSource,     -- Dwarven Part, Sentry Head,
+        [147583] = rumourSource,     -- Dwarven Valve, Sealed,
+  },
+
+  [FURC_JUSTICE] = {
+
+  },
+
+  [FURC_DROP]    = {
+
+  },
+
+  [FURC_CROWN]  = {
+
+
+  },
+  [FURC_FISHING]   = {
+
+  },
+
+}
\ No newline at end of file
diff --git a/data/AchievementVendors.lua b/data/AchievementVendors.lua
index 1622207..21d6e46 100644
--- a/data/AchievementVendors.lua
+++ b/data/AchievementVendors.lua
@@ -1,270 +1,12 @@
-FurC.AchievementVendors[FURC_WEREWOLF] = {
-	["the Undaunted Enclaves"] = {
-		["Undaunted Quartermaster"] = {
-			[141857] = {        --Ritual Chalice, Hircine
-                itemPrice   = 5000,
-                achievement = 2162,
-            },
-			[141858] = {        --Banner of the Silver Dawn
-                itemPrice   = 15000,
-                achievement = 2152,
-            },
-		},
-	},
-
-
-	["Hew's Bane"] = {
-		[GetString(FURC_AV_LTS)] = {
-			[119966] = {        -- Iron Wheel Banner
-				itemPrice   = 15000,
-			},
-			[119971] = {        -- Statue of Shadows
-				itemPrice   = 25000,
-			},
-		}
-	},
-
-	[GetString(FURC_AV_ALI)] = {
-		[GetString(FURC_AV_UNW)] = {
-			[141824] = {
-				itemPrice 	= 100,
-			},
-			[141819] = {
-				itemPrice 	= 500,
-			},
-			[141818] = {
-				itemPrice 	= 100,
-			},
-			[141817] = {
-				itemPrice 	= 750,
-			},
-			[141816] = {
-				itemPrice 	= 500,
-			},
-		}
-	},
-
-	["Glenumbra, Daggerfall, The Rosy Lion"] = {
-
-		[GetString(FURC_AV_ROH)] = {
-			[130305] = {        -- Stone, Mossy Swamp
-				itemPrice   = 100,
-			},
-			[130306] = {        -- Stones, Gray Swampy
-				itemPrice   = 100,
-			},
-			[130292] = {        -- Stump, Fetid Swamp
-				itemPrice   = 100,
-			},
-			[130291] = {        -- Stump, Rotten Pine
-				itemPrice   = 100,
-			},
-		}
-	},
-}
-
-FurC.AchievementVendors[FURC_ALTMER] = {
-
-    [GetString(FURC_AV_ALI)] = {
-		[GetString(FURC_AV_UNW)] = {
-			[139122] = { -- Bush, Summerset Spruce
-				itemPrice 	= 100,
-			},
-			[139107] = { -- Coral Shelf, Flat
-				itemPrice 	= 100,
-			},
-			[139108] = { --  Coral Shelf, Large
-				itemPrice 	= 250,
-			},
-			[139127] = { -- Hedge, Overgrown
-				itemPrice 	= 100,
-			},
-			[139128] = { -- Hedge, Overgrown long
-				itemPrice 	= 100,
-			},
-			[139112] = { -- Limestone Border, Boulders
-				itemPrice 	= 100,
-			},
-			[139113] = { -- Limestone Border, Pebbles
-				itemPrice 	= 100,
-			},
-			[139111] = { -- Limestone Border, Stones
-				itemPrice 	= 100,
-			},
-			[139114] = { -- Limestone Retaining Wall, Curved
-				itemPrice 	= 100,
-			},
-			[139116] = { -- Limestone Retaining Wall, Long
-				itemPrice 	= 100,
-			},
-			[139115] = { -- Limestone Retaining Wall, Short
-				itemPrice 	= 100,
-			},
-			[139109] = { -- Limestone Shelf, Curved
-				itemPrice 	= 100,
-			},
-			[139110] = { -- Limestone Shelf, Large
-				itemPrice 	= 250,
-			},
-			[139117] = { -- Limestone Stairway, Natural
-				itemPrice 	= 100,
-			},
-			[139126] = { -- Sapling, Gingko
-				itemPrice 	= 100,
-			},
-			[139121] = { -- Sapling, Growing Shade
-				itemPrice 	= 100,
-			},
-			[139132] = { -- Sapling, Sea Grapes
-				itemPrice 	= 100,
-			},
-			[139124] = { -- Sapling, Summerset Spruce
-				itemPrice 	= 100,
-			},
-			[139120] = { -- Sapling, Young Shade
-				itemPrice 	= 100,
-			},
-			[139130] = { -- Saplings, Mangrove
-				itemPrice 	= 100,
-			},
-			[139125] = { -- Tree, Blooming Gingko
-				itemPrice 	= 2000,
-			},
-			[139131] = { -- Tree, Solitary Mangrove
-				itemPrice 	= 250,
-			},
-			[139134] = { -- Tree, Seagrapes
-				itemPrice 	= 100,
-			},
-			[139136] = { -- Tree, Twin Poplar
-				itemPrice 	= 100,
-			},
-			[139123] = { -- Tree, Summerset Spruce
-				itemPrice 	= 250,
-			},
-			[139119] = { -- Tree, Upstretched Shade
-				itemPrice 	= 250,
-			},
-			[139118] = { -- Tree, Wide-Trunked Shade
-				itemPrice 	= 250,
-			},
-			[139129] = { -- Tree, Young Mangrove
-				itemPrice 	= 100,
-			},
-			[139135] = { -- Tree, Young Poplar
-				itemPrice 	= 100,
-			},
-			[139133] = { -- Tree, Young Sea Grapes
-				itemPrice 	= 100,
-			},
-        },
-
-        [GetString(FURC_AV_TAR)] = {
-            [139369] = { -- Abyssal Pearl, Sealed
-                itemPrice 	= 75000,
-                achievement = 2101, -- Back to the Abyss
-            },
-            [139388] = { -- Banner of the House of Reveries, Hanging
-                itemPrice 	= 10000,
-                achievement = "Manor of Masques", --
-            },
-            [139377] = { -- Banner of the Sapiarchs, Hanging
-                itemPrice 	= 10000,
-                achievement = 2204, -- Resolute Guardian
-            },
-            [139393] = { -- Cloudrest Banner, hanging
-                itemPrice 	= 10000,
-                achievement = 2131, -- Cloudrest Completed
-            },
-            [139379] = { -- Coral Formation, Luminescent
-                itemPrice 	= 15000,
-                achievement = 2202, -- Precious Pearl
-            },
-            [139380] = { -- Crystal Tower Key, Replica
-                itemPrice 	= 150000,
-                achievement = 2208, -- What Must Be Done
-            },
-            [139371] = { -- Crystal Tower Stand
-                itemPrice 	= 50000,
-                achievement = 2193, -- Savior of Summerset
-            },
-            [139386] = { -- Direnni Banner, Hanging
-                itemPrice 	= 10000,
-                achievement = "Lauriel's Lament", --
-            },
-            [139302] = { -- Display Case, Exhibit
-                itemPrice 	= 25000,
-                achievement = 2203, -- Mind Games
-            },
-            [139374] = { -- Enchanted Text, Illusory Forest
-                itemPrice 	= 100000,
-                achievement = 2209, -- Summerset Grand Adventurer
-            },
-            [139381] = { -- Evergloam Wispstone
-                itemPrice 	= 75000,
-                achievement = 2207, -- Enemy of my enemy
-            },
-            [139326] = { -- High Elf Statue, Kinlady
-                itemPrice 	= 50000,
-                achievement = 2204, -- Resolute Guardian
-            },
-            [139373] = { -- High Elf Wine Press, Display
-                itemPrice 	= 20000,
-                achievement = 2007, -- Summerset Cave Delver
-            },
-            [139387] = { -- Lillandril Banner
-                itemPrice 	= 10000,
-                achievement = "Murder in Lilandril",
-            },
-            [139372] = { -- Mind Trap Kelp, Adult
-                itemPrice 	= 20000,
-                achievement = 2203, -- Mind Games
-            },
-            [139383] = { -- Psijic Control Globe, Inactive
-                itemPrice 	= 50000,
-                achievement = 2206, -- Unreliable Narrator
-            },
-            [139370] = { -- Replica of the Transparent Law
-                itemPrice 	= 100000,
-                achievement = 2193, -- Saviour of Summerset
-            },
-            [139378] = { -- Shimmerene Banner, Hanging
-                itemPrice 	= 10000,
-                achievement = 2194, -- The Good of Many
-            },
-            [139446] = { -- Spiral Skein Coral, Brittle-Vein
-                itemPrice 	= 10000,
-                achievement = 2008, -- Summerset Pathfinder
-            },
-            [139382] = { -- Spiral Skein Coral, Elkhorn
-                itemPrice 	= 1000,
-                achievement = 2205, -- Sweet Dreams
-            },
-            [139392] = { -- Sunhold Banner, Hanging
-                itemPrice 	= 10000,
-                achievement = 2095, -- Sunhold Group Event
-            },
-            [139385] = { -- The Keeper's Oath
-                itemPrice 	= 75000,
-                achievement = 2099, -- Relics of Summerset
-            },
-            [139384] = { -- Waterfall, Small Everlasting
-                itemPrice 	= 75000,
-                achievement = 2197, -- Divine Magistrate
-            },
-        },
-    },
-}
-

 -- global function, needs to live in latest AchievementVendors.lua, YES FUTURE MANA, THIS IS YOU FROM THE PAST
 function FurC.InitAchievementVendorList()

-	FurC.SetupHomesteadItems()
-	FurC.SetupMorrowindItems()
-	FurC.SetupReachItems()
+  FurC.SetupHomesteadItems()
+  FurC.SetupMorrowindItems()
+  FurC.SetupReachItems()

-	-- local generatedTable, listTable
+  -- local generatedTable, listTable


 end
diff --git a/data/EventItems.lua b/data/EventItems.lua
index 775bdd8..62767cb 100644
--- a/data/EventItems.lua
+++ b/data/EventItems.lua
@@ -12,59 +12,59 @@ FurC.Books[FURC_MORROWIND] = {

 FurC.EventItems[FURC_DRAGONS] = {
     ["Jester Festival"] = {
-		["Jester Boxes"] = {
-			[134680] = true, 	-- Jester Box
-		}
-	}
+    ["Jester Boxes"] = {
+      [134680] = true,   -- Jester Box
+    }
+  }

 }
 FurC.EventItems[FURC_MORROWIND] = {
-	["Midyear Mayhem"] = {
-		["Boon Box"] = {
-			[126157] = true,	-- Song of Pelinal, #1
-			[126158] = true,	-- Song of Pelinal, #2
-			[126159] = true,	-- Song of Pelinal, #3
-			[126160] = true,	-- Song of Pelinal, #4
-			[126161] = true,	-- Song of Pelinal, #5
-			[126162] = true,	-- Song of Pelinal, #6
-			[126163] = true,	-- Song of Pelinal, #7
-			[126164] = true,	-- Song of Pelinal, #8
-		},
-	},
+  ["Midyear Mayhem"] = {
+    ["Boon Box"] = {
+      [126157] = true,  -- Song of Pelinal, #1
+      [126158] = true,  -- Song of Pelinal, #2
+      [126159] = true,  -- Song of Pelinal, #3
+      [126160] = true,  -- Song of Pelinal, #4
+      [126161] = true,  -- Song of Pelinal, #5
+      [126162] = true,  -- Song of Pelinal, #6
+      [126163] = true,  -- Song of Pelinal, #7
+      [126164] = true,  -- Song of Pelinal, #8
+    },
+  },
     ["New Life"] = {
-		["Gift Box"] = {
-			[118053] = true, 	-- Common Campfire, Outdoor
-            [130326] = true, 	-- Witches Brazier, Primitive Log",
-		},
-	},
+    ["Gift Box"] = {
+      [118053] = true,   -- Common Campfire, Outdoor
+            [130326] = true,   -- Witches Brazier, Primitive Log",
+    },
+  },
 }
 FurC.EventItems[FURC_REACH] = {

-	["Witches' Festival"] = {
-		["Plunder Skull"] = {
-
-			[130337] = true, 	-- Witches Corpse, Wrapped",
-			[130336] = true, 	-- Witches Remains, Hagraven",
-			[130325] = true, 	-- Witches Totem, Emphatic Warning",
-			[130334] = true, 	-- Witches Totem, Antler Charms",
-			[130327] = true, 	-- Witches Totem, Wooden Rack",
-			[130328] = true, 	-- Witches Skull, Horned Ram",
-			[130332] = true, 	-- Witches Totem, Bone Charms",
-			[130340] = true, 	-- Witches Totem, Gnarled Vines and Skull",
-			[130339] = true, 	-- Witches Totem, Twisted Vines and Skull
-			[130338] = true, 	-- Witches Bones, Offering",
-			[131434] = true, 	-- Witch's Festival, Cursed Totem,
-			[130302] = GetString(SI_FURC_WW), 	-- Shrub, Burnt Brush"
-			[130298] = GetString(SI_FURC_WW),	-- Branch, Curved Laurel
-			[130296] = GetString(SI_FURC_WW),	-- Branch, Sturdy Laurel
-			[130295] = GetString(SI_FURC_WW),	-- Branch, Sturdy Burnt
-			[130294] = GetString(SI_FURC_WW),	-- Branch, Forked Burnt
-			[130293] = GetString(SI_FURC_WW),	-- Branch, Curved Burnt
-			[130301] = GetString(SI_FURC_WW),	-- Saplings, Burnt Sparse
-			[130299] = GetString(SI_FURC_WW),	-- Saplings, Burnt Cluster
-			[130300] = GetString(SI_FURC_WW),	-- Saplings, Burnt Tall
-			[130297] = GetString(SI_FURC_WW),	-- Branch, Forked Laurel
-			[130280] = GetString(SI_FURC_WW),	-- Sapling, Petrified Ashen
-		}
-	}
+  ["Witches' Festival"] = {
+    ["Plunder Skull"] = {
+
+      [130337] = true,   -- Witches Corpse, Wrapped",
+      [130336] = true,   -- Witches Remains, Hagraven",
+      [130325] = true,   -- Witches Totem, Emphatic Warning",
+      [130334] = true,   -- Witches Totem, Antler Charms",
+      [130327] = true,   -- Witches Totem, Wooden Rack",
+      [130328] = true,   -- Witches Skull, Horned Ram",
+      [130332] = true,   -- Witches Totem, Bone Charms",
+      [130340] = true,   -- Witches Totem, Gnarled Vines and Skull",
+      [130339] = true,   -- Witches Totem, Twisted Vines and Skull
+      [130338] = true,   -- Witches Bones, Offering",
+      [131434] = true,   -- Witch's Festival, Cursed Totem,
+      [130302] = GetString(SI_FURC_WW),   -- Shrub, Burnt Brush"
+      [130298] = GetString(SI_FURC_WW),  -- Branch, Curved Laurel
+      [130296] = GetString(SI_FURC_WW),  -- Branch, Sturdy Laurel
+      [130295] = GetString(SI_FURC_WW),  -- Branch, Sturdy Burnt
+      [130294] = GetString(SI_FURC_WW),  -- Branch, Forked Burnt
+      [130293] = GetString(SI_FURC_WW),  -- Branch, Curved Burnt
+      [130301] = GetString(SI_FURC_WW),  -- Saplings, Burnt Sparse
+      [130299] = GetString(SI_FURC_WW),  -- Saplings, Burnt Cluster
+      [130300] = GetString(SI_FURC_WW),  -- Saplings, Burnt Tall
+      [130297] = GetString(SI_FURC_WW),  -- Branch, Forked Laurel
+      [130280] = GetString(SI_FURC_WW),  -- Sapling, Petrified Ashen
+    }
+  }
 }
diff --git a/data/LuxuryFurnisher.lua b/data/LuxuryFurnisher.lua
index 155b87e..31d6918 100644
--- a/data/LuxuryFurnisher.lua
+++ b/data/LuxuryFurnisher.lua
@@ -1,359 +1,388 @@
 FurC.LuxuryFurnisher = FurC.LuxuryFurnisher or {}

+FurC.LuxuryFurnisher[FURC_WOTL] = {
+  -- [145468] = {    -- Wedding Lantern, Hanging
+    -- itemPrice   = 5000,
+    -- itemDate  = "2019-02-09",
+  -- },
+
+}

-FurC.LuxuryFurnisher[FURC_WEREWOLF] = {
-
-[139106] = {        -- Reach Briarheart, Corpse Blue
-        itemPrice   = 15000,
-		itemDate	= "2018-09-16",
-    },
-	-- Sept. 30
-	[132144] = { -- Reach Briarheart, Blood Red
-		itemPrice 	= 15000,
-		itemDate	= "2018-09-16",
-	},
-	[132141] = { -- Reach Skull, Mammoth
-		itemPrice 	= 50000,
-		itemDate	= "2018-09-16",
-	},
-	[132142] = { -- Reach Tent, Camp
-		itemPrice 	= 2500,
-		itemDate	= "2018-09-16",
-	},
-
-	[139105] = {        -- Reach Grinding Stones, Nirncrux
-        itemPrice   = 4500,
-		itemDate	= "2018-09-08",
-    },
-
-	-- Sept. 23rd
-	[131435] = { -- Reach Bowl, Nirncrux
-		itemPrice 	= 5000,
-		itemDate	= "2018-09-08",
-	},
-	[131438] = { -- Reach Grinder, Nirncrux
-		itemPrice 	= 50000,
-		itemDate	= "2018-09-08",
-	},
-	[131436] = { -- Reach Vine, Bloodroot Sprout
-		itemPrice 	= 15000,
-		itemDate	= "2018-09-08",
-	},
-	[131437] = { -- Reach Vine, Bloodroot Tendril
-		itemPrice 	= 25000,
-		itemDate	= "2018-09-08",
-	},

+FurC.LuxuryFurnisher[FURC_SLAVES] = {
+
+  [145469] = {    -- Redguard Gazebo, Palatial Domed
+    itemPrice   = 75000,
+    itemDate  = "2019-02-16",
+  },

-	[120844] = {        -- Craglorn Brazier, Ornate
-        itemPrice   = 15000,
-		itemDate	= "2018-09-01",
-    },
-    [139104] = {        -- Craglorn Relief, Serpent
-        itemPrice   = 20000,
-		itemDate	= "2018-09-01",
-    },
-    [120843] = {        -- Craglorn Skull, Carved
-        itemPrice   = 35000,
-		itemDate	= "2018-09-01",
-    },
-    [120845] = {        -- Craglorn Sword Sconce
-        itemPrice   = 5000,
-		itemDate	= "2018-09-01",
-    },
+  [120802] = {  -- Shrine of Mara, Decorative
+    itemPrice   = 50000,
+    itemDate  = "2019-02-16",
+  },
+  [120799] = {  -- Wedding Blossoms, Peach
+    itemPrice   = 2500,
+    itemDate  = "2019-02-16",
+  },
+  [120893] = {  -- Wedding Gazebo
+    itemPrice   = 50000,
+    itemDate  = "2019-02-16",
+  },
+  [117875] = {    -- Wedding Pergola, Bare
+    itemPrice   = 35000,
+    itemDate  = "2019-02-16",
+  },

-	[139103] = {        -- Craglorn Display Case, Sealed
-        itemPrice   = 10000,
-		itemDate	= "2018-08-25",
-    },

-	[120842] = { -- Craglorn Chair, Serpent
-		itemPrice 	= 2500,
-		itemDate	= "2018-08-25",
-	},
-	[120841] = { -- Craglorn Urn, Standing
-		itemPrice 	= 7500,
-		itemDate	= "2018-08-25",
-	},
-	[120840] = { -- Craglorn Coffer, Ornate
-		itemPrice 	= 5000,
-		itemDate	= "2018-08-25",
-	},
-}
-FurC.LuxuryFurnisher[FURC_ALTMER] = {
+  [145468] = {    -- Wedding Lantern, Hanging
+    itemPrice   = 5000,
+    itemDate  = "2019-02-09",
+  },
+  [117876] = {  -- Wedding Curtain, Wide
+    itemPrice   = 7500,
+    itemDate  = "2019-02-09",
+  },
+  [120798] = {  -- Wedding Blossoms, Blue
+    itemPrice   = 2500,
+    itemDate  = "2019-02-09",
+  },
+  [120800] = {  -- Wedding Curtain
+    itemPrice   = 7500,
+    itemDate  = "2019-02-09",
+  },
+  [120801] = {  -- Wedding Lantern
+    itemPrice   = 5000,
+    itemDate  = "2019-02-09",
+  },
+  [120797] = {  -- Wedding Flower Trellis
+    itemPrice   = 10000,
+    itemDate  = "2019-02-09",
+  },

+  [141769] = {    -- Ayleid Constellation Stele, The Atronach
+    itemPrice   = 20000,
+    itemDate  = "2018-02-02",
+  },
+  [141767] = {    -- Ayleid Constellation Stele, The Lady
+    itemPrice   = 20000,
+    itemDate  = "2018-02-02",
+  },
+  [141768] = {    -- Ayleid Constellation Stele, The Lover
+    itemPrice   = 20000,
+    itemDate  = "2018-02-02",
+  },
+  [134469] = { -- Ayleid Constellation Stele, the Mage
+    itemPrice  = 20000,
+    itemDate  = "2018-02-02",
+  },
+  [134470] = { -- Ayleid Constellation Stele, Thief
+    itemPrice  = 20000,
+    itemDate  = "2018-02-02",
+  },
+  [134471] = { -- Ayleid Constellation Stele, Warrior
+    itemPrice  = 20000,
+    itemDate  = "2018-02-02",
+  },

-	[139102] = {        -- Blue Crystal Spire, Large
-        itemPrice   = 18000,
-		itemDate	= "2018-08-18",
-    },
+
+  [134468] = {    -- Ayleid Switch, Ancient
+    itemPrice   = 4000,
+    itemDate  = "2019-01-27",
+  },
+  [134466] = { -- Ayleid Sconce, Empty
+    itemPrice  = 4000,
+    itemDate  = "2019-01-27",
+  },
+  [134467] = { -- Culanda Stone ,Glowing
+    itemPrice  = 5000,
+    itemDate  = "2019-01-27",
+  },
+  [134465] = { -- Varla Stone ,Glowing
+    itemPrice  = 5000,
+    itemDate  = "2019-01-27",
+  },

-	-- Sept. 2nd + 3rd
-	[120832] = { -- Blue Crystal Spire
-		itemPrice 	= 12000,
-		itemDate	= "2018-08-18",
-	},
-	[120834] = { -- Blue Flame Brazier
-		itemPrice 	= 5000,
-		itemDate	= "2018-08-18",
-	},
-	[121272] = { -- Great Soul Gem
-		itemPrice 	= 20000,
-		itemDate	= "2018-08-18",
-	},
+
+  [134460] = {    -- Riekling Lean-To, Boar Pelt
+    itemPrice   = 4000,
+    itemDate  = "2019-01-12",
+  },
+  [134457] = {  -- Riekling Bedding, Icy Straw
+    itemPrice   = 2500,
+    itemDate  = "2019-01-12",
+  },
+  [134458] = {  -- Riekling Pelt, Boar
+    itemPrice   = 4000,
+    itemDate  = "2019-01-12",
+  },
+  [134459] = {  -- Riekling Pit, Ash and Bone
+    itemPrice   = 7500,
+    itemDate  = "2019-01-12",
+  },

+  [134453] = {  -- Ancient Orcish Counterweight
+    itemPrice   = 20000,
+    itemDate  = "2019-01-05",
+  },
+  [134450] = {  -- Seal of Clan Morkul, Stone
+    itemPrice   = 4000,
+    itemDate  = "2019-01-05",
+  },
+  [134451] = {  -- Seal of Clan Shatul, Stone
+    itemPrice   = 4000,
+    itemDate  = "2019-01-05",
+  },
+  [134452] = {  -- Seal of Clan Tumnosh, Stone
+    itemPrice   = 4000,
+    itemDate  = "2019-01-05",
+  },
+  [134454] = {    -- Seal of Clan Morkul, Metal
+    itemPrice   = 4000,
+    itemDate  = "2019-01-05",
+  },
+  [134455] = {    -- Seal of Clan Shatul, Metal
+    itemPrice   = 4000,
+    itemDate  = "2019-01-05",
+  },
+  [134456] = {    -- Seal of Clan Tumnosh, Metal
+    itemPrice   = 4000,
+    itemDate  = "2019-01-05",
+  },

-	[139101] = {        -- Blue Crystal Cluster, Large
-		itemPrice   = 20000,
-		itemDate	= "2018-08-11",
-    },
-	[120831] = { -- Blue Crystal Cluster
-		itemPrice 	= 10834,
-		itemDate	= "2018-08-11",
-	},
-	[120833] = { -- Blue Crystal Fragments
-		itemPrice 	= 8125,
-		itemDate	= "2018-08-11",
-	},
-	[120830] = { -- Blue Flame Candles
-		itemPrice 	= 2500,
-		itemDate	= "2018-08-11",
-	},
-	[121273] = { -- Soul Gem, Grand
-		itemPrice 	= 5417,
-		itemDate	= "2018-08-11",
-	},
+  -- Dec. 30thst
+  [134442] = {  -- Seal of Clan Bagrakh, Stone
+    itemPrice   = 4000,
+    itemDate    = "2019-12-29",
+  },
+  [134443] = {  -- Seal of Clan Fharun, Stone
+    itemPrice   = 4000,
+    itemDate    = "2019-12-29",
+  },
+  [134444] = {  -- Seal of Clan Igrun, Stone
+    itemPrice   = 4000,
+    itemDate    = "2019-12-29",
+  },
+  [134447] = {    -- Seal of Clan Bagrakh, Metal
+    itemPrice   = 4000,
+    itemDate    = "2019-12-29",
+  },
+  [134448] = {    -- Seal of Clan Fharun, Metal
+    itemPrice   = 4000,
+    itemDate    = "2019-12-29",
+  },
+  [134449] = {    -- Seal of Clan Igrun, Metal
+    itemPrice   = 4000,
+    itemDate    = "2019-12-29",
+  },

+
+  [134446] = {  -- Ancient Orcish Sarcophagus Lid
+    itemPrice   = 10000,
+    itemDate  = "2019-12-29",
+  },
+  [134445] = {  -- Ancient Orcish Sarcophagus, Peaked
+    itemPrice   = 14000,
+    itemDate  = "2019-12-29",
+  },
+
+  -- Dec. 23rd
+  [134439] = {  -- Clockwork Alchemy Flask
+    itemPrice   = 3000,
+    itemDate  = "2019-12-22",
+  },
+  [134438] = {  -- Clockwork Alchemy Rack, Tubes
+    itemPrice   = 3000,
+    itemDate  = "2019-12-22",
+  },
+  [134440] = {  -- Clockwork Alchemy Titration Stand
+    itemPrice   = 3000,
+    itemDate  = "2019-12-22",
+  },
+  [134441] = {    -- Animo Core, Full
+    itemPrice   = 10000,
+    itemDate  = "2019-12-22",
+  },

-    [139100] = {        -- Dark Elf Ash Garden, Familial
-        itemPrice   = 10000,
-		itemDate	= "2018-08-04",
-    },
-	[126579] = { -- Velothi Altar, Sacrificial
-		itemPrice 	= 10834,
-		itemDate	= "2018-08-04",
-	},
-	[126576] = { -- Velothi Kneeler, Prayer
-		itemPrice 	= 3000,
-		itemDate	= "2018-08-04",
-	},
+
+
+  -- Dec. 15th
+  [134435] = {  -- Clockwork Loom, Sturdy
+    itemPrice   = 20000,
+    itemDate  = "2019-12-15",
+  },
+  [134434] = {  -- Quality Fabric, Stacked
+    itemPrice   = 450,
+    itemDate  = "2019-12-15",
+  },
+  [134436] = {  -- Spool, Blue Thread
+    itemPrice   = 450,
+    itemDate  = "2019-12-15",
+  },
+  [134437] = {    -- Clockwork Spinning Wheel, Sturdy
+    itemPrice   = 12000,
+    itemDate  = "2019-12-15",
+  },

-	[126577] = { -- Velothi Podium of Recitation
-		itemPrice 	= 37500,
-		itemDate	= "2018-08-04",
-	},
+
+  -- Dec. 8th
+  [134432] = {  -- Banker's Sign, Small
+    itemPrice   = 3000,
+    itemDate  = "2019-12-08",
+  },
+  [134431] = {  -- Merchant's Sign, Small
+    itemPrice   = 3000,
+    itemDate  = "2019-12-08",
+  },
+  [134433] = {  -- Stablemaster's Sign, Small
+    itemPrice   = 3000,
+    itemDate  = "2019-12-08",
+  },
+  [141765] = {    -- Banner, Transmute
+    itemPrice   = 12000,
+    itemDate  = "2019-12-08",
+  },
+  [141766] = {    -- Banner, Transmute Small
+    itemPrice   = 5000,
+    itemDate  = "2019-12-08",
+  },

-	[126578] = { -- Velothi Burial Urn
-		itemPrice 	= 10834,
-		itemDate	= "2018-08-04",
-	},
-
-	-- August 5+6
-	[126573] = { -- Velothi Candle, Mourning
-		itemPrice 	= 5000,
-		itemDate	= "2018-07-28",
-	},
-	[126574] = { -- Velothi Cerecloth, Prayer
-		itemPrice 	= 5000,
-		itemDate	= "2018-07-28",
-	},
-	[126575] = { -- Velothi Seat, Meditation
-		itemPrice 	= 10000,
-		itemDate	= "2018-07-28",
-	},
-	[126572] = { -- Velothi Shroud, Mourning
-		itemPrice 	= 5000,
-		itemDate	= "2018-07-28",
-	},
-    [139099] = { -- Dark Elf Brazier, Ancestral Tomb
-        itemPrice   = 15000,
-		itemDate	= "2018-07-28",
-    },
+
+  [141763] = {    -- Banner, Outfit
+    itemPrice   = 12000,
+    itemDate  = "2019-12-01",
+  },
+  [141764] = {    -- Banner, Outfit Small
+    itemPrice   = 5000,
+    itemDate  = "2019-12-01",
+  },
+  -- Dec. 1st
+  [134428] = {  -- Banker's Sign, Large
+    itemPrice   = 12000,
+    itemDate  = "2019-12-01",
+  },
+  [134429] = {  -- Merchant's Sign, Large
+    itemPrice   = 12000,
+    itemDate  = "2019-12-01",
+  },
+  [134430] = {  -- Stablemaster's Sign, Large
+    itemPrice   = 12000,
+    itemDate  = "2019-12-01",
+  },
+
+  -- Nov. 25th
+  [134424] = {  -- Clockwork Gear Display, Bell Jar
+    itemPrice   = 2500,
+    itemDate  = "2019-11-24",
+  },
+  [134423] = {  -- Clockwork Gear Display, Tall Jar
+    itemPrice   = 3000,
+    itemDate  = "2019-11-24",
+  },
+  [134426] = {  -- Clockwork Globe, Stand
+    itemPrice   = 4000,
+    itemDate  = "2019-11-24",
+  },
+  [134425] = {  -- Clockwork Orrery, Compact
+    itemPrice   = 20000,
+    itemDate  = "2019-11-24",
+  },
+  [134427] = {    -- Clockwork Orrery, Intricate
+    itemPrice   = 100000,
+    itemDate  = "2019-11-24",
+  },

-
-    [139098] = { -- Darkshade Glowstalks, Inquisitive
-        itemPrice   = 45000,
-		itemDate	= "2018-07-21",
-    },
-	-- August 5+6
-	[126611] = { -- Vvardenfell Anemone, Sprout
-		itemPrice 	= 5417,
-		itemDate	= "2018-07-21",
-	},
-	[126612] = { -- Vvardenfell Anemone, Strong
-		itemPrice 	= 27084,
-		itemDate	= "2018-07-21",
-	},
-	[126610] = { -- Vvardenfell Coral Plant,
-		itemPrice 	= 10834,
-		itemDate	= "2018-07-21",
-	},
-	[126591] = { -- Vvardenfell Coral Plant, Young
-		itemPrice 	= 5417,
-		itemDate	= "2018-07-21",
-	},
+
+  [134422] = {    -- Clockwork Sextant, Surveyor's
+    itemPrice   = 75000,
+    itemDate  = "2019-11-17",
+  },
+  [134421] = {    -- Clockwork Calibration Guide, The Warrior
+    itemPrice   = 50000,
+    itemDate  = "2019-11-17",
+  },
+  [134420] = {    -- Clockwork Calibration Guide, The Thief
+    itemPrice   = 50000,
+    itemDate  = "2019-11-17",
+  },
+  [134419] = {    -- Clockwork Calibration Guide, The Mage
+    itemPrice   = 50000,
+    itemDate  = "2019-11-17",
+  },
+  [134418] = {    -- Clockwork Telescope, Surveyor's
+    itemPrice   = 15000,
+    itemDate  = "2019-11-17",
+  },

+
+  [141762] = {        -- Animal Trap, Welded Open
+    itemPrice   = 2500,
+    itemDate  = "2019-11-10",
+  },

-    [139097] = { -- Spiral Skein Glowstalks, Sprouts
-       itemPrice = 8000,
-		itemDate	= "2018-07-14",
+  -- Nov. 11th
+  [118285] = {  -- Carcass, Fresh Pheasant
+    itemPrice = 7500,
+    itemDate  = "2019-11-10",
+  },
+  [118292] = {  -- Elk Head, Wall Mount
+    itemPrice = 20000,
+    itemDate  = "2019-11-10",
+  },
+  [116506] = {  -- Orcish Grand Table with Skins
+    itemPrice = 50000,
+    itemDate  = "2019-11-10",
+  },
+  [118243] = {  -- Tapestry, Echatere Pelt
+    itemPrice = 25000,
+    itemDate  = "2019-11-10",
+  },
+
+  [118294] = {        -- Echatere Horns, Wall Mount
+    itemPrice   = 15000,
+    itemDate    = "2019-11-03",
+  },
+  [118286] = {  -- Carcass, Grey Hare
+    itemPrice = 5000,
+    itemDate  = "2019-11-03",
+  },
+  [118281] = {  -- Carcass, Hanging Geese
+    itemPrice = 7000,
+    itemDate  = "2019-11-03",
+  },
+  [118279] = {  -- Deer Head, Wall Mount
+    itemPrice = 15000,
+    itemDate  = "2019-11-03",
+  },
+  [118298] = {  -- Wolf Head, Wall Mount
+    itemPrice = 20000,
+    itemDate  = "2019-11-03",
+  },
+
+
+ [141761] = {        -- Reach Sapling, Contorted Briarheart
+      itemDate  = "2019-10-27",
+      itemPrice   = 35000,
     },
-
-	--July 29 + 30
-	[126587] = {	-- Vvardenfell Glowstalk, Sprout
-		itemPrice 	= 2500,
-		itemDate	= "2018-07-14",
-	},
-	[126585] = {	-- Vvardenfell Glowstalk, Strong
-		itemPrice 	= 10000,
-		itemDate	= "2018-07-14",
-	},
-	[126580] = {	-- Vvardenfell Glowstalk, Towering
-		itemPrice 	= 15000,
-		itemDate	= "2018-07-14",
-	},
-	[126586] = {	-- Vvardenfell Glowstalk, Young
-		itemPrice 	= 5000,
-		itemDate	= "2018-07-14",
-	},
+  [132156] = {        -- Briarheart Tree, Replica
+      itemDate  = "2019-10-27",
+      itemPrice   = 100000,
+  },
+  [132158] = {  -- Witch's Remains, Offering
+    itemPrice = 50000,
+    itemDate  = "2019-10-27",
+  },
+  [132157] = {  -- Witch's Remains, Sacrificial
+    itemPrice = 50000,
+    itemDate  = "2019-10-27",
+  },
+  -- Oct 28th
+  [132143] = {  -- Reach Sapling, Briarheart
+    itemPrice = 50000,
+    itemDate  = "2019-10-27",
+  },
+  [141760] = {        -- Witch's Tree, Charred
+    itemPrice   = 5000,
+    itemDate  = "2019-10-20",
+  },

-
-
-	[139096] = {	-- Daedric Urn, Sealed
-		itemPrice 	= 1000,
-		itemDate	= "2018-07-07",
-	},
-    [139095] = {	-- Daedric Drinking Bowl, Ritual
-		itemPrice 	= 650,
-		itemDate	= "2018-07-07",
-	},
-    [126571] = {	-- Daedric Chandelier, Spiked
-		itemPrice 	= 8000,
-		itemDate	= "2018-07-07",
-	},
-	[126569] = {	-- Daedric Chest, Sealed
-		itemPrice 	= 8000,
-		itemDate	= "2018-07-07",
-	},
-	[126570] = {	-- Daedric Throne, Skulls
-		itemPrice 	= 25000,
-		itemDate	= "2018-07-07",
-	},
-
-
-    [139094] = { -- Daedric Altar, Periyte
-		itemPrice 	= 40000,
-		itemDate	= "2016-06-30",
-	},
-	[126567] = {	-- Daedric Sarcophagus, Sealed
-		itemPrice 	= 10000,
-		itemDate	= "2016-06-30",
-	},
-	[126565] = {	-- Daedric Platform, Sarcophagus
-		itemPrice 	= 8000,
-		itemDate	= "2016-06-30",
-	},
-	[126566] = {	-- Daedric Brazier, Ritual
-		itemPrice 	= 25000,
-		itemDate	= "2016-06-30",
-	},
-
-
-	[126562] = {	-- Dwarven Crystal Mechanism
-		itemPrice 	= 50000,
-		itemDate	= "2018-06-23",
-	},
-	[126563] = {	-- Dwarven Orrery, Reference
-		itemPrice 	= 25000,
-		itemDate	= "2018-06-23",
-	},
-	[126559] = {	-- Dwarven Schematics, technical
-		itemPrice 	= 8000,
-		itemDate	= "2018-06-23",
-	},
-	[139093] = {	-- Dwarven Centurion Hammer, Detached
-		itemPrice 	= 3000,
-		itemDate	= "2018-06-23",
-	},
-
-	--
-	[126560] = {	-- Dwarven fountain, forged
-		itemPrice 	= 50000,
-		itemDate	= "2017-06-16",
-	},
-	[126564] = {	-- Dwarven Clock, Deactivated
-		itemPrice 	= 15000,
-		itemDate	= "2017-06-16",
-	},
-	[126561] = {	-- Dwarven Pillar, Forged
-		itemPrice 	= 10000,
-		itemDate	= "2017-06-16",
-	},
-	[139092] = {	-- Dwarven Engine, Fused
-		itemPrice 	= 24000,
-		itemDate	= "2017-06-16",
-	},
-
-	-- June, 23 - 26
-	[121270] = {	-- Brotherhood Banner, Large
-		itemPrice 	= 25000,
-		itemDate	= "2018-06-09",
-	},
-	[120836] = {	-- Brotherhood Candelabra, Floor
-		itemPrice 	= 8000,
-		itemDate	= "2018-06-09",
-	},
-	[120839] = {	-- Brotherhood Ledger, Stand
-		itemPrice 	= 4000,
-		itemDate	= "2018-06-09",
-	},
-	[120838] = {	-- Brotherhood Plaque, Wolf
-		itemPrice 	= 25000,
-		itemDate	= "2018-06-09",
-	},
-	[134846] = {	-- Brotherhood Carpet, Large
-		itemPrice 	= 15000,
-		itemDate	= "2018-06-09",
-	},
-
-	[134845] = {	-- Brotherhood  Tapestry, Small
-		itemPrice 	= 5000,
-		itemDate	= "2018-06-02",
-	},
-	[120837] = {	-- Brotherhood Window, Stained Glass
-		itemPrice 	= 100000,
-		itemDate	= "2018-06-02",
-	},
-	[121271] = {	-- Brotherhood Tapestry
-		itemPrice 	= 10000,
-		itemDate	= "2018-06-02",
-	},
-	[120835] = {	-- Brotherhood Candelabra, Table
-		itemPrice 	= 2500,
-		itemDate	= "2018-06-02",
-	},
-
-
-	[134844] = {	-- Ra Gada Statue, Forward Scout
-		itemPrice 	= 25000,
-		itemDate	= "2018-05-26",
-	},
-	[120808] = {	-- Statue Base, Circular
-		itemPrice 	= 2500,
-		itemDate	= "2018-05-26",
-	},
-	[120811] = {	-- Statue, Justice
-		itemPrice 	= 25000,
-		itemDate	= "2018-05-26",
-	},
-	[120814] = {	-- Statue, Order
-		itemPrice 	= 25000,
-		itemDate	= "2018-05-26",
-	},
-	[120813] = {	-- Statue, Truth
-		itemPrice 	= 25000,
-		itemDate	= "2018-05-26",
-	},
-
 }
-
diff --git a/data/MiscItemSources.lua b/data/MiscItemSources.lua
index db6e86b..8bd1e9e 100644
--- a/data/MiscItemSources.lua
+++ b/data/MiscItemSources.lua
@@ -1,642 +1,1348 @@
 -- use constants because it's a huge performance gain due to how LUA handles strings... at least unless siri lied :P

-local FURC_CANBEPICKED_WW		= GetString(SI_FURC_CANBEPICKED) .. " from woodworkers"
-local FURC_CANBEPICKED_ASS 	    = GetString(SI_FURC_CANBEPICKED) .. " from outlaws and assassins"
-local FURC_CANBEPICKED_GUARD	= GetString(SI_FURC_CANBEPICKED) .. " from guards"
+local questRewardString     = GetString(SI_FURC_QUESTREWARD)

-local FURC_CANBESTOLENINCC 		= GetString(SI_FURC_CANBESTOLEN) .. " in Clockwork City"
-local FURC_CANBESTOLEN_SCHOLARS = GetString(SI_FURC_CANBESTOLEN) .. " from scholars"
-local FURC_CANBESTOLEN_NERDS	= FURC_CANBESTOLEN_SCHOLARS      .. " and mages"
-local FURC_CANBESTOLEN_RELIG	= GetString(SI_FURC_CANBESTOLEN) .. " from priests and pilgrims"
-local FURC_CANBESTOLEN_THIEF	= GetString(SI_FURC_CANBESTOLEN) .. " from thieves"
-local FURC_CANBESTOLEN_WW	    = GetString(SI_FURC_CANBESTOLEN) .. " from woodworkers"
-local FURC_CANBESTOLEN_DRUNK    = GetString(SI_FURC_CANBESTOLEN) .. " from drunkards"
+local pickpocket_ww         = GetString(SI_FURC_CANBEPICKED) .. " from woodworkers"
+local pickpocket_ass        = GetString(SI_FURC_CANBEPICKED) .. " from outlaws and assassins"
+local pickpocket_guard      = GetString(SI_FURC_CANBEPICKED) .. " from guards"

-local FURC_PLANTS_VVARDENFELL   = GetString(FURC_PLANTS) 		 .. " on Vvardenfell"
-local FURC_CANBESTOLEN_WROTHGAR	= GetString(SI_FURC_CANBESTOLEN) .. " in Wrothgar"
+local stealable             = GetString(SI_FURC_CANBESTOLEN)

-local FURC_AUTOMATON_CC			= GetString(SI_FURC_AUTOMATON) .. " in Clockwork City"
-local FURC_AUTOMATON_VV			= GetString(SI_FURC_AUTOMATON) .. " on Vvardenfell"
+local stealable_cc          = stealable ..          " in Clockwork City"
+local stealable_scholars    = stealable ..          " from scholars"
+local stealable_nerds       = stealable_scholars .. " and mages"
+local stealable_priests     = stealable ..          " from priests and pilgrims"
+local stealable_thief       = stealable ..          " from thieves"
+local stealable_woodworkers = stealable ..          " from woodworkers"
+local stealable_drunkards   = stealable ..          " from drunkards"

-local FURC_HARVEST_CHARBOR		= GetString(SI_FURC_HARVEST) .. " in Coldharbour"

-local FURC_SCAMBOX_F_ATRO		= zo_strformat("<<1>> (<<2>>)", GetString(SI_FURC_SCAMBOX), GetString(SI_FURC_FLAME_ATRONACH))
-local FURC_SCAMBOX_DWEMER		= zo_strformat("<<1>> (<<2>>)", GetString(SI_FURC_SCAMBOX), GetString(SI_FURC_DWEMER))
+local automaton_loot_cc     = GetString(SI_FURC_AUTOMATON) .. " in Clockwork City"
+local automaton_loot_vv     = GetString(SI_FURC_AUTOMATON) .. " on Vvardenfell"

-local FURC_DB_POISON			= zo_strformat("<<1>> <<2>>", GetString(SI_FURC_DB), GetString(SI_FURC_DB_POISON))
-local FURC_DB_SNEAKY			= zo_strformat("<<1>> <<2>>", GetString(SI_FURC_DB), GetString(SI_FURC_DB_STEALTH))
+local harvest_coldharbour   = GetString(SI_FURC_HARVEST) .. " in Coldharbour"

-local onSummerset               = " on Summerset"
+local scambox_string        = GetString(SI_FURC_SCAMBOX)

-local FURC_FISHING_SUMMERSET    = GetString(SI_FURC_CANBEFISHED) .. onSummerset
-local FURC_DROP_ALTMER          = GetString(SI_FURC_DROP) .. onSummerset
+local scambox_fireatro      = zo_strformat("<<1>> (<<2>>)", scambox_string, GetString(SI_FURC_FLAME_ATRONACH))
+local scambox_dwemer        = zo_strformat("<<1>> (<<2>>)", scambox_string, GetString(SI_FURC_DWEMER))
+local scambox_reaper        = zo_strformat("<<1>> (<<2>>)", scambox_string, GetString(SI_FURC_REAPER))

+local db_poison             = zo_strformat("<<1>> <<2>>", GetString(SI_FURC_DB), GetString(SI_FURC_DB_POISON))
+local db_sneaky             = zo_strformat("<<1>> <<2>>", GetString(SI_FURC_DB), GetString(SI_FURC_DB_STEALTH))
+
+local sinister_hollowjack   = "Sinister Hollowjack Items"
+
+local itemPackNewLife2018   = GetString(SI_FURC_ITEMSOURCE_ITEMPACK) .. " New Life Festival 2018"
+local itemPackDeepmire      = GetString(SI_FURC_ITEMSOURCE_ITEMPACK) .. " Deepmire Expedition"
+
+
+local onSummerset           = " on Summerset"
+local backwaterSwamp        = " in Murkmire"
+local gloriousHome          = " on Vvardenfell"
+local inWrothgar            = " in Vvardenfell"
+
+
+local plants_vvardenfell    = GetString(SI_FURC_PLANTS)      .. gloriousHome
+
+
+local fishing_summerset     = GetString(SI_FURC_CANBEFISHED) .. onSummerset
+local fishing_swamp         = GetString(SI_FURC_CANBEFISHED) .. backwaterSwamp
+
+local drop_altmer           = GetString(SI_FURC_DROP) .. onSummerset
+local drop_swamp            = GetString(SI_FURC_DROP) .. backwaterSwamp
+
+
+local stealable_wrothgar    = stealable .. inWrothgar
+local stealable_swamp       = stealable .. backwaterSwamp
+
+local rumourSource          = GetString(SI_FURC_RUMOUR_SOURCE_ITEM)
+local dataminedUnclear      = GetString(SI_FURC_DATAMINED_UNCLEAR)
+
+
+local crownstoresource = GetString(SI_FURC_CROWNSTORESOURCE)
 local function getCrownPrice(price)
-    return string.format("%s (%u)", GetString(SI_FURC_CROWNSTORESOURCE), price)
+  return string.format("%s (%u)", crownstoresource, price)
 end

+local housesource = GetString(SI_FURC_HOUSE)
 local function getHouseString(houseId1, houseId2)
-    local houseName = GetCollectibleName(houseId1)
-    if houseId2 then houseName = houseName .. ", " .. GetCollectibleName(houseId2) end
-    return zo_strformat(GetString(SI_FURC_HOUSE), houseName)
+  local houseName = GetCollectibleName(houseId1)
+  if houseId2 then houseName = houseName .. ", " .. GetCollectibleName(houseId2) end
+  return zo_strformat(housesource, houseName)
 end

+
+FurC.MiscItemSources[FURC_SLAVES]  = {
+  [FURC_RUMOUR]   = {
+
+    [145923] = rumourSource,                        -- Lies of the Dread-Father
+    [145926] = rumourSource,                        -- That of Void
+    [145927] = rumourSource,                        -- Acts of Honoring
+    [145928] = rumourSource,                        -- Speakers of Nothing
+    [145461] = rumourSource,                        -- Plant Cluster, Cardinal Flower Small
+    [145429] = rumourSource,                        -- Plant Cluster, Cardinal Flower Large
+
+    [145436] = rumourSource,                        -- Canopied Felucca, Double Hulled
+    [145443] = rumourSource,                        -- Murkmire Shrine, Sithis Looming
+    [145444] = rumourSource,                        -- Murkmire Totem, Hist Guardian
+    [145445] = rumourSource,                        -- The Sharper Tongue: A Jel Primer
+    [145446] = rumourSource,                        -- Sithis, the Hungering Dark
+    [145447] = rumourSource,                        -- Murkmire Dais, Engraved
+    [145448] = rumourSource,                        -- Murkmire Throne, Engraved
+    [145449] = rumourSource,                        -- Stele, Hist Guardians
+    [145450] = rumourSource,                        -- Stele, Hist Cultivation
+    [145451] = rumourSource,                        -- Shrine, Sithis Figure Anointed
+    [145452] = rumourSource,                        -- Shrine, Sithis Looming Anointed
+    [145453] = rumourSource,                        -- Plant, Marsh Aloe
+    [145454] = rumourSource,                        -- Plant, Marsh Aloe Pod
+    [145455] = rumourSource,                        -- Plant, Dendritic Hist Bulb
+    [145456] = rumourSource,                        -- Plant, Hist Bulb
+    [145457] = rumourSource,                        -- Tree, Banyan
+    [145458] = rumourSource,                        -- Tree, Ancient Banyan
+    [141875] = rumourSource,                        -- Witches Festival Scarecrow
+    [145467] = rumourSource,                        -- The Way of Shadow
+    [145470] = rumourSource,                        -- Redguard Vase, Golden
+    [145471] = rumourSource,                        -- Redguard Raincatcher, Golden
+    [145472] = rumourSource,                        -- Antler Coral, Crimson
+    [145473] = rumourSource,                        -- Antler Coral, Stout Crimson
+    [145474] = rumourSource,                        -- Plant, Flytrap
+    [145475] = rumourSource,                        -- Plant, Soulsplinter Weed
+    [145476] = rumourSource,                        -- Alinor Shrine, Trinimac
+    [145477] = rumourSource,                        -- Alinor Pedestal, Shrine
+    [145478] = rumourSource,                        -- Alinor Shrine, Y'ffre
+    [145479] = rumourSource,                        -- Iron Maiden, Occupied
+    [145480] = rumourSource,                        -- Corpse, Burned Seated
+    [145481] = rumourSource,                        -- Corpse, Burned Sprawled
+    [145482] = rumourSource,                        -- Wheelbarrow, Bones
+    [145483] = rumourSource,                        -- Column, Ossuary
+    [145484] = rumourSource,                        -- Dark Elf Statue, Ordinator
+    [145485] = rumourSource,                        -- Dark Elf Statue, Knight
+    [145486] = rumourSource,                        -- Door, Sweet Mother
+    [145487] = rumourSource,                        -- Banner, Order of the Hour
+    [145488] = rumourSource,                        -- Banner, Jewelry Crafting
+    [145491] = rumourSource,                        -- Static Pitcher
+    [145492] = rumourSource,                        -- Gas Blossom
+    [145493] = rumourSource,                        -- Lantern Mantis
+    [145554] = rumourSource,                        -- Tree, Towering Snowy Fir
+    [145555] = rumourSource,                        -- Tree, Snowy Fir
+    [145597] = rumourSource,                        -- Scales of Shadow
+    [145595] = rumourSource,                        -- Scuttlebloom
+    [145322] = rumourSource,                        -- Music Box, Blood and Glory
+    [145576] = rumourSource,                        -- Timid Vine-Tongue
+    [145318] = rumourSource,                        -- Gravestone, Small Broken
+    [145317] = rumourSource,                        -- Gravestone, Broken
+    [145550] = rumourSource,                        -- Murkmire Hunting Lure, Grisly
+    [145549] = rumourSource,                        -- Murkmire Totem, Stone Head
+    [141870] = rumourSource,                        -- Raven-Perch Cemetery Wreath
+    [142235] = rumourSource,                        -- Music Box, Flickering Shadows
+    [145556] = rumourSource,                        -- Tree, Tall Snowy Fir
+    [145403] = rumourSource,                        -- Jel Parchment
+  },
+
+  [FURC_JUSTICE] = {
+
+    [145399] = stealable_swamp,                     -- Murkmire Rug, Crawling Serpents Worn
+    [145400] = stealable_swamp,                     -- Murkmire Rug, Lurking Lizard Worn
+    [145398] = stealable_swamp,                     -- Murkmire Rug, Supine Turtle Worn
+    [145397] = stealable_swamp,                     -- Murkmire Rug, Hist Gathering Worn
+    [145396] = stealable_swamp,                     -- Murkmire Tapestry, Hist Gathering Worn
+
+
+    [145401] = GetString(stealable_swamp),          -- Murkmire Tapestry, Xanmeer Worn
+  },
+
+  [FURC_DROP]    = {
+    [141856] = sinister_hollowjack,                 -- Decorative Hollowjack Daedra-Skull
+    [141855] = sinister_hollowjack,                 -- Decorative Hollowjack Wraith-Lantern
+    [141854] = sinister_hollowjack,                 -- Decorative Hollowjack Flame-Skull
+  },
+
+  [FURC_CROWN]  = {
+    [146048] = itemPackNewLife2018,                 -- New Life Festive Fir
+    [146049] = itemPackNewLife2018,                 -- Winter Festival Hearth
+    [146050] = itemPackNewLife2018,                 -- Winter Festival Hearthfire
+    [146052] = itemPackNewLife2018,                 -- Vvardvark Ice Sculpture
+    [146053] = itemPackNewLife2018,                 -- Guar Ice Sculpture
+    [146059] = itemPackNewLife2018,                 -- New Life Snowmortal, Khajiit
+    [146057] = itemPackNewLife2018,                 -- New Life Snowmortal, Human
+    [146058] = itemPackNewLife2018,                 -- New Life Snowmortal, Argonian
+    [146060] = itemPackNewLife2018,                 -- New Life Ladle
+    [146062] = itemPackNewLife2018,                 -- Winter Ouroboros Wreath
+    [146061] = itemPackNewLife2018,                 -- New Life Triptych Banner
+    [146055] = itemPackNewLife2018,                 -- New Life Garland Wreath
+    [146056] = itemPackNewLife2018,                 -- New Life Cookies and Ale
+    [146047] = itemPackNewLife2018,                 -- From Old Life To New
+    [146051] = itemPackNewLife2018,                 -- Mudcrab Ice Sculpture
+    [146054] = itemPackNewLife2018,                 -- New Life Garland
+
+    [145427] = itemPackDeepmire,                    -- Serpent Skull, Colossal
+
+    [145428] = getCrownPrice(1),                    -- Murkmire Lantern Post, Covered
+    [145437] = getCrownPrice(240),                  -- Reed Felucca, Double Hulled
+    [145431] = getCrownPrice(35),                   -- Plant, Marsh Nigella
+    [145432] = getCrownPrice(70),                   -- Plant, Canna Lily
+    [145434] = getCrownPrice(110),                  -- Plant, Large Lantern Flower
+
+    [145438] = getCrownPrice(140),                  -- Grave Stake, Large Glyphed
+    [145439] = getCrownPrice(140),                  -- Grave Stake, Large Fearsome
+    [145440] = getCrownPrice(140),                  -- Grave Stake, Large Skull
+    [145441] = getCrownPrice(140),                  -- Grave Stake, Large Serpent
+    [145442] = getCrownPrice(140),                  -- Grave Stake, Large Twinned
+
+    [145433] = getCrownPrice(1),                    -- Plant, Rafflesia
+    [145459] = getCrownPrice(1),                    -- Murkmire Kiln, Ancient Stone
+    [145460] = getCrownPrice(1),                    -- Plant, Canna Leaves
+    [145411] = getCrownPrice(1),                    -- Plant, Lantern Flower
+    [145462] = getCrownPrice(30),                   -- Plant, Cardinal Flower
+    [145463] = getCrownPrice(35),                   -- Plant Cluster, Red Sister Ti
+    [145464] = getCrownPrice(30),                   -- Plant, Red Sister Ti
+    [145465] = getCrownPrice(40),                   -- Plant Cluster, Wilted Hist Bulb
+    [145466] = getCrownPrice(30),                   -- Plant, Wilted Hist Bulb
+    [141939] = getCrownPrice(180),                  -- Grave, Grasping
+    [141965] = getCrownPrice(240),                  -- Hollowjack Lantern, Soaring Dragon
+    [141966] = getCrownPrice(240),                  -- Hollowjack Lantern, Toothy Grin
+    [141967] = getCrownPrice(240),                  -- Hollowjack Lantern, Ouroboros
+    [142004] = getCrownPrice(180),                  -- Specimen Jar, Spare Brain
+    [142005] = getCrownPrice(180),                  -- Specimen Jar, Monstrous Remains
+    [142003] = getCrownPrice(180),                  -- Specimen Jar, Eyes
+    [141869] = getCrownPrice(150),                  -- Alinor Potted Plant, Cypress
+    [141976] = getCrownPrice(60),                   -- Pumpkin Patch, Display
+    [141853] = getCrownPrice(2500),                 -- Statue of Hircine's Bitter Mercy
+    [145426] = getCrownPrice(410),                  -- Murkmire Felucca, Canopied
+    [145435] = getCrownPrice(110),                  -- Plant, Marsh Mani Flower
+    [145430] = getCrownPrice(55),                   -- Plant, Star Blossom
+
+    [145322] = getCrownPrice(800),                  -- Music Box, Blood and Glory
+
+  },
+  [FURC_FISHING]   = {
+    -- fishing
+    [145402] = fishing_swamp,                       -- Fish, Black Marsh
+  },
+
+}
 FurC.MiscItemSources[FURC_WEREWOLF] = {
-	[FURC_DROP] = {
-		[141851] = GetString(SI_FURC_WW_DUNGEON_DROP), 		  	-- Bear Skull, Fresh
-		[141850] = GetString(SI_FURC_WW_DUNGEON_DROP), 			-- Bear Skeleton, Picked Clean
-		[141847] = GetString(SI_FURC_WW_DUNGEON_DROP), 			-- Animal Bones, Gnawed
-		[141848] = GetString(SI_FURC_WW_DUNGEON_DROP), 			-- Animal Bones, Jumbled
-		[141849] = GetString(SI_FURC_WW_DUNGEON_DROP), 			-- Animal Bones, Fresh
-
-	},
-	[FURC_RUMOUR] = {
-		[141832] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Tree, Robust Fig
-		[141833] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Tree, Ancient Fig
-		[141834] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Tree, Towering Fig
-		[141835] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Tree, Whorled Fig
-		[141836] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Monolith, Lord Hircine Ritual
-		[141841] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Tree Ferns, Cluster
-		[141842] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Tree Ferns, Juvenile Cluster
-		[141843] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Plants, Yellow Frond Cluster
-		[141844] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Plants, Amber Spadeleaf Cluster
-		[141845] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Mushrooms, Climbing Ambershine
-		[141846] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Mushrooms, Ambershine Cluster
-
-		[141853] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Statue of Hircine's Bitter Mercy
-		[141854] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Decorative Hollowjack Flame-Skull
-		[141855] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Decorative Hollowjack Wraith-Lantern
-		[141856] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Decorative Hollowjack Daedra-Skull
-		[141869] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Alinor Potted Plant, Cypress
-		[141870] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Raven-Perch Cemetery Wreath
-		[141875] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Witches Festival Scarecrow
-		[142004] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Specimen Jar, Spare Brain
-		[142005] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Specimen Jar, Monstrous Remains
-		[141752] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Plant, Cerulean Spadeleaf
-		[141753] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Plants, Cerulean Spadeleaf Cluster
-		[141754] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Skull Totem, Hircine Worship
-		[141755] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Mushrooms, Aether Cup Ring
-		[141756] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Mushrooms, Aether Cup Cluster
-		[141757] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Mushrooms, Climbing Aether Cup
-		[141758] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Orcish Wagon, Merchant
-		[141759] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Orcish Gazebo, Orsinium
-		[141760] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Witch's Tree, Charred
-		[141761] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Reach Sapling, Contorted Briarheart
-		[141762] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Animal Trap, Welded Open
-		[141763] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Banner, Outfit
-		[141764] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Banner, Outfit Small
-		[141765] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Banner, Transmute
-		[141766] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Banner, Transmute Small
-		[141767] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Ayleid Constellation Stele, The Lady
-		[141778] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Target Wraith-of-Crows
-		[141920] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Murkmire Brazier, Ceremonial
-		[141921] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Murkmire Bowl, Geometric Pattern
-		[141922] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Murkmire Dish, Geometric Pattern
-		[141923] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Murkmire Amphora, Seed Pattern
-		[141924] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Murkmire Vase, Scale Pattern
-		[141925] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Murkmire Hearth Shrine, Sithis Relief
-		[141926] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Murkmire Hearth Shrine, Sithis Figure
-		[142003] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Specimen Jar, Eyes
-		[141939] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Grave, Grasping
-		[141976] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Pumpkin Patch, Display
-		[141967] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Hollowjack Lantern, Ouroboros
-		[141966] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Hollowjack Lantern, Toothy Grin
-		[141965] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Hollowjack Lantern, Soaring Dragon
-		[141816] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Tree, Ginkgo
-		[141817] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Tree, Ancient Ginkgo
-		[141818] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Shrubs, Dormant Sunbird Cluster
-		[141819] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Shrub, Blooming Sunbird
-		[141822] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Psijic Banner, Long
-		[141768] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Ayleid Constellation Stele, The Lover
-		[141769] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), 	-- Ayleid Constellation Stele, The Atronach
-
-
-	},
+  [FURC_DROP] = {
+    [141851] = GetString(SI_FURC_WW_DUNGEON_DROP), -- Bear Skull, Fresh
+    [141850] = GetString(SI_FURC_WW_DUNGEON_DROP), -- Bear Skeleton, Picked Clean
+    [141847] = GetString(SI_FURC_WW_DUNGEON_DROP), -- Animal Bones, Gnawed
+    [141848] = GetString(SI_FURC_WW_DUNGEON_DROP), -- Animal Bones, Jumbled
+    [141849] = GetString(SI_FURC_WW_DUNGEON_DROP), -- Animal Bones, Fresh
+
+
+    [141921] = GetString(SI_FURC_SLAVES_PREQUEST), -- Murkmire Bowl, Geometric Pattern
+
+    [141923] = GetString(SI_FURC_SLAVES_PREQUEST), -- Murkmire Amphora, Seed Pattern
+    [141922] = GetString(SI_FURC_SLAVES_PREQUEST), -- Murkmire Dish, Geometric Pattern
+    [141924] = GetString(SI_FURC_SLAVES_PREQUEST), -- Murkmire Vase, Scale Pattern
+    [141925] = GetString(SI_FURC_SLAVES_PREQUEST), -- Murkmire Hearth Shrine, Sithis Relief
+    [141926] = GetString(SI_FURC_SLAVES_PREQUEST), -- Murkmire Hearth Shrine, Sithis Figure
+    [141920] = GetString(SI_FURC_SLAVES_PREQUEST), -- Murkmire Brazier, Ceremonial
+
+  },
+  [FURC_RUMOUR] = {
+    [141832] = dataminedUnclear,                    -- Tree, Robust Fig
+    [141833] = dataminedUnclear,                    -- Tree, Ancient Fig
+    [141834] = dataminedUnclear,                    -- Tree, Towering Fig
+    [141835] = dataminedUnclear,                    -- Tree, Whorled Fig
+    [141836] = dataminedUnclear,                    -- Monolith, Lord Hircine Ritual
+    [141841] = dataminedUnclear,                    -- Tree Ferns, Cluster
+    [141842] = dataminedUnclear,                    -- Tree Ferns, Juvenile Cluster
+    [141843] = dataminedUnclear,                    -- Plants, Yellow Frond Cluster
+    [141844] = dataminedUnclear,                    -- Plants, Amber Spadeleaf Cluster
+    [141845] = dataminedUnclear,                    -- Mushrooms, Climbing Ambershine
+    [141846] = dataminedUnclear,                    -- Mushrooms, Ambershine Cluster
+
+    [141853] = dataminedUnclear,                    -- Statue of Hircine's Bitter Mercy
+    [141854] = dataminedUnclear,                    -- Decorative Hollowjack Flame-Skull
+    [141855] = dataminedUnclear,                    -- Decorative Hollowjack Wraith-Lantern
+    [141856] = dataminedUnclear,                    -- Decorative Hollowjack Daedra-Skull
+    [141869] = dataminedUnclear,                    -- Alinor Potted Plant, Cypress
+    [141870] = dataminedUnclear,                    -- Raven-Perch Cemetery Wreath
+    [141875] = dataminedUnclear,                    -- Witches Festival Scarecrow
+    [142004] = dataminedUnclear,                    -- Specimen Jar, Spare Brain
+    [142005] = dataminedUnclear,                    -- Specimen Jar, Monstrous Remains
+    [141752] = dataminedUnclear,                    -- Plant, Cerulean Spadeleaf
+    [141753] = dataminedUnclear,                    -- Plants, Cerulean Spadeleaf Cluster
+    [141754] = dataminedUnclear,                    -- Skull Totem, Hircine Worship
+    [141755] = dataminedUnclear,                    -- Mushrooms, Aether Cup Ring
+    [141756] = dataminedUnclear,                    -- Mushrooms, Aether Cup Cluster
+    [141757] = dataminedUnclear,                    -- Mushrooms, Climbing Aether Cup
+    [141760] = dataminedUnclear,                    -- Witch's Tree, Charred
+    [141761] = dataminedUnclear,                    -- Reach Sapling, Contorted Briarheart
+    [141778] = dataminedUnclear,                    -- Target Wraith-of-Crows
+    [141920] = dataminedUnclear,                    -- Murkmire Brazier, Ceremonial
+    [141922] = dataminedUnclear,                    -- Murkmire Dish, Geometric Pattern
+    [141923] = dataminedUnclear,                    -- Murkmire Amphora, Seed Pattern
+    [141924] = dataminedUnclear,                    -- Murkmire Vase, Scale Pattern
+    [141925] = dataminedUnclear,                    -- Murkmire Hearth Shrine, Sithis Relief
+    [141926] = dataminedUnclear,                    -- Murkmire Hearth Shrine, Sithis Figure
+    [142003] = dataminedUnclear,                    -- Specimen Jar, Eyes
+    [141939] = dataminedUnclear,                    -- Grave, Grasping
+    [141967] = dataminedUnclear,                    -- Hollowjack Lantern, Ouroboros
+    [141966] = dataminedUnclear,                    -- Hollowjack Lantern, Toothy Grin
+    [141965] = dataminedUnclear,                    -- Hollowjack Lantern, Soaring Dragon
+    [141816] = dataminedUnclear,                    -- Tree, Ginkgo
+    [141817] = dataminedUnclear,                    -- Tree, Ancient Ginkgo
+    [141818] = dataminedUnclear,                    -- Shrubs, Dormant Sunbird Cluster
+    [141819] = dataminedUnclear,                    -- Shrub, Blooming Sunbird
+
+    [134251] = dataminedUnclear,                    -- Coldharbour Bookshelf, Filled
+    [134252] = dataminedUnclear,                    -- Coldharbour Bookshelf, Black Laboratory
+    [120873] = dataminedUnclear,                    -- Daedric Coffin
+    [120871] = dataminedUnclear,                    -- Deadric Vase, Spiked
+    [120867] = dataminedUnclear,                    -- Daedric Pike, Clannfear Head
+    [120866] = dataminedUnclear,                    -- Daedric Brazier, Tabletop
+    [120865] = dataminedUnclear,                    -- Daedric Table
+    [120863] = dataminedUnclear,                    -- Daedric Light Pillar
+
+    [120984] = dataminedUnclear,                    -- Plant, Goldenrod Cluster
+    [120985] = dataminedUnclear,                    -- Dark Elf Lightpost, Single
+    [120987] = dataminedUnclear,                    -- Dark Elf Lightpost, Capped
+
+    [126114] = dataminedUnclear,                    -- Statue of Azura, Queen of Dawn and Dusk
+    [126115] = dataminedUnclear,                    -- Statue of Azura's Moon
+    [126116] = dataminedUnclear,                    -- Statue of Azura's Sun
+    [120997] = dataminedUnclear,                    -- Banner, Tattered Blue
+    [126118] = dataminedUnclear,                    -- Banner of Azura
+    [130215] = dataminedUnclear,                    -- Witches' Cauldron, Provisioning
+
+    [126128] = dataminedUnclear,                    -- The Five Points of the Star
+    [126132] = dataminedUnclear,                    -- Resplendent Sweetroll
+    [121015] = dataminedUnclear,                    -- Shrub, Sparse Green
+    [120000] = dataminedUnclear,                    -- Broken Chain
+
+    [126136] = dataminedUnclear,                    -- Dwarven Lantern, Powered
+    [126138] = dataminedUnclear,                    -- A Guide to Dwemer Mega-Structures
+    [126140] = dataminedUnclear,                    -- Vivec's Grand Bed
+    [126141] = dataminedUnclear,                    -- Vivec's Grand Throne
+    [126142] = dataminedUnclear,                    -- Vivec's Divination Pool
+    [126143] = dataminedUnclear,                    -- Statue, Vivec's Triumph
+    [126145] = dataminedUnclear,                    -- Sigil of Vivec
+    [126146] = dataminedUnclear,                    -- Banner, Vivec
+    [126149] = dataminedUnclear,                    -- Tapestry, Vivec
+    [126150] = dataminedUnclear,                    -- Tribunal Tablet of Sotha Sil
+
+
+    [126152] = dataminedUnclear,                    -- The Cliff-Strider Song
+    [121046] = dataminedUnclear,                    -- Cheeses of Tamriel
+    [121049] = dataminedUnclear,                    -- Parcels, Wrapped
+    [134475] = dataminedUnclear,                    -- Statue of Malacath, Orc-Father
+    [131424] = dataminedUnclear,                    -- Fogs of the Hag Fen
+
+
+    [134686] = dataminedUnclear,                    -- Sithis, The Dread Father
+    [125480] = dataminedUnclear,                    -- Banner, Clavicus Vile
+    [125489] = dataminedUnclear,                    -- Daedric Brazier, Flaming
+
+    [134853] = dataminedUnclear,                    -- Peryite, The Taskmaster
+    [134854] = dataminedUnclear,                    -- Tapestry of Peryite
+    [134855] = dataminedUnclear,                    -- Banner of Peryite
+    [134856] = dataminedUnclear,                    -- Dragon Skeleton, Mid-Flight
+    [134861] = dataminedUnclear,                    -- The History of Zaan The Scalecaller
+
+    [134857] = dataminedUnclear,                    -- Dragon Priest Frieze: Triumph
+    [134858] = dataminedUnclear,                    -- Dragon Priest Frieze: Exodus
+    [134859] = dataminedUnclear,                    -- Dragon Priest Frieze: Restoration
+    [134860] = dataminedUnclear,                    -- Dragon Priest Frieze: Ascension
+
+    [134864] = dataminedUnclear,                    -- Dragon Cranium, Ancient
+    [134865] = dataminedUnclear,                    -- Unidentified Bones, Gargantuan
+    [134866] = dataminedUnclear,                    -- Lamia Cranium, Ancient
+    [134867] = dataminedUnclear,                    -- Argonian Skull, Complete
+    [134868] = dataminedUnclear,                    -- Khajiit Skull, Complete
+    [134869] = dataminedUnclear,                    -- Orc Skull, Complete
+    [125654] = dataminedUnclear,                    -- Tapestry, Clavicus Vile
+
+    [134871] = dataminedUnclear,                    -- Ancient Nord Urn, Dragon Crest
+    [134873] = dataminedUnclear,                    -- Ancient Nord Bookshelf, Wide
+    [134874] = dataminedUnclear,                    -- Ancient Nord Bookshelf, Narrow
+    [134875] = dataminedUnclear,                    -- Ancient Nord Funerary Jar, Linked Rings
+    [134876] = dataminedUnclear,                    -- Ancient Nord Funerary Jar, Crimson Sash
+    [134877] = dataminedUnclear,                    -- Ancient Nord Funerary Jar, Dragon Figure
+    [134862] = dataminedUnclear,                    -- Ancient Nord Runestone, Memorial
+    [134870] = dataminedUnclear,                    -- Ancient Nord Chest, Dragon Crest
+    [134878] = dataminedUnclear,                    -- Ancient Nord Funerary Jar, Dragon Crest
+
+    [134879] = dataminedUnclear,                    -- Hubalajad's Reflection
+    [134881] = dataminedUnclear,                    -- In Defense of Prince Hubalajad
+    [134882] = dataminedUnclear,                    -- Gold Drakes, Pristine
+
+    [134880] = dataminedUnclear,                    -- Ra Gada Reliquary, Miniature Palace
+    [134883] = dataminedUnclear,                    -- Ra Gada Funerary Statue, Stone Cat
+    [134884] = dataminedUnclear,                    -- Ra Gada Funerary Statue, Gilded Cat
+    [134885] = dataminedUnclear,                    -- Ra Gada Funerary Statue, Gilded Ibis
+    [134886] = dataminedUnclear,                    -- Ra Gada Funerary Statue, Gilded Servant
+    [134887] = dataminedUnclear,                    -- Ra Gada Guardian Statue, Lion Ibis
+    [134888] = dataminedUnclear,                    -- Ra Gada Guardian Statue, Winged Bull
+    [134889] = dataminedUnclear,                    -- Ra Gada Guardian Statue, Riding Camel
+
+    [125680] = dataminedUnclear,                    -- Vines, Ashen Moss
+    [125681] = dataminedUnclear,                    -- Vines, Volcanic Roses
+
+    [134898] = dataminedUnclear,                    -- Flowers, Midnight Sage
+    [134899] = dataminedUnclear,                    -- Flower Spray, Crimson Daisies
+    [134900] = dataminedUnclear,                    -- Flowers, Red Poppy
+    [134901] = dataminedUnclear,                    -- Flower Spray, Starlight Daisies
+    [134902] = dataminedUnclear,                    -- Flowers, Violet Bellflower
+    [134903] = dataminedUnclear,                    -- Flowers, Midnight Glory
+
+    [134961] = dataminedUnclear,                    -- Dibella's Mysteries and Revelations
+    [126771] = dataminedUnclear,                    -- Velothi Podium of Illumination
+    [126776] = dataminedUnclear,                    -- Indoril Tapestry, House
+    [126107] = dataminedUnclear,                    -- Display Wild Hunt Crown Crate
+    [126117] = dataminedUnclear,                    -- Tapestry of Azura
+    [126144] = dataminedUnclear,                    -- Seal of Vivec
+    [125592] = dataminedUnclear,                    -- Mushroom, Lavaburster
+    [130212] = dataminedUnclear,                    -- Daedra Worship: The Ayleids
+    [130228] = dataminedUnclear,                    -- The Witches of Hag Fen
+    [130088] = dataminedUnclear,                    -- Daedric Fragment, Coldharbour
+    [134248] = dataminedUnclear,                    -- Grand Mnemograph
+    [134249] = dataminedUnclear,                    -- Sotha Sil, The Clockwork God
+
+
+    [134464] = dataminedUnclear,                    -- Riekling Bonfire, Ceremonial
+    [130090] = dataminedUnclear,                    -- Daedric Sconce, Molag Bal
+    [121023] = dataminedUnclear,                    -- Tree, Strong Olive
+    [121022] = dataminedUnclear,                    -- Bush, Green Forest
+    [121016] = dataminedUnclear,                    -- Bush, Red Berry
+    [121013] = dataminedUnclear,                    -- Saplings, Fragile Autumn Birch
+    [121010] = dataminedUnclear,                    -- Tree, Young Green Birch
+    [121008] = dataminedUnclear,                    -- Tree, Autumn Maple
+    [121007] = dataminedUnclear,                    -- Tree, Strong Maple
+
+    [121004] = dataminedUnclear,                    -- Hedge, Solid Arc
+    [121000] = dataminedUnclear,                    -- Shrub, Trimmed Green
+    [120485] = dataminedUnclear,                    -- Cactus, Columnar
+    [126109] = dataminedUnclear,                    -- Display Death Crown Crate
+    [126108] = dataminedUnclear,                    -- Display Atronach Crown Crate
+    [120986] = dataminedUnclear,                    -- Dark Elf Lightpost, Full
+    [132198] = dataminedUnclear,                    -- Death Skeleton, Wrapped
+    [134823] = dataminedUnclear,                    -- Target Mournful Aegis
+    [125537] = dataminedUnclear,                    -- Dwarven Piston Cylinder
+    [125532] = dataminedUnclear,                    -- Dwarven Pipeline, Fan
+    [130092] = dataminedUnclear,                    -- Seal of Molag Bal, Grand
+    [120878] = dataminedUnclear,                    -- Gravestone, Ornamented
+    [120875] = dataminedUnclear,                    -- Gravestone, Clover Engraving
+    [120862] = dataminedUnclear,                    -- Ancient Patriarch Banner
+    [120859] = dataminedUnclear,                    -- Yokudan Wall Embellishment
+    [120855] = dataminedUnclear,                    -- Collected Wanted Poster
+    [120854] = dataminedUnclear,                    -- Guard Lamppost
+    [130093] = dataminedUnclear,                    -- Coldharbour Compact
+    [134890] = dataminedUnclear,                    -- Dibella, Lady of Love
+  },
+
+  [FURC_CROWN] = {
+
+
+    [134904] = getCrownPrice(260),                  -- Seal of Dibella
+    [134905] = getCrownPrice(260),                  -- Ritual Stone, Dibella
+    [134906] = getCrownPrice(240),                  -- Ritual Brazier, Gilded
+    [134921] = getCrownPrice(520),                  -- Redguard Lamppost, Stone
+    [134922] = getCrownPrice(250),                  -- Redguard Pillar, Tiered
+    [134923] = getCrownPrice(2000),                 -- Redguard Trellis, Peaked
+    [134924] = getCrownPrice(380),                  -- Redguard Fence, Brass Capped
+    [134925] = getCrownPrice(2200),                 -- Redguard Fountain, Pillar
+    [134926] = getCrownPrice(1200),                 -- Redguard Awning, Wall
+    [134927] = getCrownPrice(1200),                 -- Wedding Pergola, Double
+    [134928] = getCrownPrice(1200),                 -- Wedding Pergola, Triple
+    [134929] = getCrownPrice(45),                   -- Trees, Savanna Cluster
+    [134930] = getCrownPrice(30),                   -- Bushes, Swordgrass Cluster
+    [134931] = getCrownPrice(50),                   -- Boulder, Weathered Desert
+    [134932] = getCrownPrice(50),                   -- Boulder, Tiered Desert
+    [134933] = getCrownPrice(90),                   -- Cranium, Jawless
+    [134934] = getCrownPrice(10),                   -- Rocks, Basalt Chunks
+    [134936] = getCrownPrice(110),                  -- Cave Deposit, Tall Stalagmite Cluster
+    [134938] = getCrownPrice(110),                  -- Cave Deposit, Stalagmite Group
+    [134945] = getCrownPrice(200),                  -- Cave Deposit, Extended Spire
+    [134973] = getCrownPrice(200),                  -- Cave Deposit, Stalactite Cone Cluster
+    [134939] = getCrownPrice(110),                  -- Cave Deposit, Stalactite Cone
+    [134941] = getCrownPrice(110),                  -- Cave Deposit, Spire
+    [120603] = getCrownPrice(20),                   -- Boulder, Flat Mossy
+    [120604] = getCrownPrice(20),                   -- Rock, Slanted Mossy
+    [120605] = getCrownPrice(20),                   -- Rocks, Deep Mossy
+    [120606] = getCrownPrice(20),                   -- Stones, Mossy Cluster
+    [134943] = getCrownPrice(1000),                  -- Brotherhood Banner, Long
+    [134944] = getCrownPrice(340),                  -- Brotherhood Column, Tall Ornate
+    [134946] = getCrownPrice(340),                  -- Brotherhood Column, Ornate
+    [120612] = getCrownPrice(10),                   -- Plant, Tall Mammoth Ear
+    [120613] = getCrownPrice(10),                   -- Plant, Towering Mammoth Ear
+    [120614] = getCrownPrice(10),                   -- Plant Cluster, Jungle Leaf
+    [134951] = getCrownPrice(30),                   -- Mushrooms, Assorted Cluster
+    [134952] = getCrownPrice(30),                   -- Mushrooms, Sporous Browncap
+    [134953] = getCrownPrice(340),                  -- Brotherhood Carpet, Large Worn
+    [139061] = getCrownPrice(20),                   -- Giant Clam, Sealed
+    [126774] = getCrownPrice(510),                  -- Dres Tapestry, House
+    [126775] = getCrownPrice(510),                  -- Hlaalu Tapestry, House
+    [126777] = getCrownPrice(510),                  -- Redoran Tapestry, House
+    [126778] = getCrownPrice(510),                  -- Telvanni Tapestry, House
+    [134974] = getCrownPrice(340),                  -- Brotherhood Carpet, Worn
+    [130069] = getCrownPrice(2000),                 -- Daedric Spout, Block
+    [130070] = getCrownPrice(2000),                 -- Daedric Spout, Arched
+    [130201] = getCrownPrice(170),                  -- Ayleid Grate, Small
+    [130213] = getCrownPrice(430),                  -- Ayleid Cage, Hanging
+    [130224] = getCrownPrice(180),                  -- Reachmen Rug, Smooth Skin
+    [126830] = getCrownPrice(10),                   -- Mushrooms, Volcanic Cluster
+    [120631] = getCrownPrice(5),                    -- Pebble, Stacked Mossy
+    [134326] = getCrownPrice(260),                  -- Clockwork Pump, Horizontal
+    [134330] = getCrownPrice(490),                  -- Clockwork Control Panel, Double
+    [134337] = getCrownPrice(1800),                 -- Clockwork Somnolostation, Octet
+    [134250] = getCrownPrice(750),                  -- Fabrication Sphere, Inactive
+    [121036] = getCrownPrice(30),                   -- Shrub, Sparse Violet
+    [121035] = getCrownPrice(30),                   -- Plant, Paired Verdant Hosta
+    [121034] = getCrownPrice(10),                   -- Shrub, Delicate Forest
+    [121032] = getCrownPrice(25),                   -- Saplings, Young Laurel
+    [121031] = getCrownPrice(45),                   -- Topiary, Paired Cypress
+    [121030] = getCrownPrice(54),                   -- Topiary, Young Cypress
+    [121029] = getCrownPrice(45),                   -- Topiary, Strong Cypress
+    [120709] = getCrownPrice(70),                   -- Tree, Sturdy Young Birch
+    [121026] = getCrownPrice(45),                   -- Hedge, Dense High Wall
+    [121025] = getCrownPrice(70),                   -- Trees, Sprawling Juniper Cluster
+    [121024] = getCrownPrice(70),                   -- Trees, Paired Leaning Juniper
+    [121021] = getCrownPrice(10),                   -- Plants, Dry Underbrush
+    [121020] = getCrownPrice(10),                   -- Plants, Sparse Underbrush
+    [121018] = getCrownPrice(10),                   -- Plant, Forest Sprig
+    [121014] = getCrownPrice(20),                   -- Topiary, Sparse
+    [121012] = getCrownPrice(70),                   -- Trees, Fragile Autumn Birch
+    [121009] = getCrownPrice(70),                   -- Tree, Young Healthy Birch
+    [120726] = getCrownPrice(20),                   -- Rock, Jagged Algae Coated
+    [120727] = getCrownPrice(5),                    -- Stone, Angled Mossy
+    [120728] = getCrownPrice(20),                   -- Rock, Jagged Lichen
+    [121006] = getCrownPrice(45),                   -- Flower Patch, Violets
+    [120730] = getCrownPrice(45),                   -- Topiary, Lush Evergreen
+    [120731] = getCrownPrice(25),                   -- Tree, Mossy Summer
+    [120732] = getCrownPrice(70),                   -- Tree, Mossy Forest
+    [120733] = getCrownPrice(70),                   -- Tree, Gnarled Forest
+    [120734] = getCrownPrice(25),                   -- Saplings, Squat Desert
+    [120735] = getCrownPrice(52),                   -- Saplings, Young Desert
+    [120736] = getCrownPrice(290),                  -- Tree, Gentle Weeping Willow
+    [120737] = getCrownPrice(150),                  -- Tree, Weeping Willow
+    [120738] = getCrownPrice(70),                   -- Tree, Towering Willow
+    [120743] = getCrownPrice(70),                   -- Tree, Strong Cypress
+    [120996] = getCrownPrice(120),                  -- Banner, Tattered Red
+    [120745] = getCrownPrice(60),                   -- Tree, Water Palm
+    [120483] = getCrownPrice(30),                   -- Cactus, Lemon Bulbs
+    [120748] = getCrownPrice(70),                   -- Tree, Leaning Swamp
+    [120749] = getCrownPrice(10),                   -- Grass, Tall Bamboo Shoots
+    [120750] = getCrownPrice(10),                   -- Grass, Drying Bamboo Shoots
+    [120751] = getCrownPrice(10),                   -- Grass, Twin Bamboo Shoots
+    [120752] = getCrownPrice(10),                   -- Grass, Young Bamboo Shoots
+    [120471] = getCrownPrice(25),                   -- Tree, Wilted Palm
+    [120756] = getCrownPrice(10),                   -- Plant, Palm Fronds
+    [120463] = getCrownPrice(20),                   -- Boulder, Weathered Flat
+    [120456] = getCrownPrice(5),                    -- Stone, Smooth Desert
+    [134579] = getCrownPrice(5),                    -- Rubble Pile, Worked Stone
+    [120760] = getCrownPrice(50),                   -- Flower, Red Honeysuckle
+    [125544] = getCrownPrice(30),                   -- Fern, Strong Dusky
+    [125547] = getCrownPrice(85),                   -- Flower, Healthy Purple Bat Bloom
+    [125546] = getCrownPrice(85),                   -- Flower Patch, Lava Blooms
+    [120765] = getCrownPrice(15),                   -- Breton Cup, Empty
+    [120766] = getCrownPrice(15),                   -- Breton Cup, Full
+    [134891] = getCrownPrice(2500),                 -- Pergola, Festive Flowers
+    [134892] = getCrownPrice(85),                   -- Tree, Pale Gold
+    [134893] = getCrownPrice(85),                   -- Tree, Argent Blue
+    [134894] = getCrownPrice(20),                   -- Wildflowers, Yellow and Orange
+    [134895] = getCrownPrice(1800),                 -- Redguard Fountain, Mosaic
+    [134896] = getCrownPrice(45),                   -- Flower, Lover's Lily
+    [134897] = getCrownPrice(45),                   -- Vine Curtain, Festive Flowers
+    [134942] = getCrownPrice(10),                   -- Bushes, Withered Cluster
+    [134950] = getCrownPrice(31),                   -- Mushrooms, Flapjack Stack
+    [139238] = getCrownPrice(190),                  -- Alinor Wall Mirror, Ornate
+    [139239] = getCrownPrice(190),                  -- Alinor Wall Mirror, Verdant
+    [139389] = getCrownPrice(200),                  -- Crystal, Crimson Cluster
+    [139184] = getCrownPrice(200),                  -- Alinor Plinth, Sarcophagus
+  }
 }

-local questRewardLilandril = GetString(SI_FURC_QUESTREWARD) .. "Lilandril"
+local questRewardLilandril = questRewardString .. "Lilandril"
 local mephalaItemSet = GetString(SI_FURC_ITEMSOURCE_ITEMPACK) .. "'Trappings of Mephala Worship'"
 FurC.MiscItemSources[FURC_ALTMER] = {
-    [FURC_CROWN] = {
-        [130206] = getCrownPrice(370), 	            -- Ayleid Apparatus, Welkynd
-
-
-        [139064] = getCrownPrice(20), 	            -- Flowers, Hummingbird Mint
-        [139065] = getCrownPrice(20), 	            -- Flowers, Lizard Tail
-        [139066] = getCrownPrice(30), 	            -- Plant, Redtop Grass
-        [139067] = getCrownPrice(20), 	            -- Flower, Yellow Oleander
-        [139068] = getCrownPrice(20), 	            -- Plants, Springwheeze
-
-        [139069] = getCrownPrice(410),              -- Painting of Griffin Nest, Refined
-        [139070] = getCrownPrice(410),              -- Painting of College of the Sapiarchs, Refined
-        [139071] = getCrownPrice(410),              -- Painting of High Elf Tower, Refined
-        [139073] = getCrownPrice(410),              -- Painting of Summerset Coast, Refined
-        [139074] = getCrownPrice(410),              -- Painting of Aldmeri Ruins, Refined
-        [139075] = getCrownPrice(410),              -- Painting of Sinkhole, Refined
-        [139076] = getCrownPrice(410),              -- Painting of Ancient Road, Refined
-
-        -- [139077] = getCrownPrice(20),            -- Coral Formation, Bulwark
-        [139078] = getCrownPrice(20),               -- Coral Formation, Tree Antler
-        -- [139079] = getCrownPrice(20),            -- Coral Formation, Fan Cluster
-        -- [139080] = getCrownPrice(20),            -- Coral Formation, Ancient Pillar Polyps
-        -- [139081] = getCrownPrice(20),            -- Plants, Sea Grapes
-        -- [139082] = getCrownPrice(20),            -- Plants, Ruby Glasswort Patch
-
-        [139083] = getCrownPrice(30), 	            -- Plants, Grasswort Patch
-        -- [139084] = getCrownPrice(20),            -- Plants, Pearlwort Cluster
-
-        [139088] = getCrownPrice(50),               -- Alinor Table Runner, Verdant
-        [139089] = getCrownPrice(50),               -- Alinor Table Runner, Coiled
-        [139090] = getCrownPrice(100),              -- Alinor Table Runner, Cloth of Silver
-
-        [139097] = mephalaItemSet,                  -- Spiral Skein Glowstalks, Sprouts
-
-        [139126] = getCrownPrice(50),               -- Sapling, Ginkgo
-
-        [139140] = getCrownPrice(340),              -- Crystals, Crimson Spray
-        [139141] = getCrownPrice(310),              -- Crystals, Crimson Bed
-        [139142] = getCrownPrice(380),              -- Crystals, Crimson Spikes
-        [139143] = getCrownPrice(310),              -- Crystals, Midnight Cluster
-        [139144] = getCrownPrice(400),              -- Crystals, Midnight Spire
-        [139145] = getCrownPrice(430),              -- Crystals, Midnight Tower
-        [139146] = getCrownPrice(490),              -- Crystals, Midnight Bloom
-
-        [139147] = getCrownPrice(30),               -- Plants, Scarlet Sawleaf
-        [139148] = getCrownPrice(70),               -- Mushroom, Nettlecap
-
-        [139150] = getCrownPrice(70),               -- Mushrooms, Midnight Cluster
-        [139151] = getCrownPrice(140),              -- Mushrooms, Shadowpalm Cluster
-
-        [139152] = getCrownPrice(360),              -- Cocoon, Enormous Empty
-        [139153] = getCrownPrice(40),               -- Cocoon, Dormant
-        [139154] = getCrownPrice(40),               -- Cocoons, Dormant Cluster
-        [139155] = getCrownPrice(80),               -- Cocoon, Food Storage
-        [139156] = getCrownPrice(360),              -- Cocoon, Skeleton
-        [139157] = getCrownPrice(90), 	            -- Webs, Thick Sheet
-
-        [139158] = getCrownPrice(150),              -- Daedric Candelabra, Tall
-        [139159] = getCrownPrice(920),              -- Daedric Chandelier, Gruesome
-        [139160] = getCrownPrice(200),              -- Daedric Armchair, Severe
-        [139161] = getCrownPrice(1500),             -- Daedric Table, Grand Necropolis
-        [139162] = getCrownPrice(140), 	            -- Webs, Cone
-
-        [139198] = getCrownPrice(190),              -- Alinor Lantern, Hanging
-        [139199] = getCrownPrice(190),              -- Alinor Lantern, Stationary
-        [139200] = getCrownPrice(220),              -- Alinor Sconce, Wrought Glass
-        [139201] = getCrownPrice(220),              -- Alinor Sconce, Arched Glass
-        [139202] = getCrownPrice(220),              -- Alinor Sconce, Lantern
-        [139203] = getCrownPrice(140),              -- Alinor Brazier, Standing Coals
-        [139204] = getCrownPrice(260),              -- Alinor Brazier, Noble
-        [139205] = getCrownPrice(110),              -- Alinor Candelabra, Wrought Iron
-        [139206] = getCrownPrice(25),               -- Alinor Sconce, Candles
-        [139207] = getCrownPrice(25),               -- Alinor Sconce, Candles Tall
-        [139208] = getCrownPrice(60),               -- Alinor Candles, Tall Stand
-        [139209] = getCrownPrice(60),               -- Alinor Candles, Tall
-        [139210] = getCrownPrice(140),              -- Alinor Brazier, Hanging Coals
-        [139212] = getCrownPrice(410),              -- Alinor Streetlight, Wrought Iron
-
-        [139163] = mephalaItemSet,                  -- Mephala, The Webspinner (statue)
-
-        [139293] = getCrownPrice(30),               -- Alinor Chalice, Silver Ornate
-
-        [139237] = getCrownPrice(190),              -- Alinor Wall Mirror, Noble
-
-        [139329] = getCrownPrice(45),               -- Coral Formation, Heart
-        [139330] = getCrownPrice(45),               -- Coral Formation, Waving Hands
-        [139331] = getCrownPrice(45),               -- Coral Formation, Tree Antler
-        [139332] = getCrownPrice(45),               -- Coral Formation, Tree Shelf
-        [139333] = getCrownPrice(45),               -- Coral Formation, Trees Capped
-        [139334] = getCrownPrice(20),               -- Coral Formation, Tree Capped (green)
-
-        [139335] = getCrownPrice(310),              -- Tree, Shade Ancient
-        [139336] = getCrownPrice(90),               -- Trees, Shade Interwoven
-        [139337] = getCrownPrice(580),              -- Tree, Ancient Blooming Ginkgo
-
-        [139338] = getCrownPrice(25),               -- Vines, Sun-Bronzed Ivy Swath
-        [139339] = getCrownPrice(25),               -- Vines, Sun-Bronzed Ivy Climber
-
-        [139340] = getCrownPrice(310),              -- Tree, Ancient Summerset Spruce
-        [139341] = getCrownPrice(310),              -- Tree, Towering Poplar
-        [139342] = getCrownPrice(45),               -- Tree, Vibrant Pink
-        [139343] = getCrownPrice(45),               -- Tree, Cloud White
-
-        [139344] = getCrownPrice(45),               -- Flowers, Hummingbird Mint Cluster
-        [139345] = getCrownPrice(45),               -- Flowers, Lizard Tail Cluster
-        [139346] = getCrownPrice(45),               -- Flowers, Lizard Tail Patch
-        [139347] = getCrownPrice(45),               -- Flowers, Yellow Oleander Cluster
-
-        [139348] = getCrownPrice(940),              -- Alinor Pergola, Purple Wisteria
-        [139349] = getCrownPrice(940),              -- Alinor Pergola, Blue Wisteria Peaked
-        [139350] = getCrownPrice(940),              -- Alinor Pergola, Purple Wisteria Overhang
-
-        [139351] = getCrownPrice(200),              -- Alinor Monument, Marble
-        [139352] = getCrownPrice(1000),             -- Alinor Tomb, Ornate
-
-        [139353] = getCrownPrice(340),              -- Mind Trap Coral Spire, Branched
-        [139354] = getCrownPrice(340),              -- Mind Trap Coral Spire, Bulbous
-        [139355] = getCrownPrice(340),              -- Mind Trap Coral Formation, Heart
-        [139356] = getCrownPrice(340),              -- Mind Trap Coral Formation, Waving Hands
-        [139357] = getCrownPrice(340),              -- Mind Trap Coral Formation, Tree Antler
-        [139358] = getCrownPrice(340),              -- Mind Trap Coral Formation, Tree Capped
-        [139359] = getCrownPrice(340),              -- Mind Trap Coral Formation, Trees Capped
-        [139360] = getCrownPrice(510),              -- Mind Trap Kelp, Cluster
-        [139361] = getCrownPrice(270),              -- Mind Trap Kelp, Young
-
-        [139362] = getCrownPrice(340),              -- Sload Astral Nodule, Small
-        [139363] = getCrownPrice(340),              -- Sload Astral Nodule, Large
-        [139364] = getCrownPrice(1500),             -- Sload Neural Tree, Active
-
-        [139365] = getCrownPrice(370),              -- Psijic Lighting Globe, Framed
-
-        [139366] = getCrownPrice(2000),             -- Alinor Fountain, Regal
-        [139368] = getCrownPrice(100),              -- Alinor Bathing Robes, Decorative
-
-        [139376] = getCrownPrice(260),              -- Alinor Banner, Hanging
-
-        [139481] = getCrownPrice(200),              -- Alinor Column, Jagged Timeworn
-        [139482] = getCrownPrice(200),              -- Alinor Column, Huge Timeworn
-        [139483] = getCrownPrice(90),               -- Alinor Column, Tumbled Timeworn
-
-        [139480] = getCrownPrice(30),               -- Plants, Redtop Grass Tuft
-        [139650] = getCrownPrice(30),               -- Bushes, Ivy Cluster
-
-        [140220] = mephalaItemSet,                  -- Rumours of the Spiral Skein
-
-    },
-    [FURC_DROP] = {
-
-        [139059] = GetString(SI_FURC_DROP),         -- Ivory, Polished - drops from Echatere, and probably alot else
-        [139066] = GetString(SI_FURC_HARVEST),      -- Plant, Redtop Grass
-
-        [139060] = GetString(SI_FURC_GIANT_CLAM),   -- Giant Clam, Ancient
-        [139062] = GetString(SI_FURC_GIANT_CLAM),   -- Pearl, Large
-        [139063] = GetString(SI_FURC_GIANT_CLAM),   -- Pearl, Enormous
-
-        [139073] = questRewardLilandril,            -- Painting of Summerset Coast, Refined
-        [139072] = GetString(SI_FURC_ELF_PIC),		-- Painting of Monastery of Serene Harmony, Refined
-    },
-    [FURC_FISHING] = {
-        [139080] = FURC_FISHING_SUMMERSET,  -- Coral Formation, Ancient Pillar Polyps
-        [139079] = FURC_FISHING_SUMMERSET,  -- Coral Formation, Fan Cluster
-        [139081] = FURC_FISHING_SUMMERSET,  -- Plant, Sea Grapes
-        [139084] = FURC_FISHING_SUMMERSET,  -- Plants, Pearlwort Cluster
-        [139085] = FURC_FISHING_SUMMERSET,  -- Plants, Pearlwort Cluster
-        [139068] = FURC_FISHING_SUMMERSET,  -- Plants, Springwheeze
-        [139077] = FURC_FISHING_SUMMERSET,  -- Coral Formation, Bulwark
-        [139078] = FURC_FISHING_SUMMERSET,  -- Coral Formation, Pillar Polyps
-        [139067] =FURC_FISHING_SUMMERSET,   -- Flower, Yellow Oleander
-        [139082] =FURC_FISHING_SUMMERSET,   -- Plants, Ruby Glasswort Patch
-        [139068] =FURC_FISHING_SUMMERSET,   -- Plants, Springwheeze
-    }
-
+  [FURC_CROWN] = {
+    [130206] = getCrownPrice(370),               -- Ayleid Apparatus, Welkynd
+    [139064] = getCrownPrice(20),               -- Flowers, Hummingbird Mint
+    [139065] = getCrownPrice(20),               -- Flowers, Lizard Tail
+    [139066] = getCrownPrice(30),               -- Plant, Redtop Grass
+    [139067] = getCrownPrice(20),               -- Flower, Yellow Oleander
+    [139068] = getCrownPrice(20),               -- Plants, Springwheeze
+
+    [139069] = getCrownPrice(410),              -- Painting of Griffin Nest, Refined
+    [139070] = getCrownPrice(410),              -- Painting of College of the Sapiarchs, Refined
+    [139071] = getCrownPrice(410),              -- Painting of High Elf Tower, Refined
+    [139073] = getCrownPrice(410),              -- Painting of Summerset Coast, Refined
+    [139074] = getCrownPrice(410),              -- Painting of Aldmeri Ruins, Refined
+    [139075] = getCrownPrice(410),              -- Painting of Sinkhole, Refined
+    [139076] = getCrownPrice(410),              -- Painting of Ancient Road, Refined
+
+    [139078] = getCrownPrice(20),               -- Coral Formation, Tree Antler
+
+    [139083] = getCrownPrice(30),               -- Plants, Grasswort Patch
+
+
+    [139088] = getCrownPrice(50),               -- Alinor Table Runner, Verdant
+    [139089] = getCrownPrice(50),               -- Alinor Table Runner, Coiled
+    [139090] = getCrownPrice(100),              -- Alinor Table Runner, Cloth of Silver
+
+    [139097] = mephalaItemSet,                  -- Spiral Skein Glowstalks, Sprouts
+
+    [139126] = getCrownPrice(50),               -- Sapling, Ginkgo
+
+    [139140] = getCrownPrice(340),              -- Crystals, Crimson Spray
+    [139141] = getCrownPrice(310),              -- Crystals, Crimson Bed
+    [139142] = getCrownPrice(380),              -- Crystals, Crimson Spikes
+    [139143] = getCrownPrice(310),              -- Crystals, Midnight Cluster
+    [139144] = getCrownPrice(400),              -- Crystals, Midnight Spire
+    [139145] = getCrownPrice(430),              -- Crystals, Midnight Tower
+    [139146] = getCrownPrice(490),              -- Crystals, Midnight Bloom
+
+    [139147] = getCrownPrice(30),               -- Plants, Scarlet Sawleaf
+    [139148] = getCrownPrice(70),               -- Mushroom, Nettlecap
+
+    [139150] = getCrownPrice(70),               -- Mushrooms, Midnight Cluster
+    [139151] = getCrownPrice(140),              -- Mushrooms, Shadowpalm Cluster
+
+    [139152] = getCrownPrice(360),              -- Cocoon, Enormous Empty
+    [139153] = getCrownPrice(40),               -- Cocoon, Dormant
+    [139154] = getCrownPrice(40),               -- Cocoons, Dormant Cluster
+    [139155] = getCrownPrice(80),               -- Cocoon, Food Storage
+    [139156] = getCrownPrice(360),              -- Cocoon, Skeleton
+    [139157] = getCrownPrice(90),               -- Webs, Thick Sheet
+
+    [139158] = getCrownPrice(150),              -- Daedric Candelabra, Tall
+    [139159] = getCrownPrice(920),              -- Daedric Chandelier, Gruesome
+    [139160] = getCrownPrice(200),              -- Daedric Armchair, Severe
+    [139161] = getCrownPrice(1500),             -- Daedric Table, Grand Necropolis
+    [139162] = getCrownPrice(140),              -- Webs, Cone
+
+    [139198] = getCrownPrice(190),              -- Alinor Lantern, Hanging
+    [139199] = getCrownPrice(190),              -- Alinor Lantern, Stationary
+    [139201] = getCrownPrice(220),              -- Alinor Sconce, Arched Glass
+    [139202] = getCrownPrice(220),              -- Alinor Sconce, Lantern
+    [139203] = getCrownPrice(140),              -- Alinor Brazier, Standing Coals
+    [139204] = getCrownPrice(260),              -- Alinor Brazier, Noble
+    [139205] = getCrownPrice(110),              -- Alinor Candelabra, Wrought Iron
+    [139206] = getCrownPrice(25),               -- Alinor Sconce, Candles
+    [139207] = getCrownPrice(25),               -- Alinor Sconce, Candles Tall
+    [139208] = getCrownPrice(60),               -- Alinor Candles, Tall Stand
+    [139209] = getCrownPrice(60),               -- Alinor Candles, Tall
+    [139210] = getCrownPrice(140),              -- Alinor Brazier, Hanging Coals
+    [139212] = getCrownPrice(410),              -- Alinor Streetlight, Wrought Iron
+
+    [139163] = mephalaItemSet,                  -- Mephala, The Webspinner (statue)
+
+    [139293] = getCrownPrice(30),               -- Alinor Chalice, Silver Ornate
+
+    [139237] = getCrownPrice(190),              -- Alinor Wall Mirror, Noble
+
+    [139329] = getCrownPrice(45),               -- Coral Formation, Heart
+    [139330] = getCrownPrice(45),               -- Coral Formation, Waving Hands
+    [139331] = getCrownPrice(45),               -- Coral Formation, Tree Antler
+    [139332] = getCrownPrice(45),               -- Coral Formation, Tree Shelf
+    [139333] = getCrownPrice(45),               -- Coral Formation, Trees Capped
+    [139334] = getCrownPrice(20),               -- Coral Formation, Tree Capped (green)
+
+    [139335] = getCrownPrice(310),              -- Tree, Shade Ancient
+    [139336] = getCrownPrice(90),               -- Trees, Shade Interwoven
+    [139337] = getCrownPrice(580),              -- Tree, Ancient Blooming Ginkgo
+
+    [139338] = getCrownPrice(25),               -- Vines, Sun-Bronzed Ivy Swath
+    [139339] = getCrownPrice(25),               -- Vines, Sun-Bronzed Ivy Climber
+
+    [139340] = getCrownPrice(310),              -- Tree, Ancient Summerset Spruce
+    [139341] = getCrownPrice(310),              -- Tree, Towering Poplar
+    [139342] = getCrownPrice(45),               -- Tree, Vibrant Pink
+    [139343] = getCrownPrice(45),               -- Tree, Cloud White
+
+    [139344] = getCrownPrice(45),               -- Flowers, Hummingbird Mint Cluster
+    [139345] = getCrownPrice(45),               -- Flowers, Lizard Tail Cluster
+    [139346] = getCrownPrice(45),               -- Flowers, Lizard Tail Patch
+    [139347] = getCrownPrice(45),               -- Flowers, Yellow Oleander Cluster
+
+    [139348] = getCrownPrice(940),              -- Alinor Pergola, Purple Wisteria
+    [139349] = getCrownPrice(940),              -- Alinor Pergola, Blue Wisteria Peaked
+    [139350] = getCrownPrice(940),              -- Alinor Pergola, Purple Wisteria Overhang
+
+    [139351] = getCrownPrice(200),              -- Alinor Monument, Marble
+    [139352] = getCrownPrice(1000),             -- Alinor Tomb, Ornate
+
+    [139353] = getCrownPrice(340),              -- Mind Trap Coral Spire, Branched
+    [139354] = getCrownPrice(340),              -- Mind Trap Coral Spire, Bulbous
+    [139355] = getCrownPrice(340),              -- Mind Trap Coral Formation, Heart
+    [139356] = getCrownPrice(340),              -- Mind Trap Coral Formation, Waving Hands
+    [139357] = getCrownPrice(340),              -- Mind Trap Coral Formation, Tree Antler
+    [139358] = getCrownPrice(340),              -- Mind Trap Coral Formation, Tree Capped
+    [139359] = getCrownPrice(340),              -- Mind Trap Coral Formation, Trees Capped
+    [139360] = getCrownPrice(510),              -- Mind Trap Kelp, Cluster
+    [139361] = getCrownPrice(270),              -- Mind Trap Kelp, Young
+
+    [139362] = getCrownPrice(340),              -- Sload Astral Nodule, Small
+    [139363] = getCrownPrice(340),              -- Sload Astral Nodule, Large
+    [139364] = getCrownPrice(1500),             -- Sload Neural Tree, Active
+
+    [139365] = getCrownPrice(370),              -- Psijic Lighting Globe, Framed
+
+    [139366] = getCrownPrice(2000),             -- Alinor Fountain, Regal
+    [139368] = getCrownPrice(100),              -- Alinor Bathing Robes, Decorative
+
+    [139376] = getCrownPrice(260),              -- Alinor Banner, Hanging
+
+    [139481] = getCrownPrice(200),              -- Alinor Column, Jagged Timeworn
+    [139482] = getCrownPrice(200),              -- Alinor Column, Huge Timeworn
+    [139483] = getCrownPrice(90),               -- Alinor Column, Tumbled Timeworn
+
+    [139480] = getCrownPrice(30),               -- Plants, Redtop Grass Tuft
+    [139650] = getCrownPrice(30),               -- Bushes, Ivy Cluster
+
+    [140220] = mephalaItemSet,                  -- Rumours of the Spiral Skein
+
+    [130071] = getCrownPrice(300),              -- Daedric Torch, Coldharbour",
+    [130075] = getCrownPrice(380),              -- Daedric Altar, Molag Bal
+    [130078] = getCrownPrice(380),              -- Soul Gem, Single
+    [130079] = getCrownPrice(380),              -- Soul Gems, Pile
+    [130082] = getCrownPrice(640),              -- Soul-Shriven, Robed
+    [130094] = getCrownPrice(170),              -- Daedric Chains, Hanging
+    [130095] = getCrownPrice(640),              -- Daedric Torture Device, Chained
+    [139327] = getCrownPrice(45),               -- Coral Spire, Sturdy
+    [139328] = getCrownPrice(45),               -- Coral Spire, Branched
+    [132165] = getCrownPrice(750),              -- Hlaalu Bath Tub, Empty Basin
+    [126034] = getCrownPrice(4000),             -- The Lord
+    [125451] = getCrownPrice(4000),             -- The Apprentice
+    [125452] = getCrownPrice(4000),             -- The Lady
+    [125453] = getCrownPrice(4000),             -- The Warrior
+    [125454] = getCrownPrice(4000),             -- The Tower
+    [125455] = getCrownPrice(4000),             -- The Thief
+    [125456] = getCrownPrice(4000),             -- The Steed
+    [125457] = getCrownPrice(4000),             -- The Shadow
+    [125458] = getCrownPrice(4000),             -- The Serpent
+    [125459] = getCrownPrice(4000),             -- The Ritual
+    [125460] = getCrownPrice(4000),             -- The Mage
+    [125461] = getCrownPrice(4000),             -- The Lover
+    [119556] = getCrownPrice(4000),             -- The Atronach
+    [126037] = getCrownPrice(4000),             -- Target Centurion, Lambent
+    [126038] = getCrownPrice(4000),             -- Target Centurion, Robust Lambent
+    [134247] = getCrownPrice(190),              -- Soul Gem Module, Experimental
+    [134263] = getCrownPrice(410),              -- Orcish Throne, Ancient
+    [134264] = getCrownPrice(190),              -- Daedric Brazier, Cold-Flame
+    [134267] = getCrownPrice(380),              -- Orcish Table, Grand Furs
+    [134268] = getCrownPrice(570),              -- Orcish Brazier, Column
+    [134269] = getCrownPrice(220),              -- Orcish Dais, Raised
+    [134270] = getCrownPrice(85),               -- Cave Deposit, Large Double-Sided
+    [134271] = getCrownPrice(85),               -- Cave Deposit, Tall Stalagmite
+    [134273] = getCrownPrice(200),              -- Daedric Plinth, Sacrificial
+    [134274] = getCrownPrice(200),              -- Coldharbour Crate, Black Soul Gem
+    [134275] = getCrownPrice(200),              -- Coldharbour Bin, Black Soul Gem
+    [130197] = getCrownPrice(170),              -- Ayleid Bookcase, Filled
+    [130199] = getCrownPrice(170),              -- Ayleid Bookshelf, Bare
+
+  },
+  [FURC_DROP] = {
+
+    [139059] = GetString(SI_FURC_DROP),         -- Ivory, Polished - drops from Echatere, and probably alot else
+    [139066] = GetString(SI_FURC_HARVEST),      -- Plant, Redtop Grass
+
+    [139060] = GetString(SI_FURC_GIANT_CLAM),   -- Giant Clam, Ancient
+    [139062] = GetString(SI_FURC_GIANT_CLAM),   -- Pearl, Large
+    [139063] = GetString(SI_FURC_GIANT_CLAM),   -- Pearl, Enormous
+
+    [139073] = questRewardLilandril,            -- Painting of Summerset Coast, Refined
+    [139072] = GetString(SI_FURC_ELF_PIC),      -- Painting of Monastery of Serene Harmony, Refined
+
+    [87709] = GetString(SI_FURC_LEVELUP),       -- Imperial Brazier, Spiked
+    [94098] = GetString(SI_FURC_LEVELUP),       -- Imperial Bed, Single
+
+
+    [130192] = scambox_reaper,                  -- Statuette of Sheogorath, the Mad God
+  },
+  [FURC_FISHING] = {
+    [139080] = fishing_summerset,                 -- Coral Formation, Ancient Pillar Polyps
+    [139079] = fishing_summerset,                 -- Coral Formation, Fan Cluster
+    [139081] = fishing_summerset,                 -- Plant, Sea Grapes
+    [139084] = fishing_summerset,                 -- Plants, Pearlwort Cluster
+    [139085] = fishing_summerset,                 -- Plants, Pearlwort Cluster
+    [139068] = fishing_summerset,                 -- Plants, Springwheeze
+    [139077] = fishing_summerset,                 -- Coral Formation, Bulwark
+    [139078] = fishing_summerset,                 -- Coral Formation, Pillar Polyps
+    [139067] = fishing_summerset,                 -- Flower, Yellow Oleander
+    [139082] = fishing_summerset,                 -- Plants, Ruby Glasswort Patch
+    [139068] = fishing_summerset,                 -- Plants, Springwheeze
+  },
+  [FURC_RUMOUR] = {
+    [130193] = dataminedUnclear,                    -- Robust Target Minotaur Handler
+    [130194] = dataminedUnclear,                    -- Target Stone Atronach
+    [130195] = dataminedUnclear,                    -- Target Iron Atronach
+    [130189] = dataminedUnclear,                    -- Tapestry of Sheogorath
+    [130190] = dataminedUnclear,                    -- Banner of Sheogorath
+    [134287] = dataminedUnclear,                    -- Projector TBD
+    [130192] = dataminedUnclear,                    -- Statue of Sheogorath, the Madgod
+    [130187] = dataminedUnclear,                    -- Statuette of Hircine, the Huntsman
+    [130188] = dataminedUnclear,                    -- Statuette of Molag Bal, Lord of Brutality
+    [134272] = dataminedUnclear,                    -- Cave Deposit, Stalagmite Cluster
+    [134257] = dataminedUnclear,                    -- Daedra Dossier: Cold-Flame Atronach
+    [134258] = dataminedUnclear,                    -- Prayer to the Furious One
+    [134259] = dataminedUnclear,                    -- Malacath, God of Oaths and Curses
+    [134260] = dataminedUnclear,                    -- Orcish Bas-Relief, Axe
+    [134261] = dataminedUnclear,                    -- Orcish Bas-Relief, Sword
+    [134262] = dataminedUnclear,                    -- Orcish Bas-Relief, Spear
+    [134255] = dataminedUnclear,                    -- Transliminal Rupture
+    [134256] = dataminedUnclear,                    -- Coldharbour Bookshelf, Filled Pillar
+    [134253] = dataminedUnclear,                    -- Coldharbour Bookshelf, Filled Wide
+    [134254] = dataminedUnclear,                    -- Seal of Molag Bal
+    [132200] = dataminedUnclear,                    -- Imperial Well, Akatosh
+    [132201] = dataminedUnclear,                    -- Tree, Kvatch Nut
+    [132202] = dataminedUnclear,                    -- Rock, Anvil Limestone
+    [132203] = dataminedUnclear,                    -- Stone, Anvil Limestone
+    [132204] = dataminedUnclear,                    -- Imperial Statue, Truth
+    [132197] = dataminedUnclear,                    -- Death Skeleton, Shrouded
+    [134246] = dataminedUnclear,                    -- The Law of Gears
+    [140297] = dataminedUnclear,                    -- Replica Throne of Alinor,
+    [120851] = dataminedUnclear,                    -- Gallows,
+    [120852] = dataminedUnclear,                    -- Holding Cell,
+    [120853] = dataminedUnclear,                    -- Stockade,
+    [130070] = dataminedUnclear,                    -- Daedric Spout, Arched,
+    [120856] = dataminedUnclear,                    -- Yokudan Sarcophagus
+    [120857] = dataminedUnclear,                    -- Yokudan Sarcophagus Lid
+    [120858] = dataminedUnclear,                    -- Yokudan Tapestry
+    [120860] = dataminedUnclear,                    -- Yokudan Throne
+    [120861] = dataminedUnclear,                    -- Yokudan Sitting Griffin Statue
+    [130080] = dataminedUnclear,                    -- Soul Gems, Scattered
+    [130081] = dataminedUnclear,                    -- Soul-Shriven, Armored
+    [130083] = dataminedUnclear,                    -- Daedric Block, Seat
+    [130084] = dataminedUnclear,                    -- Daedric Tapestry, Molag Bal
+    [130085] = dataminedUnclear,                    -- Daedric Banner, Molag Bal
+    [130086] = dataminedUnclear,                    -- Daedric Pennant, Molag Bal
+    [130089] = dataminedUnclear,                    -- Daedric Brazier, Molag Bal
+    [130087] = dataminedUnclear,                    -- Daedric Shards, Coldharbour
+    [120872] = dataminedUnclear,                    -- Daedric Pike, Daedroth Head
+    [120874] = dataminedUnclear,                    -- Daedric Coffin, Lid
+    [130091] = dataminedUnclear,                    -- Statue of Molag Bal, God of Schemes
+    [120876] = dataminedUnclear,                    -- Gravestone, Imp Engraving
+    [120877] = dataminedUnclear,                    -- Gravestone, Cracked
+    [120880] = dataminedUnclear,                    -- Tombstone, Engraved, Decorative
+    [120881] = dataminedUnclear,                    -- Tombstone, Engraved, Order of the Hour
+    [120882] = dataminedUnclear,                    -- Tombstone, Small
+    [132156] = dataminedUnclear,                    -- Briarheart Tree, Replica
+    [132166] = dataminedUnclear,                    -- Death Skeleton, Robed
+    [134447] = dataminedUnclear,                    -- Seal of Clan Bagrakh, Metal
+    [134448] = dataminedUnclear,                    -- Seal of Clan Fharun, Metal
+    [134454] = dataminedUnclear,                    -- Seal of Clan Morkul, Metal
+    [134455] = dataminedUnclear,                    -- Seal of Clan Shatul, Metal
+    [134456] = dataminedUnclear,                    -- Seal of Clan Tumnosh, Metal
+    [134449] = dataminedUnclear,                    -- Seal of Clan Igrun, Metal
+    [134474] = dataminedUnclear,                    -- Banner, Malacath
+  }
 } -- Reach
 FurC.MiscItemSources[FURC_DRAGONS] = { -- Reach
-    [FURC_DROP] = {
-        [134909] = GetString(SI_FURC_DRAGON_DUNGEON_DROP), 	-- Mushrooms, Puspocket Group
-        [134910] = GetString(SI_FURC_DRAGON_DUNGEON_DROP), 	-- Mushrooms, Puspocket Cluster
-        [134911] = GetString(SI_FURC_DRAGON_DUNGEON_DROP), 	-- Mushroom, Puspocket Sporecap
-        [134912] = GetString(SI_FURC_DRAGON_DUNGEON_DROP), 	-- Mushroom, Large Puspocket
-        [134913] = GetString(SI_FURC_DRAGON_DUNGEON_DROP), 	-- Mushroom, Tall Puspocket
-        [134914] = GetString(SI_FURC_DRAGON_DUNGEON_DROP), 	-- Mushrooms, Large Puspocket Cluster
-    },
-    [FURC_JUSTICE] 	= {},
-    [FURC_CROWN] 	= {
-        [134970] = getCrownPrice(100), 	-- Mushrooms, Glowing Sprawl
-        [134947] = getCrownPrice(100), 	-- Mushrooms, Glowing Field
-        [134948] = getCrownPrice(400),	-- Mushrooms, Glowing Cluster
-        [134971] = getCrownPrice(400),	-- Candles, Votive Group
-        [134872] = getCrownPrice(400),	-- Ancient Nord Brazier, Dragon Crest
-        [134863] = getCrownPrice(400),	-- Ancient Nord Sconce, Dragon Crest
-        [134972] = getCrownPrice(400),	-- Brotherhood Brazier, Wrought Iron
-        [134849] = getCrownPrice(400),	-- Monarch Butterfly Flock
-        [134848] = getCrownPrice(400),	-- Blue Butterfly Flock
-        [94100]  = getCrownPrice(50),	-- Imperial BookCase, Swirled
-        [130211] = getCrownPrice(50),	-- Books, Ordered Row
-        [130210] = getCrownPrice(50),	-- Books, Scattered Row
-    }
+  [FURC_DROP] = {
+    [134909] = GetString(SI_FURC_DRAGON_DUNGEON_DROP),   -- Mushrooms, Puspocket Group
+    [134910] = GetString(SI_FURC_DRAGON_DUNGEON_DROP),   -- Mushrooms, Puspocket Cluster
+    [134911] = GetString(SI_FURC_DRAGON_DUNGEON_DROP),   -- Mushroom, Puspocket Sporecap
+    [134912] = GetString(SI_FURC_DRAGON_DUNGEON_DROP),   -- Mushroom, Large Puspocket
+    [134913] = GetString(SI_FURC_DRAGON_DUNGEON_DROP),   -- Mushroom, Tall Puspocket
+    [134914] = GetString(SI_FURC_DRAGON_DUNGEON_DROP),   -- Mushrooms, Large Puspocket Cluster
+  },
+  [FURC_JUSTICE]   = {},
+  [FURC_CROWN]   = {
+    [134970] = getCrownPrice(100),   -- Mushrooms, Glowing Sprawl
+    [134947] = getCrownPrice(100),   -- Mushrooms, Glowing Field
+    [134948] = getCrownPrice(400),   -- Mushrooms, Glowing Cluster
+    [134971] = getCrownPrice(400),   -- Candles, Votive Group
+    [134872] = getCrownPrice(400),   -- Ancient Nord Brazier, Dragon Crest
+    [134863] = getCrownPrice(400),   -- Ancient Nord Sconce, Dragon Crest
+    [134972] = getCrownPrice(400),   -- Brotherhood Brazier, Wrought Iron
+    [134849] = getCrownPrice(400),   -- Monarch Butterfly Flock
+    [134848] = getCrownPrice(400),   -- Blue Butterfly Flock
+    [94100]  = getCrownPrice(50),    -- Imperial BookCase, Swirled
+    [130211] = getCrownPrice(50),    -- Books, Ordered Row
+    [130210] = getCrownPrice(50),    -- Books, Scattered Row
+  }
 }

 FurC.MiscItemSources[FURC_CLOCKWORK] = { -- Reach
-    [FURC_DROP] = {
-        [134407] = FURC_AUTOMATON_CC,			-- Factotum Torso, Obsolete
-        [134404] = FURC_AUTOMATON_CC,			-- Factotum Knee, Obsolete
-        [134408] = FURC_AUTOMATON_CC,			-- Factotum Elbow, Obsolete
-        [134405] = FURC_AUTOMATON_CC,			-- Factotum Arm, Obsolete
-        [134409] = FURC_AUTOMATON_CC,			-- Factotum Head, Obsolete
-        [134406] = FURC_AUTOMATON_CC,			-- Factotum Body, Obsolete
-
-    },
-    [FURC_JUSTICE] 	= {
-        [134410] = FURC_CANBESTOLENINCC, 		    -- Clockwork Crank, Miniature
-        [134411] = FURC_CANBESTOLENINCC, 		    -- Clockwork Gear Shaft, Miniature
-        [134412] = FURC_CANBESTOLENINCC, 		    -- Clockwork Piston, Miniature
-        [134413] = FURC_CANBESTOLENINCC, 		    -- Clockwork Magnifier, Handheld
-        [134414] = FURC_CANBESTOLENINCC, 		    -- Clockwork Micrometer, Handheld
-        [134415] = FURC_CANBESTOLENINCC, 		    -- Clockwork Dial Calipers, Handheld
-        [134416] = FURC_CANBESTOLENINCC, 		    -- Clockwork Slide Calipers, Handheld
-        [134402] = GetString(SI_FURC_CANBESTOLEN), 	-- Spool, Empty
-        [134400] = GetString(SI_FURC_CANBESTOLEN), 	-- Soft Leather, Stacked
-        [134401] = GetString(SI_FURC_CANBESTOLEN), 	-- Soft Leather, Folded
-        [134417] = GetString(SI_FURC_CANBESTOLEN), 	-- Calipers, Handheld
-        [134399] = GetString(SI_FURC_CANBESTOLEN), 	-- Quality Fabric, Folded
-        [117939] = FURC_CANBESTOLEN_WW, 		    -- Rough Axe, Practical
-    },
-    [FURC_CROWN] 	= {
-        [134266] = getCrownPrice(80), 	-- Daedric Books, Stacked
-        [134265] = getCrownPrice(80), 	-- Daedric Books, Piled
-
-    }
+  [FURC_DROP] = {
+    [134407] = automaton_loot_cc,      -- Factotum Torso, Obsolete
+    [134404] = automaton_loot_cc,      -- Factotum Knee, Obsolete
+    [134408] = automaton_loot_cc,      -- Factotum Elbow, Obsolete
+    [134405] = automaton_loot_cc,      -- Factotum Arm, Obsolete
+    [134409] = automaton_loot_cc,      -- Factotum Head, Obsolete
+    [134406] = automaton_loot_cc,      -- Factotum Body, Obsolete
+
+    [132348] = questRewardString .. "the Brass Citadel", -- The Precursor
+  },
+  [FURC_JUSTICE]   = {
+    [134410] = stealable_cc,          -- Clockwork Crank, Miniature
+    [134411] = stealable_cc,          -- Clockwork Gear Shaft, Miniature
+    [134412] = stealable_cc,          -- Clockwork Piston, Miniature
+    [134413] = stealable_cc,          -- Clockwork Magnifier, Handheld
+    [134414] = stealable_cc,          -- Clockwork Micrometer, Handheld
+    [134415] = stealable_cc,          -- Clockwork Dial Calipers, Handheld
+    [134416] = stealable_cc,          -- Clockwork Slide Calipers, Handheld
+    [134402] = stealable,             -- Spool, Empty
+    [134400] = stealable,             -- Soft Leather, Stacked
+    [134401] = stealable,             -- Soft Leather, Folded
+    [134417] = stealable,             -- Calipers, Handheld
+    [134399] = stealable,             -- Quality Fabric, Folded
+    [117939] = stealable_woodworkers, -- Rough Axe, Practical
+  },
+  [FURC_CROWN]   = {
+    [134266] = getCrownPrice(80),   -- Daedric Books, Stacked
+    [134265] = getCrownPrice(80),   -- Daedric Books, Piled
+    [134373] = getCrownPrice(410),      -- Clockwork Wall Machinery, Rectangular
+    [134374] = getCrownPrice(410),      -- Clockwork Wall Machinery, Circular
+    [134382] = getCrownPrice(7),        -- Fabricant Tree, Beryl Cypress
+    [134383] = getCrownPrice(870),      -- Fabricant Tree, Towering Maple
+    [134385] = getCrownPrice(870),      -- Fabricant Tree, Brass Swamp
+    [134387] = getCrownPrice(870),      -- Fabricant Tree, Tall Cobalt Spruce
+    [134388] = getCrownPrice(870),      -- Fabricant Tree, Cobalt Oak
+    [134390] = getCrownPrice(140),      -- Clockwork Junk Heap, Large
+    [134391] = getCrownPrice(510),      -- Clockwork Sequence Spool, Column
+    [134392] = getCrownPrice(260),      -- Clockwork Recharging Column, Octet
+    [134393] = getCrownPrice(270),      -- Clockwork Workbench, Spacious
+    [134394] = getCrownPrice(460),      -- Clockwork Illuminator, Capsule Chandelier
+    [134395] = getCrownPrice(150),      -- Clockwork Illuminator, Wall Capsule
+    [134396] = getCrownPrice(410),      -- Clockwork Wall Machinery, Tall
+    [134397] = getCrownPrice(410),      -- Clockwork Wall Machinery, Ovoid
+    [134398] = getCrownPrice(1300),     -- Clockwork Gazebo, Copper and Basalt
+  },
+  [FURC_RUMOUR] = {
+
+    [134422] = dataminedUnclear,                    -- Clockwork Sextant, Surveyor's
+    [134403] = dataminedUnclear,                    -- Spool, Red Thread
+    [134437] = dataminedUnclear,                    -- Clockwork Spinning Wheel, Sturdy
+    [134441] = dataminedUnclear,                    -- Animo Core, Full
+
+    [134384] = dataminedUnclear,                    -- Fabricant Tree, Decorative Electrum
+    [134386] = dataminedUnclear,                    -- Fabricant Tree, Forked Cherry Blossom
+    [134389] = dataminedUnclear,                    -- Fabricant Tree, Decorative Brass
+    [134437] = dataminedUnclear,                    -- Clockwork Spinning Wheel, Sturdy
+    [134441] = dataminedUnclear,                    -- Animo Core, Full
+    [125509] = dataminedUnclear,                    -- Replica Dwarven Crown Crate
+    [125516] = dataminedUnclear,                    -- Dwarven Gear Assembly, Grinding
+
+
+  }
 }
-
+

 FurC.MiscItemSources[FURC_REACH] = { -- Reach
-    [FURC_JUSTICE] 	= {
-        [130191] = GetString(SI_FURC_CANBESTOLEN), 			-- Shivering Cheese
-        [118206] = FURC_CANBESTOLEN_THIEF, 		            -- Gaming dice
-    },
-    [FURC_CROWN] 	= {
-        [131423] = getCrownPrice(750),
-    },
-    [FURC_DROP] 	= {
-        -- Coldharbour items
-        [130284] = GetString(SI_FURC_HARVEST),          -- Glowstalk, Seedlings
-        [131422] = GetString(SI_FURC_HARVEST),          -- Flower Patch, Glowstalks
-        [130283] = GetString(SI_FURC_HARVEST),          -- Glowstalk, Sprout
-        [130285] = GetString(SI_FURC_HARVEST),          -- Glowstalk, Young
-        [131420] = GetString(SI_FURC_HARVEST),          -- Shrub, Glowing Thistle
-        [130281] = GetString(SI_FURC_HARVEST),          -- Glowstalk, Towering
-        [130282] = GetString(SI_FURC_HARVEST),          -- Glowstalk, Strong
-
-        [130067] = GetString(SI_FURC_DAEDRA_SOURCE), 	-- Daedric Chain Segment
-    },
+  [FURC_JUSTICE]   = {
+    [130191] = stealable,       -- Shivering Cheese
+    [118206] = stealable_thief,                 -- Gaming dice
+  },
+  [FURC_CROWN]   = {
+    [131423] = getCrownPrice(750),
+  },
+  [FURC_DROP]   = {
+    -- Coldharbour items
+    [130284] = GetString(SI_FURC_HARVEST),          -- Glowstalk, Seedlings
+    [131422] = GetString(SI_FURC_HARVEST),          -- Flower Patch, Glowstalks
+    [130283] = GetString(SI_FURC_HARVEST),          -- Glowstalk, Sprout
+    [130285] = GetString(SI_FURC_HARVEST),          -- Glowstalk, Young
+    [131420] = GetString(SI_FURC_HARVEST),          -- Shrub, Glowing Thistle
+    [130281] = GetString(SI_FURC_HARVEST),          -- Glowstalk, Towering
+    [130282] = GetString(SI_FURC_HARVEST),          -- Glowstalk, Strong
+
+    [130067] = GetString(SI_FURC_DAEDRA_SOURCE),   -- Daedric Chain Segment
+  },
 }

 local questRewardSuran = GetString(SI_FURC_QUESTREWARD) .. " Suran"
-FurC.MiscItemSources[FURC_MORROWIND]	= {             -- Morrowind
-    [FURC_DROP] 	= {
-
-        -- Dwemer parts
-        [126660] = FURC_AUTOMATON_VV, 			        -- Dwemer Gear, Tiered
-        [126659] = FURC_AUTOMATON_VV, 			        -- Dwemer Gear, Flat
-
-        -- lootable in tombs
-        [126754] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Seeker
-        [126705] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Wisdom
-        [126704] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Majesty
-        [126706] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Knowledge
-        [126701] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Nerevar
-        [126764] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Prowess
-        [126702] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Reverance
-        [126700] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Honor
-        [126703] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Mysteries
-        [126752] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Discovery
-        [126755] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Change
-        [126756] = GetString(SI_FURC_TOMBS), 			-- Velothi Shroud, Mercy
-
-        [126773] = GetString(SI_FURC_TOMBS), 			-- Velothi Caisson, Crypt
-        [126753] = GetString(SI_FURC_TOMBS),			-- Velothi Cerecloth, Austere
-        [126758] = GetString(SI_FURC_TOMBS),			-- Velothi Mat, Prayer
-        [126757] = GetString(SI_FURC_TOMBS),
-
-        [126462] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Oversized Volcanic
-        [126463] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Oversized Forest
-        [126464] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Oversized Valley
-
-        [126465] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Modest Volcanic
-        [126466] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Modest Forest
-        [126467] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Modest Valley
-
-        [126468] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Classic Volcanic
-        [126469] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Classic Forest
-        [126470] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Classic Valley
-
-        [126592] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Panels, Volcano
-        [126593] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tryptich, Volcano
-        [126594] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Classic Volcano
-        [126595] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Modest Volcano
-        [126596] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tapestry, Volcano
-        [126597] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Oversized Volcano
-
-        [126605] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tryptich, Waterfall
-        [126606] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tapestry, Waterfall
-        [126607] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Oversized Waterfall
-        [126608] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Classic Waterfall
-        [126609] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Modest Waterfall
-        [126598] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Panels, Waterfall
-        [126599] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tryptich, Geyser
-        [126600] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tapestry, Geyser
-        [126601] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Oversized Geyser
-        [126602] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Classic Geyser
-        [126603] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Modest Geyser
-        [126604] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Panels, Geyser
-
-        -- Ashlander dailies
-        [126119] = GetString(SI_FURC_DAILY_ASH), 	    -- Crimson Shard of Moonshadow
-        [126393] = GetString(SI_FURC_DAILY_ASH), 		-- Crimson Shard of Moonshadow
-
-        -- drops from plants
-        [125631] = FURC_PLANTS_VVARDENFELL, 		    -- Plants, Ash Frond
-        [125647] = FURC_PLANTS_VVARDENFELL, 		    -- Plants, Ash Frond
-        [131420] = FURC_PLANTS_VVARDENFELL, 		    -- Plants, Ash Frond
-        [125553] = FURC_PLANTS_VVARDENFELL, 		    -- Flowers, Netch Cabbage Stalks
-        [125551] = FURC_PLANTS_VVARDENFELL, 		    -- Flowers, Netch Cabbage
-        [125552] = FURC_PLANTS_VVARDENFELL, 		    -- Flowers, Netch Cabbage Patch
-        [125543] = FURC_PLANTS_VVARDENFELL, 		    -- Fern, Ashen
-        [125633] = FURC_PLANTS_VVARDENFELL, 		    -- Plants, Hanging Pitcher Pair
-
-        [125551] = FURC_PLANTS_VVARDENFELL, 		    -- Flowers, Netch Cabbage
-        [125552] = FURC_PLANTS_VVARDENFELL, 		    -- Flowers, Netch Cabbage Patch
-        [125553] = FURC_PLANTS_VVARDENFELL, 		    -- Flowers, Netch Cabbage Stalks
-        [125562] = FURC_PLANTS_VVARDENFELL, 		    -- Grass, Foxtail Cluster
-        [125595] = FURC_PLANTS_VVARDENFELL, 		    -- Mushroom, Poison Pax Shelf
-        [125596] = FURC_PLANTS_VVARDENFELL, 		    -- Mushroom, Poison Pax Stool
-        [125600] = FURC_PLANTS_VVARDENFELL, 		    -- Mushroom, Spongecap Patch
-        [125606] = FURC_PLANTS_VVARDENFELL, 		    -- Mushroom, Young Milkcap
-        [125608] = FURC_PLANTS_VVARDENFELL, 		    -- Mushrooms, Buttercake Cluster
-        [125609] = FURC_PLANTS_VVARDENFELL, 		    -- Mushrooms, Buttercake Stack
-        [125613] = FURC_PLANTS_VVARDENFELL, 		    -- Mushrooms, Lavaburst Sprouts
-        [125590] = FURC_PLANTS_VVARDENFELL, 		    -- Mushrooms, Lavaburst Cluster
-        [125617] = FURC_PLANTS_VVARDENFELL, 		    -- Plant, Bitter Stalk
-        [125618] = FURC_PLANTS_VVARDENFELL, 		    -- Plant, Golden Lichen
-        [125619] = FURC_PLANTS_VVARDENFELL, 		    -- Plant, Hanging Pitcher
-        [125620] = FURC_PLANTS_VVARDENFELL, 		    -- Plant, Hefty Elkhorn
-        [125621] = FURC_PLANTS_VVARDENFELL, 		    -- Plant, Lava Brier
-        [125622] = FURC_PLANTS_VVARDENFELL, 		    -- Plant, Lava Leaf
-        [125630] = FURC_PLANTS_VVARDENFELL, 		    -- Plant, Young Elkhorn
-        [125631] = FURC_PLANTS_VVARDENFELL, 		    -- Plants, Ash Frond
-        [125632] = FURC_PLANTS_VVARDENFELL, 		    -- Plants, Hanging Pitcher Cluster
-        [125633] = FURC_PLANTS_VVARDENFELL, 		    -- Plants, Hanging Pitcher Pair
-        [125634] = FURC_PLANTS_VVARDENFELL, 		    -- Plants, Lava Pitcher Cluster
-        [125635] = FURC_PLANTS_VVARDENFELL, 		    -- Plants, Lava Pitcher Shoots
-        [125636] = FURC_PLANTS_VVARDENFELL, 		    -- Plants, Swamp Pitcher Cluster
-        [125637] = FURC_PLANTS_VVARDENFELL, 		    -- Plants, Swamp Pitcher Shoots
-        [125647] = FURC_PLANTS_VVARDENFELL, 		    -- Shrub, Bitter Brush
-        [125648] = FURC_PLANTS_VVARDENFELL, 		    -- Shrub, Bitter Cluster
-        [125649] = FURC_PLANTS_VVARDENFELL, 		    -- Shrub, Flowering Dusk
-        [125650] = FURC_PLANTS_VVARDENFELL, 		    -- Shrub, Golden Lichen
-        [125670] = FURC_PLANTS_VVARDENFELL, 		    -- Toadstool, Bloodtooth
-        [125671] = FURC_PLANTS_VVARDENFELL, 		    -- Toadstool, Bloodtooth Cap
-        [125672] = FURC_PLANTS_VVARDENFELL, 		    -- Toadstool, Bloodtooth Cluster
-
-        [126759] = questRewardSuran,                    -- Sir Sock's Ball of Yarn
-
-        [126592] = GetString(SI_FURC_PLANTS), 			-- Plants, Hanging Pitcher Pair
-
-        [126039] = FURC_SCAMBOX_DWEMER, 				-- Statue of masked Clavicus Vile with Barbas
-
-    },
-    [FURC_CROWN] 	= {
-        [125566] = getHouseString(1243),                -- Hlaalu Shed, Enclosed
-        [125568] = getHouseString(1243),                -- Hlaalu Sidewalk, Sillar Stone
-        [125577] = getHouseString(1243),                -- Hlaalu Wall Post, Sillar Stone
-        [125579] = getHouseString(1243),                -- Hlaalu Well, Braced Sillar Stone
-        [125573] = getHouseString(1243, 1244),          -- Hlaalu Streetlamp, Paper
-        [125565] = getHouseString(1244),                -- Hlaalu Lantern, Hanging Paper
-        [125567] = getHouseString(1244),                -- Hlaalu Shed, Open
-        [125580] = getHouseString(1244),                -- Hlaalu Well, Covered Sillar Stone
-        [118663] = getHouseString(1078, 1079),          -- Dark Elf Bed of Coals
-
-    },
-    [FURC_JUSTICE] 	= {
-        [126481] = FURC_CANBESTOLEN_RELIG .. " on Vvardenfell", -- Indoril Incense, Burning
-        [126772] = FURC_CANBESTOLEN_THIEF 		        -- Khajiiti Ponder sphere
-    },
+FurC.MiscItemSources[FURC_MORROWIND]  = {             -- Morrowind
+  [FURC_DROP]   = {
+
+    -- Dwemer parts
+    [126660] = automaton_loot_vv,               -- Dwemer Gear, Tiered
+    [126659] = automaton_loot_vv,               -- Dwemer Gear, Flat
+
+    -- lootable in tombs
+    [126754] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Seeker
+    [126705] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Wisdom
+    [126704] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Majesty
+    [126706] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Knowledge
+    [126701] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Nerevar
+    [126764] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Prowess
+    [126702] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Reverance
+    [126700] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Honor
+    [126703] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Mysteries
+    [126752] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Discovery
+    [126755] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Change
+    [126756] = GetString(SI_FURC_TOMBS),       -- Velothi Shroud, Mercy
+
+    [126773] = GetString(SI_FURC_TOMBS),       -- Velothi Caisson, Crypt
+    [126753] = GetString(SI_FURC_TOMBS),       -- Velothi Cerecloth, Austere
+    [126758] = GetString(SI_FURC_TOMBS),       -- Velothi Mat, Prayer
+    [126757] = GetString(SI_FURC_TOMBS),
+
+    [126462] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Oversized Volcanic
+    [126463] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Oversized Forest
+    [126464] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Oversized Valley
+
+    [126465] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Modest Volcanic
+    [126466] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Modest Forest
+    [126467] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Modest Valley
+
+    [126468] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Classic Volcanic
+    [126469] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Classic Forest
+    [126470] = GetString(SI_FURC_CHEST_VV),         -- Telvanni Painting, Classic Valley
+
+    [126592] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Panels, Volcano
+    [126593] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tryptich, Volcano
+    [126594] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Classic Volcano
+    [126595] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Modest Volcano
+    [126596] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tapestry, Volcano
+    [126597] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Oversized Volcano
+
+    [126605] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tryptich, Waterfall
+    [126606] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tapestry, Waterfall
+    [126607] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Oversized Waterfall
+    [126608] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Classic Waterfall
+    [126609] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Modest Waterfall
+    [126598] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Panels, Waterfall
+    [126599] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tryptich, Geyser
+    [126600] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Tapestry, Geyser
+    [126601] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Oversized Geyser
+    [126602] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Classic Geyser
+    [126603] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Painting, Modest Geyser
+    [126604] = GetString(SI_FURC_VV_PAINTING),      -- Velothi Panels, Geyser
+
+    -- Ashlander dailies
+    [126119] = GetString(SI_FURC_DAILY_ASH),       -- Crimson Shard of Moonshadow
+    [126393] = GetString(SI_FURC_DAILY_ASH),     -- Crimson Shard of Moonshadow
+
+    -- drops from plants
+    [125631] = plants_vvardenfell,         -- Plants, Ash Frond
+    [125647] = plants_vvardenfell,         -- Plants, Ash Frond
+    [131420] = plants_vvardenfell,         -- Plants, Ash Frond
+    [125553] = plants_vvardenfell,         -- Flowers, Netch Cabbage Stalks
+    [125551] = plants_vvardenfell,         -- Flowers, Netch Cabbage
+    [125552] = plants_vvardenfell,         -- Flowers, Netch Cabbage Patch
+    [125543] = plants_vvardenfell,         -- Fern, Ashen
+    [125633] = plants_vvardenfell,         -- Plants, Hanging Pitcher Pair
+    [125680] = plants_vvardenfell,         -- Vines, Ashen Moss
+
+    [125551] = plants_vvardenfell,         -- Flowers, Netch Cabbage
+    [125552] = plants_vvardenfell,         -- Flowers, Netch Cabbage Patch
+    [125553] = plants_vvardenfell,         -- Flowers, Netch Cabbage Stalks
+    [125562] = plants_vvardenfell,         -- Grass, Foxtail Cluster
+    [125595] = plants_vvardenfell,         -- Mushroom, Poison Pax Shelf
+    [125596] = plants_vvardenfell,         -- Mushroom, Poison Pax Stool
+    [125600] = plants_vvardenfell,         -- Mushroom, Spongecap Patch
+    [125606] = plants_vvardenfell,         -- Mushroom, Young Milkcap
+    [125608] = plants_vvardenfell,         -- Mushrooms, Buttercake Cluster
+    [125609] = plants_vvardenfell,         -- Mushrooms, Buttercake Stack
+    [125613] = plants_vvardenfell,         -- Mushrooms, Lavaburst Sprouts
+    [125590] = plants_vvardenfell,         -- Mushrooms, Lavaburst Cluster
+    [125617] = plants_vvardenfell,         -- Plant, Bitter Stalk
+    [125618] = plants_vvardenfell,         -- Plant, Golden Lichen
+    [125619] = plants_vvardenfell,         -- Plant, Hanging Pitcher
+    [125620] = plants_vvardenfell,         -- Plant, Hefty Elkhorn
+    [125621] = plants_vvardenfell,         -- Plant, Lava Brier
+    [125622] = plants_vvardenfell,         -- Plant, Lava Leaf
+    [125630] = plants_vvardenfell,         -- Plant, Young Elkhorn
+    [125631] = plants_vvardenfell,         -- Plants, Ash Frond
+    [125632] = plants_vvardenfell,         -- Plants, Hanging Pitcher Cluster
+    [125633] = plants_vvardenfell,         -- Plants, Hanging Pitcher Pair
+    [125634] = plants_vvardenfell,         -- Plants, Lava Pitcher Cluster
+    [125635] = plants_vvardenfell,         -- Plants, Lava Pitcher Shoots
+    [125636] = plants_vvardenfell,         -- Plants, Swamp Pitcher Cluster
+    [125637] = plants_vvardenfell,         -- Plants, Swamp Pitcher Shoots
+    [125647] = plants_vvardenfell,         -- Shrub, Bitter Brush
+    [125648] = plants_vvardenfell,         -- Shrub, Bitter Cluster
+    [125649] = plants_vvardenfell,         -- Shrub, Flowering Dusk
+    [125650] = plants_vvardenfell,         -- Shrub, Golden Lichen
+    [125670] = plants_vvardenfell,         -- Toadstool, Bloodtooth
+    [125671] = plants_vvardenfell,         -- Toadstool, Bloodtooth Cap
+    [125672] = plants_vvardenfell,         -- Toadstool, Bloodtooth Cluster
+
+    [125649] = plants_vvardenfell,         -- Shrub, Flowering Dusk
+
+    [126759] = questRewardSuran,           -- Sir Sock's Ball of Yarn
+
+    [126592] = GetString(SI_FURC_PLANTS),  -- Plants, Hanging Pitcher Pair
+
+    [126039] = scambox_dwemer,            -- Statue of masked Clavicus Vile with Barbas
+
+  },
+  [FURC_CROWN]   = {
+    [125566] = getHouseString(1243),                -- Hlaalu Shed, Enclosed
+    [125568] = getHouseString(1243),                -- Hlaalu Sidewalk, Sillar Stone
+    [125577] = getHouseString(1243),                -- Hlaalu Wall Post, Sillar Stone
+    [125579] = getHouseString(1243),                -- Hlaalu Well, Braced Sillar Stone
+    [125573] = getHouseString(1243, 1244),          -- Hlaalu Streetlamp, Paper
+    [125565] = getHouseString(1244),                -- Hlaalu Lantern, Hanging Paper
+    [125567] = getHouseString(1244),                -- Hlaalu Shed, Open
+    [125580] = getHouseString(1244),                -- Hlaalu Well, Covered Sillar Stone
+    [118663] = getHouseString(1078, 1079),          -- Dark Elf Bed of Coals
+
+    [126475] = getCrownPrice(260),                  -- Telvanni Lantern, Organic Amber
+    [126476] = getCrownPrice(200),                  -- Telvanni Lamp, Organic Amber
+    [126477] = getCrownPrice(560),                  -- Telvanni Streetlight, Organic Amber
+    [126478] = getCrownPrice(560),                  -- Telvanni Arched Light, Organic Amber
+    [126479] = getCrownPrice(310),                  -- Telvanni Sconce, Organic Amber
+    [130202] = getCrownPrice(170),                  -- Ayleid Grate, Tall
+    [130204] = getCrownPrice(410),                  -- Welkynd Stones, Glowing
+    [130205] = getCrownPrice(680),                  -- Ayleid Statue, Pious Priest
+    [130207] = getCrownPrice(270),                  -- Ayleid Plinth, Engraved
+    [130216] = getCrownPrice(510),                  -- Witches' Basin, Scrying
+    [130219] = getCrownPrice(240),                  -- Witches' Brazier, Beast Skull
+    [121001] = getCrownPrice(45),                   -- Flowers, Golden Prairie
+    [121002] = getCrownPrice(45),                   -- Flowers, Violet Prairie
+    [130220] = getCrownPrice(3300),                 -- Hagraven Altar, Alchemical
+    [130221] = getCrownPrice(430),                  -- Reachmen Cage, Sturdy
+    [130222] = getCrownPrice(260),                  -- Hagraven Totem, Skull
+    [130223] = getCrownPrice(340),                  -- Reachmen Rug, Mottled Skin
+    [130225] = getCrownPrice(340),                  -- Skulls, Heap
+    [130226] = getCrownPrice(85),                   -- Carcass, Hanging Deer
+    [130227] = getCrownPrice(850),                  -- Witches' Tent, Lean-To
+    [130229] = getCrownPrice(290),                  -- Tree, Wretched Cypress
+    [130230] = getCrownPrice(90),                   -- Stump, Wretched Cypress
+    [121017] = getCrownPrice(10),                   -- Bush, Dense Forest
+    [121019] = getCrownPrice(10),                   -- Plants, Dense Underbrush
+    [121027] = getCrownPrice(45),                   -- Hedge, Dense Low Arc
+    [130247] = getCrownPrice(290),                  -- Tree, Fetid Cypress
+    [121033] = getCrownPrice(25),                   -- Sapling, Sparse Laurel
+    [121037] = getCrownPrice(30),                   -- Shrub, Sparse Pink
+    [121038] = getCrownPrice(30),                   -- Plant, Paired White Hosta
+    [121039] = getCrownPrice(30),                   -- Plant, Blooming White Hosta
+    [121040] = getCrownPrice(30),                   -- Plant, Verdant Hosta
+    [121041] = getCrownPrice(10),                   -- Plant, Young Verdant Hosta
+    [121042] = getCrownPrice(10),                   -- Plant, Young Summer Hosta
+    [121043] = getCrownPrice(30),                   -- Plant, Summer Hosta
+    [121044] = getCrownPrice(30),                   -- Plant, Healthy White Hosta
+    [121045] = getCrownPrice(25),                   -- Book Row, Decorative
+    [121047] = getCrownPrice(25),                   -- Book Row, Long
+    [121052] = getCrownPrice(100),                  -- Vase, Gilded Offering
+    [121053] = getCrownPrice(170),                  -- Jar, Gilded Canopic
+    [121054] = getCrownPrice(30),                   -- Breton Mug, Empty
+    [121056] = getCrownPrice(25),                   -- Book Stack, Decorative
+    [134379] = getCrownPrice(50),                   -- Boulder, Large Metallic Shard
+    [134380] = getCrownPrice(110),                  -- Rocks, Sintered Arch
+    [134381] = getCrownPrice(110),                  -- Rocks, Sintered Outcropping
+    [130316] = getCrownPrice(25),                   -- Pumpkin, Frail
+    [130317] = getCrownPrice(25),                   -- Pumpkin, Sickly
+    [130318] = getCrownPrice(10),                   -- Crop, Wheat Pile
+    [130319] = getCrownPrice(10),                   -- Crop, Wheat Stack
+    [130322] = getCrownPrice(90),                   -- Tool, Harvest Scythe
+    [130329] = getCrownPrice(240),                  -- Primal Brazier, Rock Slab
+    [131425] = getCrownPrice(360),                  -- Orcish Tent, Soldier's
+    [131426] = getCrownPrice(680),                  -- Orcish Tent, Officer's
+    [131427] = getCrownPrice(1700),                 -- Orcish Tent, General's
+    [134565] = getCrownPrice(130),                  -- Fabrication Tank, Reinforced
+    [134566] = getCrownPrice(30),                   -- Shrub Cluster, Snowswept
+    [134567] = getCrownPrice(10),                   -- Bush Cluster, Snowswept
+    [134568] = getCrownPrice(40),                   -- Tree, Snowswept Evergreen
+    [134569] = getCrownPrice(40),                   -- Trees, Snowswept Pair
+    [134570] = getCrownPrice(110),                  -- Snow Pile
+    [134571] = getCrownPrice(120),                  -- Snow Pile, Large
+    [134572] = getCrownPrice(5),                    -- Stones, Snowswept Cluster
+    [134573] = getCrownPrice(5),                    -- Stone, Snowswept Shard
+    [134574] = getCrownPrice(50),                   -- Boulder, Snowswept Peak
+    [134575] = getCrownPrice(50),                   -- Boulder, Snowswept Crag
+    [134576] = getCrownPrice(190),                  -- Orcish Brazier, Snowswept Column
+    [134577] = getCrownPrice(50),                   -- Ice Floe, Thin
+    [134578] = getCrownPrice(110),                  -- Ice Floe, Thick
+    [125482] = getCrownPrice(50),                   -- Boulder, Volcanic Crag
+    [125484] = getCrownPrice(30),                   -- Bush, Lush Laurel
+    [121399] = getCrownPrice(2000),                 -- Target Skeleton, Robust Khajiit
+    [121400] = getCrownPrice(2000),                 -- Target Skeleton, Robust Argonian
+    [120408] = getCrownPrice(25),                   -- Argonian Fish in a Basket
+    [120409] = getCrownPrice(100),                  -- Argonian Rack, Woven
+    [120412] = getCrownPrice(50),                   -- Noble's Chalice
+    [120413] = getCrownPrice(30),                   -- Breton Pitcher, Clay
+    [120414] = getCrownPrice(30),                   -- Breton Tankard, Empty
+    [120415] = getCrownPrice(30),                   -- Breton Tankard, Full
+    [120416] = getCrownPrice(40),                   -- Common Cloak on a Hook
+    [120420] = getCrownPrice(140),                  -- Plaque, Bolted Deer Antlers
+    [125545] = getCrownPrice(30),                   -- Fern, Young Dusky
+    [120426] = getCrownPrice(1500),                 -- Target Skeleton, Khajiit
+    [120427] = getCrownPrice(1500),                 -- Target Skeleton, Argonian
+    [125548] = getCrownPrice(85),                   -- Flower, Towering Purple Bat Bloom
+    [125549] = getCrownPrice(85),                   -- Flowers, Double Purple Bat Blooms
+    [125554] = getCrownPrice(85),                   -- Flowers, Opposing Purple Bat Blooms
+    [125555] = getCrownPrice(85),                   -- Flowers, Sullen Purple Bat Blooms
+    [120464] = getCrownPrice(20),                   -- Rocks, Stacked Cracked
+    [120465] = getCrownPrice(5),                    -- Stone, Tapered Rough
+    [120466] = getCrownPrice(5),                    -- Pebble, Stacked Desert
+    [120470] = getCrownPrice(25),                   -- Tree, Leaning Palm
+    [120472] = getCrownPrice(25),                   -- Tree, Young Palm
+    [120473] = getCrownPrice(60),                   -- Sapling, Thin Palm
+    [120475] = getCrownPrice(70),                   -- Trees, Paired Wax Palms4
+    [120482] = getCrownPrice(30),                   -- Cactus, Golden Bulbs
+    [125603] = getCrownPrice(40),                   -- Mushroom, Stinkhorn Spore
+    [120484] = getCrownPrice(30),                   -- Cactus, Golden Barrel
+    [125605] = getCrownPrice(10),                   -- Mushroom, Young Erupted Stinkcap
+    [120486] = getCrownPrice(30),                   -- Cactus, Stocky Columnar
+    [125607] = getCrownPrice(10),                   -- Mushroom, Young Netch Shield
+    [125610] = getCrownPrice(25),                   -- Mushrooms, Cave Bracket Cluster
+    [120491] = getCrownPrice(30),                   -- Fern, Hearty Autumn
+    [125616] = getCrownPrice(5),                    -- Pebble, Volcanic Chunk
+    [125628] = getCrownPrice(70),                   -- Plant, Rosetted Sundew
+    [126686] = getCrownPrice(400),                  -- Dwarven Chest, Relic
+    [120481] = getCrownPrice(150),                  -- Tree, Ancient Juniper
+  },
+  [FURC_JUSTICE]   = {
+    [126481] = stealable_priests .. " on Vvardenfell", -- Indoril Incense, Burning
+    [126772] = stealable_thief             -- Khajiiti Ponder sphere
+  },
+  [FURC_RUMOUR] = {
+    [132531] = dataminedUnclear,                    -- Hlaalu Planter, Tall
+    [120411] = dataminedUnclear,                    -- Noble's Chalice of Wine
+    [120417] = dataminedUnclear,                    -- Redguard Barrel, Corded
+    [126568] = dataminedUnclear,                    -- Daedric Urn, Ritual
+    [125550] = dataminedUnclear,                    -- Flowers, Lava Blooms
+    [126588] = dataminedUnclear,                    -- Vvardenfell Pitcher Plants, Hanging Bunch
+    [126589] = dataminedUnclear,                    -- Vvardenfell Mushrooms, Bloodtooth
+    [126590] = dataminedUnclear,                    -- Vvardenfell Mushrooms, Lavaburst
+    [125569] = dataminedUnclear,                    -- Hlaalu Sidewalk, Sillar Stone Corner
+    [125570] = dataminedUnclear,                    -- Hlaalu Stairs, Sillar Stone
+    [125576] = dataminedUnclear,                    -- Hlaalu Wall Pillar, Sillar Stone
+    [125581] = dataminedUnclear,                    -- Mushroom, Buttercake
+    [125583] = dataminedUnclear,                    -- Mushroom, Cave Bracket
+    [125589] = dataminedUnclear,                    -- Mushroom, Lavaburst Bud
+    [125591] = dataminedUnclear,                    -- Mushroom, Lavaburst Patch
+    [125597] = dataminedUnclear,                    -- Mushroom, Polyp Stinkhorn
+    [125598] = dataminedUnclear,                    -- Mushroom, Emerging Stinkhorn
+    [127149] = dataminedUnclear,                    -- Morrowind Banner of the 6th House
+  }
 }
-FurC.MiscItemSources[FURC_HOMESTEAD]	= {
-    [FURC_JUSTICE] 	= {
-            -- stealing
-        [118489] = FURC_CANBESTOLEN_SCHOLARS, 	        -- Papers, Stack
-        [118528] = GetString(SI_FURC_CANBESTOLEN), 		-- Signed Contract
-        [118890] = GetString(SI_FURC_CANBESTOLEN), 		-- Skull, Human
-        [118487] = FURC_CANBESTOLEN_SCHOLARS, 	        -- Letter, Personal
-        [120008] = FURC_CANBESTOLEN_NERDS, 		        -- Lesser Soul Gem, Empty
-        [120005] = FURC_CANBESTOLEN_NERDS, 		        -- Medium Soul Gem, Empty
-
-        -- Bounty Sheets
-        [118711] = FURC_CANBEPICKED_GUARD, 				-- Argonian Male
-        [118709] = FURC_CANBEPICKED_GUARD, 				-- Breton Male
-        [118712] = FURC_CANBEPICKED_GUARD, 				-- Breton Woman
-        [118715] = FURC_CANBEPICKED_GUARD, 				-- Colovian Man
-        [118710] = FURC_CANBEPICKED_GUARD, 				-- High Elf Male
-        [118714] = FURC_CANBEPICKED_GUARD, 				-- Imperial Man
-        [118713] = FURC_CANBEPICKED_GUARD, 				-- Khajiiti Male
-        [118716] = FURC_CANBEPICKED_GUARD, 				-- Orc Female
-        [118717] = FURC_CANBEPICKED_GUARD, 				-- Orc Male
-
-        [121055] = FURC_CANBESTOLEN_DRUNK, 			    -- Breton Mug, Full
-
-        [116512] = FURC_CANBESTOLEN_WROTHGAR,		    -- Orcish Carpet Blood
-
-    },
-    [FURC_FISHING] 	= {
-        -- fishing
-        [118902] = GetString(SI_FURC_CANBEFISHED), 		-- Coral, Sun
-        [118903] = GetString(SI_FURC_CANBEFISHED), 		-- Coral, Crown
-        [118896] = GetString(SI_FURC_CANBEFISHED), 		-- Seashell, Sandcake
-        [118901] = GetString(SI_FURC_CANBEFISHED), 		-- Sea sponge
-        [118338] = GetString(SI_FURC_CANBEFISHED), 		-- Fish, Bass
-        [118339] = GetString(SI_FURC_CANBEFISHED), 		-- Fish, Salmon
-        [118337] = GetString(SI_FURC_CANBEFISHED), 		-- Fish, Trout
-        [120753] = GetString(SI_FURC_CANBEFISHED), 		-- Kelp, Green Pile
-        [120755] = GetString(SI_FURC_CANBEFISHED), 		-- Kelp, Lush Pile
-        [120754] = GetString(SI_FURC_CANBEFISHED), 		-- Kelp, Small Pile
-        [118897] = GetString(SI_FURC_CANBEFISHED), 		-- Seashell, Pink Scallop
-        [118898] = GetString(SI_FURC_CANBEFISHED), 		-- Seashell, White Scallop
-        [118899] = GetString(SI_FURC_CANBEFISHED), 		-- Seashell, Starfish
-        [118900] = GetString(SI_FURC_CANBEFISHED), 		-- Seashell, Noble Starfish
-
-    },
-    [FURC_DROP]		= {
-        [121058] = FURC_DB_SNEAKY, 						-- Candles of Silence
-
-        [119936] = FURC_DB_POISON, 						-- Poisoned Blood
-        [119938] = FURC_DB_POISON, 						-- Light and Shadow
-        [119952] = FURC_DB_POISON, 						-- Sacrificial Heart
-
-        -- Paintings
-        [118216] = GetString(SI_FURC_CHESTS), 		    -- Painting of Spring, Sturdy
-        [118217] = GetString(SI_FURC_CHESTS), 		    -- Painting of Pasture, Sturdy
-        [118218] = GetString(SI_FURC_CHESTS), 		    -- Painting of Creek, Sturdy
-        [118219] = GetString(SI_FURC_CHESTS), 		    -- Painting of Lakes, Sturdy
-        [118220] = GetString(SI_FURC_CHESTS), 		    -- Painting of Crags, Sturdy
-        [118221] = GetString(SI_FURC_CHESTS), 		    -- Painting of Summer, Sturdy
-        [118222] = GetString(SI_FURC_CHESTS), 		    -- Painting of Jungle, Sturdy
-        [118223] = GetString(SI_FURC_CHESTS), 		    -- Painting of Palms, Sturdy
-        [118265] = GetString(SI_FURC_CHESTS), 		    -- Painting of Winter, Bolted
-        [118266] = GetString(SI_FURC_CHESTS), 		    -- Painting of Bridge, Bolted
-        [118267] = GetString(SI_FURC_CHESTS), 		    -- Painting of Autumn, Bolted
-        [118268] = GetString(SI_FURC_CHESTS), 		    -- Painting of Great Ruins, Bolted
-
-    },
-    [FURC_CROWN]	= {
-        [118096] = getCrownPrice(10), 			        -- Bread, Plain
-        [118098] = getCrownPrice(10), 			        -- Common Bowl, Serving
-        [118061] = getCrownPrice(15), 			        -- Chicken Dinner, Display
-        [118062] = getCrownPrice(15), 			        -- Chicken Meal, Display
-        [118056] = getCrownPrice(15), 			        -- Common Stewpot, Hanging
-        [118121] = getCrownPrice(15), 			        -- Knife, Carving
-        [118066] = getCrownPrice(15), 			        -- Steak Dinner
-
-        [118057] = getCrownPrice(20), 				    -- Sack of Beans
-        [118060] = getCrownPrice(20), 				    -- Sack of Grain
-        [118059] = getCrownPrice(20), 				    -- Sack of Millet,
-        [118058] = getCrownPrice(20), 				    -- Sack of Rice
-        [118351] = getCrownPrice(25),                   -- Box of Peaches
-
-
-        [134473] = FURC_SCAMBOX_F_ATRO,    		-- Malacath Banner
-
-        [118064] = getCrownPrice(45), 			-- Common Barrel, Dry
-        [118065] = getCrownPrice(45), 			-- Common Cargo Crate, Dry
-        [118064] = getCrownPrice(45), 			-- Common Barrel, Dry
-
-        [118054] = getCrownPrice(80),           -- Common Firepit, Outdoor
-        [118055] = getCrownPrice(80), 			-- Common Firepit, Piled
-        [118126] = getCrownPrice(95), 			-- Plaque, Standard
-
-        [118068] = getCrownPrice(120), 			-- Simple Brown Banner
-        [118069] = getCrownPrice(120), 			-- Simple Gray Banner
-        [118071] = getCrownPrice(120), 			-- Simple Red Banner
-        [118070] = getCrownPrice(120), 			-- Simple Purple Banner
-
-
-        [94098] = getCrownPrice(95),            -- Imperial Bed, Single
-
-        [120607] = getCrownPrice(50), 			-- Sapling, Lanky Ash
-
-
-        [115698] = getCrownPrice(1100), 		-- Khajiit Statue, Guardian
-    },
-    [FURC_RUMOUR]   = {
-
-        [118290] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Antlers, Wall Mount
-        [118299] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Bottle, Beaker
-        [118300] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Bottle, Poison
-        [118291] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Durzog Head, Wall Mount
-        [118294] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Echatere Horns, Wall Mount
-        [118293] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Echatere, Wall Mount
-        [118295] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Haj Mota Head, Wall Mount
-        [118289] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Haj Mota Shell, Wall Mount
-        [118284] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Horn, Display, Cracked
-        [118283] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Horn, Display, Huge
-        [118296] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Mantikora Head, Wall Mount
-        [118297] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Mantikora Horns, Wall Mount
-        [118242] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Rug, Bearskin
-        [116473] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Orcish Effigy, Mammoth
-        [116474] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Orcish Effigy, Bear
-        [116433] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Orcish Desk with Furs
-        [118065] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Common Cargo Crate, Dry
-        [118054] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Common Firepit, Outdoor
-        [118055] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Common Firepit, Piled
-        [118000] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Garlic String, Display
-        [118119] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Minecart, Empty
-        [118120] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Minecart, Push
-        [117991] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Stool, Carved
-        [118278] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Plaque, Bordered Deer Antlers
-        [118304] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Shelf, Poison
-        [118118] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Candles, Lasting
-        [115395] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Nord Drinking Horn, Display
-        [118127] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Plaque, Small
-        [118288] = GetString(SI_FURC_RUMOUR_SOURCE_ITEM),           -- Deer Carcass, Hanging
-    }
+FurC.MiscItemSources[FURC_HOMESTEAD]  = {
+  [FURC_JUSTICE]   = {
+    -- stealing
+    [118489] = stealable_scholars,          -- Papers, Stack
+    [118528] = stealable,     -- Signed Contract
+    [118890] = stealable,     -- Skull, Human
+    [118487] = stealable_scholars,          -- Letter, Personal
+    [120008] = stealable_nerds,             -- Lesser Soul Gem, Empty
+    [120005] = stealable_nerds,             -- Papers, Stack
+
+    -- Bounty Sheets
+    [118711] = pickpocket_guard,         -- Argonian Male
+    [118709] = pickpocket_guard,         -- Breton Male
+    [118712] = pickpocket_guard,         -- Breton Woman
+    [118715] = pickpocket_guard,         -- Colovian Man
+    [118710] = pickpocket_guard,         -- High Elf Male
+    [118714] = pickpocket_guard,         -- Imperial Man
+    [118713] = pickpocket_guard,         -- Khajiiti Male
+    [118716] = pickpocket_guard,         -- Orc Female
+    [118717] = pickpocket_guard,         -- Orc Male
+
+    [121055] = stealable_drunkards,           -- Breton Mug, Full
+
+    [116512] = stealable_wrothgar,        -- Orcish Carpet Blood
+
+  },
+  [FURC_FISHING]   = {
+    -- fishing
+    [118902] = GetString(SI_FURC_CANBEFISHED),     -- Coral, Sun
+    [118903] = GetString(SI_FURC_CANBEFISHED),     -- Coral, Crown
+    [118896] = GetString(SI_FURC_CANBEFISHED),     -- Seashell, Sandcake
+    [118901] = GetString(SI_FURC_CANBEFISHED),     -- Sea sponge
+    [118338] = GetString(SI_FURC_CANBEFISHED),     -- Fish, Bass
+    [118339] = GetString(SI_FURC_CANBEFISHED),     -- Fish, Salmon
+    [118337] = GetString(SI_FURC_CANBEFISHED),     -- Fish, Trout
+    [120753] = GetString(SI_FURC_CANBEFISHED),     -- Kelp, Green Pile
+    [120755] = GetString(SI_FURC_CANBEFISHED),     -- Kelp, Lush Pile
+    [120754] = GetString(SI_FURC_CANBEFISHED),     -- Kelp, Small Pile
+    [118897] = GetString(SI_FURC_CANBEFISHED),     -- Seashell, Pink Scallop
+    [118898] = GetString(SI_FURC_CANBEFISHED),     -- Seashell, White Scallop
+    [118899] = GetString(SI_FURC_CANBEFISHED),     -- Seashell, Starfish
+    [118900] = GetString(SI_FURC_CANBEFISHED),     -- Seashell, Noble Starfish
+
+  },
+  [FURC_DROP]    = {
+    [121058] = db_sneaky,             -- Candles of Silence
+
+    [119936] = db_poison,             -- Poisoned Blood
+    [119938] = db_poison,             -- Light and Shadow
+    [119952] = db_poison,             -- Sacrificial Heart
+
+    -- Paintings
+    [118216] = GetString(SI_FURC_CHESTS),         -- Painting of Spring, Sturdy
+    [118217] = GetString(SI_FURC_CHESTS),         -- Painting of Pasture, Sturdy
+    [118218] = GetString(SI_FURC_CHESTS),         -- Painting of Creek, Sturdy
+    [118219] = GetString(SI_FURC_CHESTS),         -- Painting of Lakes, Sturdy
+    [118220] = GetString(SI_FURC_CHESTS),         -- Painting of Crags, Sturdy
+    [118221] = GetString(SI_FURC_CHESTS),         -- Painting of Summer, Sturdy
+    [118222] = GetString(SI_FURC_CHESTS),         -- Painting of Jungle, Sturdy
+    [118223] = GetString(SI_FURC_CHESTS),         -- Painting of Palms, Sturdy
+    [118265] = GetString(SI_FURC_CHESTS),         -- Painting of Winter, Bolted
+    [118266] = GetString(SI_FURC_CHESTS),         -- Painting of Bridge, Bolted
+    [118267] = GetString(SI_FURC_CHESTS),         -- Painting of Autumn, Bolted
+    [118268] = GetString(SI_FURC_CHESTS),         -- Painting of Great Ruins, Bolted
+
+  },
+  [FURC_CROWN]  = {
+    [118096] = getCrownPrice(10),                 -- Bread, Plain
+    [118098] = getCrownPrice(10),                 -- Common Bowl, Serving
+    [118061] = getCrownPrice(15),                 -- Chicken Dinner, Display
+    [118062] = getCrownPrice(15),                 -- Chicken Meal, Display
+    [118056] = getCrownPrice(15),                 -- Common Stewpot, Hanging
+    [118121] = getCrownPrice(15),                 -- Knife, Carving
+    [118066] = getCrownPrice(15),                 -- Steak Dinner
+
+    [118057] = getCrownPrice(20),                 -- Sack of Beans
+    [118060] = getCrownPrice(20),                 -- Sack of Grain
+    [118059] = getCrownPrice(20),                 -- Sack of Millet,
+    [118058] = getCrownPrice(20),                 -- Sack of Rice
+    [118351] = getCrownPrice(25),                 -- Box of Peaches
+
+
+    [134473] = scambox_fireatro,               -- Tapestry,  Malacath
+
+    [118064] = getCrownPrice(45),                 -- Common Barrel, Dry
+    [118065] = getCrownPrice(45),                 -- Common Cargo Crate, Dry
+    [118064] = getCrownPrice(45),                 -- Common Barrel, Dry
+
+    [118054] = getCrownPrice(80),                 -- Common Firepit, Outdoor
+    [118055] = getCrownPrice(80),                 -- Common Firepit, Piled
+    [118126] = getCrownPrice(95),                 -- Plaque, Standard
+
+    [118068] = getCrownPrice(120),                -- Simple Brown Banner
+    [118069] = getCrownPrice(120),                -- Simple Gray Banner
+    [118071] = getCrownPrice(120),                -- Simple Red Banner
+    [118070] = getCrownPrice(120),                -- Simple Purple Banner
+
+    [117952] = getCrownPrice(35),                 -- Rough Torch, Wall
+
+
+
+    [94098] = getCrownPrice(95),                  -- Imperial Bed, Single
+
+    [120607] = getCrownPrice(50),                 -- Sapling, Lanky Ash
+
+
+    [115698] = getCrownPrice(1100),               -- Khajiit Statue, Guardian
+
+    [120413] = getCrownPrice(30),                 -- Breton Pitcher, Clay
+  },
+  [FURC_RUMOUR]   = {
+
+    [118290] = rumourSource,           -- Antlers, Wall Mount
+    [118299] = rumourSource,           -- Bottle, Beaker
+    [118300] = rumourSource,           -- Bottle, Poison
+    [118291] = rumourSource,           -- Durzog Head, Wall Mount
+    [118293] = rumourSource,           -- Echatere, Wall Mount
+    [118295] = rumourSource,           -- Haj Mota Head, Wall Mount
+    [118289] = rumourSource,           -- Haj Mota Shell, Wall Mount
+    [118284] = rumourSource,           -- Horn, Display, Cracked
+    [118283] = rumourSource,           -- Horn, Display, Huge
+    [118296] = rumourSource,           -- Mantikora Head, Wall Mount
+    [118297] = rumourSource,           -- Mantikora Horns, Wall Mount
+    [118242] = rumourSource,           -- Rug, Bearskin
+    [116473] = rumourSource,           -- Orcish Effigy, Mammoth
+    [116474] = rumourSource,           -- Orcish Effigy, Bear
+    [116433] = rumourSource,           -- Orcish Desk with Furs
+    [118065] = rumourSource,           -- Common Cargo Crate, Dry
+    [118054] = rumourSource,           -- Common Firepit, Outdoor
+    [118055] = rumourSource,           -- Common Firepit, Piled
+    [118000] = rumourSource,           -- Garlic String, Display
+    [118119] = rumourSource,           -- Minecart, Empty
+    [118120] = rumourSource,           -- Minecart, Push
+    [117991] = rumourSource,           -- Stool, Carved
+    [118278] = rumourSource,           -- Plaque, Bordered Deer Antlers
+    [118304] = rumourSource,           -- Shelf, Poison
+    [118118] = rumourSource,           -- Candles, Lasting
+    [115395] = rumourSource,           -- Nord Drinking Horn, Display
+    [118127] = rumourSource,           -- Plaque, Small
+    [118288] = rumourSource,           -- Deer Carcass, Hanging
+  }
 }
diff --git a/data/RecipeSources.lua b/data/RecipeSources.lua
index 9c76f89..e61eb63 100644
--- a/data/RecipeSources.lua
+++ b/data/RecipeSources.lua
@@ -1,12 +1,12 @@
-local vendorColor 	= FurC.Const.vendorColor
-local goldColor 	= FurC.Const.goldColor
-local voucherColor	= FurC.Const.voucherColor
+local vendorColor   = FurC.Const.vendorColor
+local goldColor   = FurC.Const.goldColor
+local voucherColor  = FurC.Const.voucherColor

 local function colorise(str, col, ret)
-	str = tostring(str)
-	if str:find("%d000$") then str = str:gsub("000$", "k") end
-	if ret then return str end
-	return string.format("|c%s%s|r", col, str)
+  str = tostring(str)
+  if str:find("%d000$") then str = str:gsub("000$", "k") end
+  if ret then return str end
+  return string.format("|c%s%s|r", col, str)
 end

 local requires = GetString(SI_FURC_REQUIRES_ACHIEVEMENT)
@@ -17,9 +17,9 @@ local function rank(aNumber) return requires .. psijicRank .. aNumber end
 local function soldBy(vendorName, locationName, price, requirement)
     return zo_strformat(
         GetString(SI_FURC_STRING_VENDOR),
-        colorise(vendorName, 	vendorColor, stripColor),
-        colorise(locationName, 	vendorColor, stripColor),
-        colorise(price, 	    goldColor, stripColor),
+        colorise(vendorName,   vendorColor, stripColor),
+        colorise(locationName,   vendorColor, stripColor),
+        colorise(price,       goldColor, stripColor),
         requirement
     )
 end
@@ -33,6 +33,7 @@ FurC.RecipeSources = {
     [139490] = soldBy(nalirsewen, artaeum, 10000,   rank(3)),  -- Blueprint: Psijic Table, Small
     [139493] = soldBy(nalirsewen, artaeum, 10000,   rank(6)),  -- Blueprint: Psijic Banner
     [139496] = soldBy(nalirsewen, artaeum, 20000,   rank(9)),  -- Blueprint: Psijic Banner, Large
+    [141822] = soldBy(nalirsewen, artaeum, 25000,   rank(9)),  -- Blueprint: Psijic Banner, Long
     [139487] = soldBy(nalirsewen, artaeum, 5000,    rank(1)),  -- Praxis: Book Row, Levitating
     [139488] = soldBy(nalirsewen, artaeum, 5000,    rank(1)),  -- Praxis: Book Stack, Levitating
     [139495] = soldBy(nalirsewen, artaeum, 20000,   rank(8)),  -- Praxis: Psijic Lighting Globe, Large
@@ -44,29 +45,29 @@ FurC.RecipeSources = {


 local function getItemLink(itemId)
-	return zo_strformat("|H1:item:<<1>>:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0|h|h", itemId)
+  return zo_strformat("|H1:item:<<1>>:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0|h|h", itemId)
 end

 local function getRecipeResultItemId(recipeId)
-	local recipeLink = getItemLink(recipeId)
-	local resultLink = GetItemLinkRecipeResultItemLink(recipeLink)
-	return GetItemLinkItemId(resultLink)
+  local recipeLink = getItemLink(recipeId)
+  local resultLink = GetItemLinkRecipeResultItemLink(recipeLink)
+  return GetItemLinkItemId(resultLink)
 end

 for versionNo, rolisRecipes in pairs(FurC.RolisRecipes) do
 for recipeId, itemPrice in pairs(rolisRecipes) do
-		local priceString = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), itemPrice, voucherColor)
-		FurC.RecipeSources[recipeId] = zo_strformat(GetString(SI_FURC_STRING_Rolis), priceString)
-	end
+    local priceString = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), itemPrice, voucherColor)
+    FurC.RecipeSources[recipeId] = zo_strformat(GetString(SI_FURC_STRING_Rolis), priceString)
+  end
 end


 for versionNo, faustinaRecipes in pairs(FurC.FaustinaRecipes) do
-	for recipeId, itemPrice in pairs(faustinaRecipes) do
-		local unsurpassedCrafter = GetAchievementLink(1801)
-		local priceString = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), itemPrice, voucherColor)
-		local soldByFaustinaFor = zo_strformat(GetString(SI_FURC_STRING_FAUSTINA), priceString)
-		FurC.RecipeSources[recipeId] = soldByFaustinaFor .. requires .. unsurpassedCrafter
-	end
+  for recipeId, itemPrice in pairs(faustinaRecipes) do
+    local unsurpassedCrafter = GetAchievementLink(1801)
+    local priceString = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), itemPrice, voucherColor)
+    local soldByFaustinaFor = zo_strformat(GetString(SI_FURC_STRING_FAUSTINA), priceString)
+    FurC.RecipeSources[recipeId] = soldByFaustinaFor .. requires .. unsurpassedCrafter
+  end
 end

diff --git a/data/Recipes.lua b/data/Recipes.lua
index e19065c..129ca39 100644
--- a/data/Recipes.lua
+++ b/data/Recipes.lua
@@ -1,189 +1 @@
 FurC.Recipes = FurC.Recipes or {}
-
-FurC.Recipes[FURC_WEREWOLF] = {
-	141896, -- Sketch: Figurine, The Dragon's Glare
-	141897, -- Praxis: Obelisk, Lord Hircine Ritual
-	141898, -- Praxis: Ritual Stone, Hircine
-	141899, -- Praxis: Sacrificial Altar, Hircine
-	141900, -- Blueprint: Ritual Fetish, Hircine
-}
-
-FurC.Recipes[FURC_ALTMER] = {
-
-	139573, -- Sketch: Figurine, The Fish and the Unicorn
-	139571, -- Sketch: Figurine, The Sea-Monster's Surprise
-	139572, -- Sketch: Figurine, The Taming of the Gryphon
-	139613, -- Sketch: Alinor Chalice, Delicate
-	139615, -- Sketch: Alinor Chalice, Ornate
-	139616, -- Sketch: Alinor Goblet, Silver Ornate
-	139612, -- Sketch: Alinor Goblet, Silver Plain
-	139614, -- Sketch: Alinor Goblet, Silver Stamped
-	139611, -- Sketch: Alinor Goblet, Simple
-	139575, -- Sketch: Scrimshaw Jewelry Box, Verdant Oval
-	139574, -- Sketch: Scrimshaw Jewelry Box, Vineyard
-	139579, -- Sketch: Scrimshaw, Ancient Vessel
-	139578, -- Sketch: Scrimshaw, Octopus
-	139576, -- Sketch: Scrimshaw, Sea Monster
-	139577, -- Sketch: Scrimshaw, Ship
-	139514, -- Praxis: Alinor Wall, Stone Long
-	139546, -- Praxis: Alinor Bench, Marble
-	139556, -- Blueprint: Alinor Nightstand, Noble
-	139538, -- Blueprint: Alinor Bed, Overhang Full
-	139640, -- Pattern: Alinor Rug, Alinor Seal
-	139524, -- Diagram: Alinor Sconce, Arched Glass
-	139565, -- Blueprint: Alinor Trunk, Noble
-	139540, -- Blueprint: Alinor Bed, Polished Full
-	139550, -- Blueprint: Alinor Armchair, Polished
-	139631, -- Praxis: Alinor Potted Plant, Twin Saplings
-	139512, -- Praxis: Alinor Post, Stone Wall
-	139511, -- Praxis: Alinor Wall, Stone Corner
-	139609, -- Diagram: Alinor Table Setting, Complete
-	139536, -- Blueprint: Alinor Bed, Noble Full
-	139585, -- Diagram: Fireplace Grate, Wrought Iron
-	139604, -- Praxis: Alinor Shrine, Limestone Raised
-	139575, -- Sketch: Scrimshaw Jewelry Box, Verdant Oval
-	139588, -- Praxis: Alinor Fountain, Four-Way Timeworn
-	139608, -- Praxis: Alinor Wall Shrine, Marble
-	139569, -- Blueprint: Alinor Jewelry Box, Peaked
-	139541, -- Blueprint: Alinor Bed, Noble Single
-	139601, -- Praxis: Alinor Bowl, Stemmed Limestone
-	139574, -- Sketch: Scrimshaw Jewelry Box, Vineyard
-	139579, -- Sketch: Scrimshaw, Ancient Vessel
-	139548, -- Blueprint: Alinor Armchair, Overhang
-	139632, -- Praxis: Alinor Windowbox, Purple Wisteria
-	139587, -- Praxis: Alinor Fireplace, Ornate
-	139577, -- Sketch: Scrimshaw, Ship
-	139582, -- Diagram: Alinor Pot, Patterned
-	139581, -- Diagram: Alinor Pot, Hanging Stamped
-	139558, -- Blueprint: Alinor Counter, Polished Drawers
-	139622, -- Blueprint: Alinor Bowl, Carved Wood
-	139498, -- Praxis: Alinor Archway, Timeworn
-	139593, -- Blueprint: Alinor Table, Noble Intimate
-	139637, -- Pattern: Alinor Carpet, Alinor Crescent
-	139634, -- Pattern: Alinor Curtains, Tall Drawn
-	139534, -- Diagram: Alinor Streetlight, Paired Wrought Iron
-	139503, -- Praxis: Alinor Floor, Ballroom Timeworn
-	139544, -- Blueprint: Alinor Bench, Verdant
-	139649, -- Blueprint: Alinor Cabinet, Noble
-	139559, -- Blueprint: Alinor Counter, Polished Corner
-	139490, -- Blueprint: Psijic Table, Small
-	139520, -- Diagram: Alinor Sconce, Crenellated
-	139487, -- Praxis: Book Row, Levitating
-	139485, -- Blueprint: Alinor Pew, Polished
-	139647, -- Praxis: Alinor Statue, Orator
-	139603, -- Praxis: Alinor Shrine, Limestone
-	139529, -- Diagram: Alinor Sconce, Candles
-	139532, -- Blueprint: Alinor Candles, Stand
-	139494, -- Praxis: Psijic Table, Six-fold Symmetry
-	139525, -- Diagram: Alinor Sconce, Lantern
-	139627, -- Blueprint: Display Case, Large
-	139516, -- Praxis: Alinor Fence, Tall
-	139572, -- Sketch: Figurine, The Taming of the Gryphon
-	139557, -- Blueprint: Alinor Winerack, Polished
-	139617, -- Diagram: Alinor Plate, Embossed
-	139518, -- Praxis: Alinor Archway, Tall
-	139630, -- Praxis: Alinor Potted Plant, Double Tiered
-	139620, -- Diagram: Alinor Bread Basket, Wrought Iron
-	139613, -- Sketch: Alinor Chalice, Delicate
-	139519, -- Diagram: Alinor Sconce, Arched
-	139505, -- Praxis: Alinor Sarcophagus, Wedge
-	139545, -- Blueprint: Alinor Armchair, Backless Verdant
-	139586, -- Diagram: Fireplace Tools, Wrought Iron
-	139506, -- Praxis: Alinor Sarcophagus, Peaked
-	139497, -- Praxis: Psijic Table, Grand
-	139642, -- Pattern: Alinor Carpet, Intricate
-	139625, -- Blueprint: Display Case, Standing Arched
-	139612, -- Sketch: Alinor Goblet, Silver Plain
-	139598, -- Design: Alinor Amphora, Embossed
-	139599, -- Diagram: Alinor Urn, Bronze
-	139638, -- Pattern: Alinor Carpet, Verdant
-	139583, -- Blueprint: Alinor Divider, Noble
-	139639, -- Pattern: Alinor Carpet, Vibrant
-	139619, -- Design: Alinor Meal, Individual
-	139614, -- Sketch: Alinor Goblet, Silver Stamped
-	139495, -- Praxis: Psijic Lighting Globe, Large
-	139646, -- Praxis: Alinor Statue, Kinlord
-	139645, -- Pattern: Alinor Tapestry, Royal Gryphons
-	139595, -- Design: Alinor Amphora, Delicate
-	139542, -- Blueprint: Alinor Bookshelf, Polished
-	139644, -- Pattern: Alinor Tapestry, Alinor Dusk
-	139643, -- Pattern: Alinor Tapestry, Alinor Dawn
-	139571, -- Sketch: Figurine, The Sea-Monster's Surprise
-	139530, -- Diagram: Alinor Sconce, Candles Tall
-	139605, -- Praxis: Alinor Pot, Limestone
-	139566, -- Blueprint: Alinor Trunk, Spired
-	139624, -- Blueprint: Display Case, Standing
-	139513, -- Praxis: Alinor Wall, Stone
-	139635, -- Pattern: Alinor Curtains, Drawn
-	139539, -- Blueprint: Alinor Bed, Polished Single
-	139567, -- Blueprint: Alinor Jewelry Box, Noble
-	139629, -- Praxis: Alinor Potted Plant, Triple Tiered
-	139628, -- Praxis: Alinor Potted Plant, Perpetual Bloom
-	139626, -- Blueprint: Display Case, Specimen
-	139636, -- Pattern: Alinor Drapes, Noble
-	139543, -- Blueprint: Alinor Wardrobe, Polished
-	139493, -- Pattern: Psijic Banner
-	139623, -- Design: Alinor Bowl, Millet
-	139584, -- Blueprint: Alinor Divider, Polished
-	139510, -- Praxis: Alinor Stairway, Timeworn Wide
-	139488, -- Praxis: Book Stack, Levitating
-	139621, -- Design: Alinor Pie Dish, Cherry Pie
-	139618, -- Diagram: Alinor Platter, Scalloped
-	139564, -- Blueprint: Alinor Trunk, Engraved
-	139501, -- Praxis: Alinor Bookshelf Wall, Timeworn
-	139535, -- Diagram: Alinor Streetlight, Wrought Iron
-	139615, -- Sketch: Alinor Chalice, Ornate
-	139537, -- Blueprint: Alinor Bed, Canopy Full
-	139533, -- Diagram: Alinor Brazier, Hanging Coals
-	139492, -- Praxis: Psijic Table, Scalloped
-	139594, -- Design: Alinor Urn, Gilded
-	139528, -- Diagram: Alinor Candelabra, Wrought Iron
-	139633, -- Praxis: Alinor Windowbox, Blue Wisteria
-	139531, -- Blueprint: Alinor Candles, Tall Stand
-	139504, -- Praxis: Alinor Column, Timeworn
-	139641, -- Pattern: Alinor Runner, Royal
-	139611, -- Sketch: Alinor Goblet, Simple
-	139610, -- Design: Alinor Meal, Complete Setting
-	139554, -- Blueprint: Alinor Nightstand, Scalloped
-	139551, -- Blueprint: Alinor Armchair, Backless Polished
-	139521, -- Diagram: Alinor Lantern, Hanging
-	139499, -- Praxis: Alinor Column, Heavy Timeworn
-	139607, -- Praxis: Alinor Display Stand, Marble
-	139500, -- Praxis: Alinor Pedestal, Timeworn
-	139606, -- Praxis: Alinor Display Stand, Marble Wide
-	139527, -- Diagram: Alinor Brazier, Noble
-	139602, -- Praxis: Alinor Urn, Limestone Large
-	139547, -- Blueprint: Alinor Armchair, Noble
-	139508, -- Praxis: Alinor Sarcophagus, Open
-	139573, -- Sketch: Figurine, The Fish and the Unicorn
-	139553, -- Blueprint: Alinor Desk, Mirrored
-	139597, -- Design: Alinor Urn, Stemmed
-	139517, -- Praxis: Alinor Fence, Tall Long
-	139491, -- Praxis: Psijic Lighting Globe, Small
-	139489, -- Blueprint: Psijic Chair, Arched
-	139596, -- Design: Alinor Amphora, Slender
-	139600, -- Praxis: Alinor Bowl, Shallow Limestone
-	139509, -- Praxis: Alinor Stairway, Timeworn
-	139515, -- Praxis: Alinor Post, Tall Fence
-	139591, -- Praxis: Alinor Table, Decorative Marble
-	139590, -- Praxis: Alinor Table, Round Marble
-	139589, -- Praxis: Alinor Fountain, Timeworn
-	139592, -- Blueprint: Alinor Table, Noble Grand
-	139552, -- Blueprint: Alinor Desk, Polished
-	139578, -- Sketch: Scrimshaw, Octopus
-	139580, -- Sketch: Scrimshaw Jewelry Box, Floral
-	139549, -- Blueprint: Alinor Chair, Polished
-	139496, -- Pattern: Psijic Banner, Large
-	139576, -- Sketch: Scrimshaw, Sea Monster
-	139502, -- Praxis: Alinor Column, Slender Timeworn
-	139568, -- Blueprint: Alinor Jewelry Box, Polished
-	139523, -- Diagram: Alinor Sconce, Wrought Glass
-	139616, -- Sketch: Alinor Goblet, Silver Ornate
-	139563, -- Blueprint: Alinor Trunk, Peaked
-	139522, -- Diagram: Alinor Lantern, Stationary
-	139555, -- Blueprint: Alinor Nightstand, Octagonal
-	139570, -- Blueprint: Alinor Jewelry Box, Octagonal
-	139648, -- Design: Alinor Amphora, Portrait
-	139484, -- Blueprint: Alinor Writing Desk, Noble
-}
-
diff --git a/data/Rolis.lua b/data/Rolis.lua
index 1ead059..2ebeab7 100644
--- a/data/Rolis.lua
+++ b/data/Rolis.lua
@@ -1,91 +1,92 @@
-FurC.RolisRecipes      = FurC.RolisRecipes 		or {}
-FurC.FaustinaRecipes	= FurC.FaustinaRecipes 	or {}
-FurC.Faustina			= FurC.Faustina 		or {}
+FurC.Rolis            = FurC.Rolis or {}
+FurC.RolisRecipes     = FurC.RolisRecipes or {}
+FurC.FaustinaRecipes  = FurC.FaustinaRecipes or {}
+FurC.Faustina         = FurC.Faustina or {}


 FurC.Faustina[FURC_ALTMER] = {
-    [139391] = 10, -- Master Craftsman's Banner, Hanging
-	[137870] = 125, -- Basic Jewelry Crafting Station
+  [139391] = 10, -- Master Craftsman's Banner, Hanging
+  [137870] = 125, -- Basic Jewelry Crafting Station
 }


 FurC.RolisRecipes[FURC_DRAGONS] = {
- 	[141904] = 125, -- Blueprint: Alinor Bookshelf, Grand Full,
-    [141905] = 125, -- Praxis: Alinor Gaming Table, Punctilious Conflict,
-    [141906] = 125, -- Formula: Artist's Palette, Pigment,
-    [141907] = 125, -- Design: Alinor Grape Stomping Tub,
-    [141901] = 125, -- Pattern: Psijic Banner, Long,
-    [141903] = 125, -- Pattern: Alinor Bed, Levitating,
-    [141902] = 125, -- Schematic: Relic Vault, Impenetrable,
+  [141904] = 125, -- Blueprint: Alinor Bookshelf, Grand Full,
+  [141905] = 125, -- Praxis: Alinor Gaming Table, Punctilious Conflict,
+  [141906] = 125, -- Formula: Artist's Palette, Pigment,
+  [141907] = 125, -- Design: Alinor Grape Stomping Tub,
+  [141901] = 125, -- Pattern: Psijic Banner, Long,
+  [141903] = 125, -- Pattern: Alinor Bed, Levitating,
+  [141902] = 125, -- Schematic: Relic Vault, Impenetrable,
 }
 FurC.FaustinaRecipes[FURC_DRAGONS] = {
-
-	[121200] = 100, -- Blueprint: Cabinet, Poisonmaker's
-    [121166] = 100, -- Blueprint: Podium, Skinning
-    [132195] = 100, -- Blueprint: Telvanni Candelabra, Masterwork
-    [121168] = 100, -- Blueprint: Tools, Case
-    [132194] = 100, -- Design: Mammoth Cheese, Mastercrafted
-    [121199] = 100, -- Design: Mortar and Pestle
-    [121214] = 100, -- Design: Orcish Skull Goblet, Full
-    [121163] = 100, -- Diagram: Apparatus, Boiler
-    [121165] = 100, -- Diagram: Apparatus, Gem Calipers
-    [132191] = 100, -- Diagram: Dwarven Gyroscope, Masterwork
-    [121197] = 100, -- Formula: Bottle, Poison Elixir
-    [121164] = 100, -- Formula: Case of Vials
-    [132190] = 100, -- Formula: Mages Apparatus, Master
-    [132192] = 100, -- Pattern: Dres Sewing Kit, Master's
-    [121209] = 100, -- Pattern: Orcish Tapestry, Spear
-    [132193] = 100, -- Praxis: Hlaalu Bath Tub, Masterwork
-    [121207] = 100, -- Praxis: Orcish Table with Fur
-    [134986] = 100, -- Design: Miniature Garden, Bottled
-    [134982] = 100, -- Formula: Alchemical Apparatus, Master
-    [134984] = 100, -- Pattern: Clothier's Form, Brass
-    [134985] = 100, -- Praxis: Hlaalu Trinket Box, Curious Turtle
-	[134987] = 100, -- Blueprint: Hlaalu Gaming Table, "Foxes & Felines"
-    [134986] = 100, -- Design: Miniature Garden, Bottled
-    [134983] = 100, -- Diagram: Hlaalu Gong
-    [134984] = 100, -- Pattern: Clothier's Form, Brass
-    [139486] = 100, -- Sketch: High Elf Ancestor Clock, Celestial
-
+
+  [121200] = 100, -- Blueprint: Cabinet, Poisonmaker's
+  [121166] = 100, -- Blueprint: Podium, Skinning
+  [132195] = 100, -- Blueprint: Telvanni Candelabra, Masterwork
+  [121168] = 100, -- Blueprint: Tools, Case
+  [132194] = 100, -- Design: Mammoth Cheese, Mastercrafted
+  [121199] = 100, -- Design: Mortar and Pestle
+  [121214] = 100, -- Design: Orcish Skull Goblet, Full
+  [121163] = 100, -- Diagram: Apparatus, Boiler
+  [121165] = 100, -- Diagram: Apparatus, Gem Calipers
+  [132191] = 100, -- Diagram: Dwarven Gyroscope, Masterwork
+  [121197] = 100, -- Formula: Bottle, Poison Elixir
+  [121164] = 100, -- Formula: Case of Vials
+  [132190] = 100, -- Formula: Mages Apparatus, Master
+  [132192] = 100, -- Pattern: Dres Sewing Kit, Master's
+  [121209] = 100, -- Pattern: Orcish Tapestry, Spear
+  [132193] = 100, -- Praxis: Hlaalu Bath Tub, Masterwork
+  [121207] = 100, -- Praxis: Orcish Table with Fur
+  [134986] = 100, -- Design: Miniature Garden, Bottled
+  [134982] = 100, -- Formula: Alchemical Apparatus, Master
+  [134984] = 100, -- Pattern: Clothier's Form, Brass
+  [134985] = 100, -- Praxis: Hlaalu Trinket Box, Curious Turtle
+  [134987] = 100, -- Blueprint: Hlaalu Gaming Table, "Foxes & Felines"
+  [134986] = 100, -- Design: Miniature Garden, Bottled
+  [134983] = 100, -- Diagram: Hlaalu Gong
+  [134984] = 100, -- Pattern: Clothier's Form, Brass
+  [139486] = 100, -- Sketch: High Elf Ancestor Clock, Celestial
+
 }


 FurC.Faustina[FURC_DRAGONS] = {
-	[134675] = 500,
+  [134675] = 500,
 }

 FurC.Rolis[FURC_DRAGONS] = {
-	[133576] = 1250,
+  [133576] = 1250,
 }


 FurC.Rolis[FURC_HOMESTEAD] = {
-	-- Alchemy station
-	[118328] = 35,
-	-- Blacksmithing station
-	[119781] = 35,
-	-- Clothing station
-	[119707] = 35,
-	-- Dye Station
-	[118329] = 35,
-	-- Enchanting station
-	[118330] = 35,
-	-- Provisioning station
-	[118327] = 35,
-	-- Woodworking station
-	[119744] = 35,
+-- Alchemy station
+[118328] = 35,
+-- Blacksmithing station
+[119781] = 35,
+-- Clothing station
+[119707] = 35,
+-- Dye Station
+[118329] = 35,
+-- Enchanting station
+[118330] = 35,
+-- Provisioning station
+[118327] = 35,
+-- Woodworking station
+[119744] = 35,

-	-- Attunable Blacksmithing station
-	[119594] = 250,
-	-- Attunable Clothing station
-	[119821] = 250,
-	-- Attunable Woodworking station
-	[119822] = 250,
+-- Attunable Blacksmithing station
+[119594] = 250,
+-- Attunable Clothing station
+[119821] = 250,
+-- Attunable Woodworking station
+[119822] = 250,
 }

 FurC.RolisRecipes[FURC_HOMESTEAD] = {
-    [126582] = 275, -- Praxis: Target Centurion, Dwarf-Brass
-    [126583] = 450, -- Praxis: Target Centurion, Robust Refabricated
-    [119592] = 125, -- Praxis: Target Skeleton, Humanoid
-    [121315] = 200, -- Praxis: Target Skeleton, Robust Humanoid
+[126582] = 275, -- Praxis: Target Centurion, Dwarf-Brass
+[126583] = 450, -- Praxis: Target Centurion, Robust Refabricated
+[119592] = 125, -- Praxis: Target Skeleton, Humanoid
+[121315] = 200, -- Praxis: Target Skeleton, Robust Humanoid
 }
diff --git a/data/RumourRecipes.lua b/data/RumourRecipes.lua
index 0797c81..7d88cf3 100644
--- a/data/RumourRecipes.lua
+++ b/data/RumourRecipes.lua
@@ -1,40 +1,39 @@
-FurC.RumourRecipes = {
-    121198, -- Formula: Shelf, Poison
-    119441, -- Design: Steak, Display
-    119442, -- Diagram: Teapot, Common
-    121208, -- Praxis: Orcish Table with Furs
-    121210, -- Praxis: Orcish Throne, Skull
-    121212, -- Praxis: Orcish Effigy, Bear
-    121213, -- Diagram: Orcish Skull Goblet, Empty
-    119454, -- Blueprint: Plaque, Large
-    119455, -- Blueprint: Plaque, Standard
-    119466, -- Blueprint: Podium, Engraved
-    119437, -- Design: Pie, Display
-    121161, -- Design: Ram Horns, Mounted
-    121216, -- Blueprint: Redguard Divider, Gilded
-    121203, -- Praxis: Khajiit Brazier, Enchanted
-    121217, -- Formula: Redguard Lamp, Oil
-    121215, -- Pattern: Redguard Canopy, Dusk
-    119426, -- Design: Bread, Plain
-    121102, -- Design: Chicken Dinner, Display
-    121103, -- Design: Chicken Meal, Display
-	119426, -- Bread, Plain
-	119448, -- Minecart, Empty
-	119449, -- Minecart, Push
-	119450, -- Knife, Carving
-	121100, -- Common Stewpot, Hanging
-	119428, -- Common Bowl, Serving
-    121201, -- Sack of Beans
-	121101, -- Sack of Millet,
-	121111, -- Simple Red Banner
-	121110, -- Simple Purple Banner
-	121109, -- Simple Gray Banner
-	119408, -- Simple Blue Banner
-	121108, -- Simple Brown Banner
-	119355, -- Garlic String, Display
-	121203, -- Khajiit Brazier, Enchanted
-	121091, -- Stool, Carved
-	119447, -- Candles, Lasting
+FurC.RumourRecipes = {
+  121198, -- Formula: Shelf, Poison
+  119441, -- Design: Steak, Display
+  119442, -- Diagram: Teapot, Common
+  121208, -- Praxis: Orcish Table with Furs
+  121210, -- Praxis: Orcish Throne, Skull
+  121212, -- Praxis: Orcish Effigy, Bear
+  121213, -- Diagram: Orcish Skull Goblet, Empty
+  119454, -- Blueprint: Plaque, Large
+  119455, -- Blueprint: Plaque, Standard
+  119466, -- Blueprint: Podium, Engraved
+  119437, -- Design: Pie, Display
+  121161, -- Design: Ram Horns, Mounted
+  121216, -- Blueprint: Redguard Divider, Gilded
+  121203, -- Praxis: Khajiit Brazier, Enchanted
+  121217, -- Formula: Redguard Lamp, Oil
+  121215, -- Pattern: Redguard Canopy, Dusk
+  119426, -- Design: Bread, Plain
+  121102, -- Design: Chicken Dinner, Display
+  121103, -- Design: Chicken Meal, Display
+  119426, -- Bread, Plain
+  119448, -- Minecart, Empty
+  119449, -- Minecart, Push
+  119450, -- Knife, Carving
+  121100, -- Common Stewpot, Hanging
+  119428, -- Common Bowl, Serving
+  121201, -- Sack of Beans
+  121101, -- Sack of Millet
+  121111, -- Simple Red Banner
+  121110, -- Simple Purple Banner
+  121109, -- Simple Gray Banner
+  121108, -- Simple Brown Banner
+  119355, -- Garlic String, Display
+  121203, -- Khajiit Brazier, Enchanted
+  121091, -- Stool, Carved
+  119447, -- Candles, Lasting
 }
 local function getCrownStorePriceString(price)
     return string.format("%s (%u)", GetString(SI_FURC_CROWNSTORESOURCE), price)
@@ -44,24 +43,25 @@ end
 FurC.MiscItemSources[FURC_ALTMER] = FurC.MiscItemSources[FURC_ALTMER] or {}
 FurC.MiscItemSources[FURC_ALTMER][FURC_RUMOUR] = {

-    [139137] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), -- Tapestry, Nocturnal
-    [139138] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), -- Banner, Nocturnal
-    [139139] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), -- Nocturnal, Mistress of Shadows
+    [139137] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Tapestry, Nocturnal
+    [139138] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Banner, Nocturnal
+    [139139] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Nocturnal, Mistress of Shadows

-    [139147] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), -- Plants, Scarlet Sawleaf
-    [139149] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), -- Plant, Scarlet Fleshfrond
+    [139147] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Plants, Scarlet Sawleaf
+    [139149] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Plant, Scarlet Fleshfrond

-    [139351] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), -- Alinor Monument, Marble
+    [139351] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Alinor Monument, Marble

-    [139366] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), -- Alinor Fountain, Regal
-    [139367] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), -- Regal Sauna Pool, Two Person
+    [139366] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Alinor Fountain, Regal
+    [139367] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Regal Sauna Pool, Two Person

-    [139369] = GetString(SI_FURC_ITEMSOURCE_UNKNOWN_YET), -- Abyssal Pearl, Sealed
+    [139369] = GetString(SI_FURC_DATAMINED_UNCLEAR), -- Abyssal Pearl, Sealed

 }
-
-FurC.EventItems[FURC_ALTMER] = {}
-
-
-FurC.Books[FURC_ALTMER] = {}
+
+-- Removed with Murkmire Live Release, RIP
+-- [126154] = GetString(SI_FURC_DATAMINED_UNCLEAR),  -- Statuette of Azura with Moon and Star
+-- [126155] = GetString(SI_FURC_DATAMINED_UNCLEAR),  -- Statuette of Lord Vivec, Warrior-Poet
+-- [126156] = GetString(SI_FURC_DATAMINED_UNCLEAR),  -- Statuette of Clavicus Vile, Unmasked
+

diff --git a/libs/LibAddonMenu-2.0.txt b/libs/LibAddonMenu-2.0.txt
deleted file mode 100644
index 891e536..0000000
--- a/libs/LibAddonMenu-2.0.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-## APIVersion: 100022 100023
-## Title: LibAddonMenu-2.0
-## Version: 2.0 r26
-## AddOnVersion: 26
-## Author: Seerah, sirinsidiator, et al.
-## Contributors: votan, merlight, Garkin, Randactyl, KuroiLight, silvereyes333, Baertram, kyoma
-## Description: A library to aid in the creation of option panels.
-##
-## This Add-on is not created by, affiliated with or sponsored by ZeniMax Media Inc. or its affiliates.
-## The Elder Scrolls® and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the United States and/or other countries.
-## All rights reserved
-##
-## You can read the full terms at https://account.elderscrollsonline.com/add-on-terms
-
-LibStub\LibStub.lua
-
-LibAddonMenu-2.0\LibAddonMenu-2.0.lua
-
-LibAddonMenu-2.0\controls\panel.lua
-LibAddonMenu-2.0\controls\submenu.lua
-LibAddonMenu-2.0\controls\button.lua
-LibAddonMenu-2.0\controls\checkbox.lua
-LibAddonMenu-2.0\controls\colorpicker.lua
-LibAddonMenu-2.0\controls\custom.lua
-LibAddonMenu-2.0\controls\description.lua
-LibAddonMenu-2.0\controls\dropdown.lua
-LibAddonMenu-2.0\controls\editbox.lua
-LibAddonMenu-2.0\controls\header.lua
-LibAddonMenu-2.0\controls\slider.lua
-LibAddonMenu-2.0\controls\texture.lua
-LibAddonMenu-2.0\controls\iconpicker.lua
-LibAddonMenu-2.0\controls\divider.lua
diff --git a/libs/LibAddonMenu-2.0/LICENSE b/libs/LibAddonMenu-2.0/LICENSE
deleted file mode 100644
index f69cbd4..0000000
--- a/libs/LibAddonMenu-2.0/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-               The Artistic License 2.0
-
-           Copyright (c) 2016 Ryan Lakanen (Seerah)
-
-     Everyone is permitted to copy and distribute verbatim copies
-      of this license document, but changing it is not allowed.
-
-Preamble
-
-This license establishes the terms under which a given free software
-Package may be copied, modified, distributed, and/or redistributed.
-The intent is that the Copyright Holder maintains some artistic
-control over the development of that Package while still keeping the
-Package available as open source and free software.
-
-You are always permitted to make arrangements wholly outside of this
-license directly with the Copyright Holder of a given Package.  If the
-terms of this license do not permit the full use that you propose to
-make of the Package, you should contact the Copyright Holder and seek
-a different licensing arrangement.
-
-Definitions
-
-    "Copyright Holder" means the individual(s) or organization(s)
-    named in the copyright notice for the entire Package.
-
-    "Contributor" means any party that has contributed code or other
-    material to the Package, in accordance with the Copyright Holder's
-    procedures.
-
-    "You" and "your" means any person who would like to copy,
-    distribute, or modify the Package.
-
-    "Package" means the collection of files distributed by the
-    Copyright Holder, and derivatives of that collection and/or of
-    those files. A given Package may consist of either the Standard
-    Version, or a Modified Version.
-
-    "Distribute" means providing a copy of the Package or making it
-    accessible to anyone else, or in the case of a company or
-    organization, to others outside of your company or organization.
-
-    "Distributor Fee" means any fee that you charge for Distributing
-    this Package or providing support for this Package to another
-    party.  It does not mean licensing fees.
-
-    "Standard Version" refers to the Package if it has not been
-    modified, or has been modified only in ways explicitly requested
-    by the Copyright Holder.
-
-    "Modified Version" means the Package, if it has been changed, and
-    such changes were not explicitly requested by the Copyright
-    Holder.
-
-    "Original License" means this Artistic License as Distributed with
-    the Standard Version of the Package, in its current version or as
-    it may be modified by The Perl Foundation in the future.
-
-    "Source" form means the source code, documentation source, and
-    configuration files for the Package.
-
-    "Compiled" form means the compiled bytecode, object code, binary,
-    or any other form resulting from mechanical transformation or
-    translation of the Source form.
-
-
-Permission for Use and Modification Without Distribution
-
-(1)  You are permitted to use the Standard Version and create and use
-Modified Versions for any purpose without restriction, provided that
-you do not Distribute the Modified Version.
-
-
-Permissions for Redistribution of the Standard Version
-
-(2)  You may Distribute verbatim copies of the Source form of the
-Standard Version of this Package in any medium without restriction,
-either gratis or for a Distributor Fee, provided that you duplicate
-all of the original copyright notices and associated disclaimers.  At
-your discretion, such verbatim copies may or may not include a
-Compiled form of the Package.
-
-(3)  You may apply any bug fixes, portability changes, and other
-modifications made available from the Copyright Holder.  The resulting
-Package will still be considered the Standard Version, and as such
-will be subject to the Original License.
-
-
-Distribution of Modified Versions of the Package as Source
-
-(4)  You may Distribute your Modified Version as Source (either gratis
-or for a Distributor Fee, and with or without a Compiled form of the
-Modified Version) provided that you clearly document how it differs
-from the Standard Version, including, but not limited to, documenting
-any non-standard features, executables, or modules, and provided that
-you do at least ONE of the following:
-
-    (a)  make the Modified Version available to the Copyright Holder
-    of the Standard Version, under the Original License, so that the
-    Copyright Holder may include your modifications in the Standard
-    Version.
-
-    (b)  ensure that installation of your Modified Version does not
-    prevent the user installing or running the Standard Version. In
-    addition, the Modified Version must bear a name that is different
-    from the name of the Standard Version.
-
-    (c)  allow anyone who receives a copy of the Modified Version to
-    make the Source form of the Modified Version available to others
-    under
-
-    (i)  the Original License or
-
-    (ii)  a license that permits the licensee to freely copy,
-    modify and redistribute the Modified Version using the same
-    licensing terms that apply to the copy that the licensee
-    received, and requires that the Source form of the Modified
-    Version, and of any works derived from it, be made freely
-    available in that license fees are prohibited but Distributor
-    Fees are allowed.
-
-
-Distribution of Compiled Forms of the Standard Version
-or Modified Versions without the Source
-
-(5)  You may Distribute Compiled forms of the Standard Version without
-the Source, provided that you include complete instructions on how to
-get the Source of the Standard Version.  Such instructions must be
-valid at the time of your distribution.  If these instructions, at any
-time while you are carrying out such distribution, become invalid, you
-must provide new instructions on demand or cease further distribution.
-If you provide valid instructions or cease distribution within thirty
-days after you become aware that the instructions are invalid, then
-you do not forfeit any of your rights under this license.
-
-(6)  You may Distribute a Modified Version in Compiled form without
-the Source, provided that you comply with Section 4 with respect to
-the Source of the Modified Version.
-
-
-Aggregating or Linking the Package
-
-(7)  You may aggregate the Package (either the Standard Version or
-Modified Version) with other packages and Distribute the resulting
-aggregation provided that you do not charge a licensing fee for the
-Package.  Distributor Fees are permitted, and licensing fees for other
-components in the aggregation are permitted. The terms of this license
-apply to the use and Distribution of the Standard or Modified Versions
-as included in the aggregation.
-
-(8) You are permitted to link Modified and Standard Versions with
-other works, to embed the Package in a larger work of your own, or to
-build stand-alone binary or bytecode versions of applications that
-include the Package, and Distribute the result without restriction,
-provided the result does not expose a direct interface to the Package.
-
-
-Items That are Not Considered Part of a Modified Version
-
-(9) Works (including, but not limited to, modules and scripts) that
-merely extend or make use of the Package, do not, by themselves, cause
-the Package to be a Modified Version.  In addition, such works are not
-considered parts of the Package itself, and are not subject to the
-terms of this license.
-
-
-General Provisions
-
-(10)  Any use, modification, and distribution of the Standard or
-Modified Versions is governed by this Artistic License. By using,
-modifying or distributing the Package, you accept this license. Do not
-use, modify, or distribute the Package, if you do not accept this
-license.
-
-(11)  If your Modified Version has been derived from a Modified
-Version made by someone other than you, you are nevertheless required
-to ensure that your Modified Version complies with the requirements of
-this license.
-
-(12)  This license does not grant you the right to use any trademark,
-service mark, tradename, or logo of the Copyright Holder.
-
-(13)  This license includes the non-exclusive, worldwide,
-free-of-charge patent license to make, have made, use, offer to sell,
-sell, import and otherwise transfer the Package with respect to any
-patent claims licensable by the Copyright Holder that are necessarily
-infringed by the Package. If you institute patent litigation
-(including a cross-claim or counterclaim) against any party alleging
-that the Package constitutes direct or contributory patent
-infringement, then this Artistic License to you shall terminate on the
-date that such litigation is filed.
-
-(14)  Disclaimer of Warranty:
-THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
-IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
-NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
-LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/libs/LibAddonMenu-2.0/LibAddonMenu-2.0.lua b/libs/LibAddonMenu-2.0/LibAddonMenu-2.0.lua
deleted file mode 100644
index 7a88896..0000000
--- a/libs/LibAddonMenu-2.0/LibAddonMenu-2.0.lua
+++ /dev/null
@@ -1,1248 +0,0 @@
--- LibAddonMenu-2.0 & its files © Ryan Lakanen (Seerah)         --
--- Distributed under The Artistic License 2.0 (see LICENSE)     --
-------------------------------------------------------------------
-
-
---Register LAM with LibStub
-local MAJOR, MINOR = "LibAddonMenu-2.0", 26
-local lam, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
-if not lam then return end --the same or newer version of this lib is already loaded into memory
-
-local messages = {}
-local MESSAGE_PREFIX = "[LAM2] "
-local function PrintLater(msg)
-    if CHAT_SYSTEM.primaryContainer then
-        d(MESSAGE_PREFIX .. msg)
-    else
-        messages[#messages + 1] = msg
-    end
-end
-
-local function FlushMessages()
-    for i = 1, #messages do
-        d(MESSAGE_PREFIX .. messages[i])
-    end
-    messages = {}
-end
-
-if LAMSettingsPanelCreated and not LAMCompatibilityWarning then
-    PrintLater("An old version of LibAddonMenu with compatibility issues was detected. For more information on how to proceed search for LibAddonMenu on esoui.com")
-    LAMCompatibilityWarning = true
-end
-
---UPVALUES--
-local wm = WINDOW_MANAGER
-local em = EVENT_MANAGER
-local sm = SCENE_MANAGER
-local cm = CALLBACK_MANAGER
-local tconcat = table.concat
-local tinsert = table.insert
-
-local MIN_HEIGHT = 26
-local HALF_WIDTH_LINE_SPACING = 2
-local OPTIONS_CREATION_RUNNING = 1
-local OPTIONS_CREATED = 2
-local LAM_CONFIRM_DIALOG = "LAM_CONFIRM_DIALOG"
-local LAM_DEFAULTS_DIALOG = "LAM_DEFAULTS"
-local LAM_RELOAD_DIALOG = "LAM_RELOAD_DIALOG"
-
-local addonsForList = {}
-local addonToOptionsMap = {}
-local optionsState = {}
-lam.widgets = lam.widgets or {}
-local widgets = lam.widgets
-lam.util = lam.util or {}
-local util = lam.util
-lam.controlsForReload = lam.controlsForReload or {}
-local controlsForReload = lam.controlsForReload
-
-local function GetDefaultValue(default)
-    if type(default) == "function" then
-        return default()
-    end
-    return default
-end
-
-local function GetStringFromValue(value)
-    if type(value) == "function" then
-        return value()
-    elseif type(value) == "number" then
-        return GetString(value)
-    end
-    return value
-end
-
-local function CreateBaseControl(parent, controlData, controlName)
-    local control = wm:CreateControl(controlName or controlData.reference, parent.scroll or parent, CT_CONTROL)
-    control.panel = parent.panel or parent -- if this is in a submenu, panel is the submenu's parent
-    control.data = controlData
-
-    control.isHalfWidth = controlData.width == "half"
-    local width = 510 -- set default width in case a custom parent object is passed
-    if control.panel.GetWidth ~= nil then width = control.panel:GetWidth() - 60 end
-    control:SetWidth(width)
-    return control
-end
-
-local function CreateLabelAndContainerControl(parent, controlData, controlName)
-    local control = CreateBaseControl(parent, controlData, controlName)
-    local width = control:GetWidth()
-
-    local container = wm:CreateControl(nil, control, CT_CONTROL)
-    container:SetDimensions(width / 3, MIN_HEIGHT)
-    control.container = container
-
-    local label = wm:CreateControl(nil, control, CT_LABEL)
-    label:SetFont("ZoFontWinH4")
-    label:SetHeight(MIN_HEIGHT)
-    label:SetWrapMode(TEXT_WRAP_MODE_ELLIPSIS)
-    label:SetText(GetStringFromValue(controlData.name))
-    control.label = label
-
-    if control.isHalfWidth then
-        control:SetDimensions(width / 2, MIN_HEIGHT * 2 + HALF_WIDTH_LINE_SPACING)
-        label:SetAnchor(TOPLEFT, control, TOPLEFT, 0, 0)
-        label:SetAnchor(TOPRIGHT, control, TOPRIGHT, 0, 0)
-        container:SetAnchor(TOPRIGHT, control.label, BOTTOMRIGHT, 0, HALF_WIDTH_LINE_SPACING)
-    else
-        control:SetDimensions(width, MIN_HEIGHT)
-        container:SetAnchor(TOPRIGHT, control, TOPRIGHT, 0, 0)
-        label:SetAnchor(TOPLEFT, control, TOPLEFT, 0, 0)
-        label:SetAnchor(TOPRIGHT, container, TOPLEFT, 5, 0)
-    end
-
-    control.data.tooltipText = GetStringFromValue(control.data.tooltip)
-    control:SetMouseEnabled(true)
-    control:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter)
-    control:SetHandler("OnMouseExit", ZO_Options_OnMouseExit)
-    return control
-end
-
-local function GetTopPanel(panel)
-    while panel.panel and panel.panel ~= panel do
-        panel = panel.panel
-    end
-    return panel
-end
-
-local function IsSame(objA, objB)
-    if #objA ~= #objB then return false end
-    for i = 1, #objA do
-        if objA[i] ~= objB[i] then return false end
-    end
-    return true
-end
-
-local function RefreshReloadUIButton()
-    lam.requiresReload = false
-
-    for i = 1, #controlsForReload do
-        local reloadControl = controlsForReload[i]
-        if not IsSame(reloadControl.startValue, {reloadControl.data.getFunc()}) then
-            lam.requiresReload = true
-            break
-        end
-    end
-
-    lam.applyButton:SetHidden(not lam.requiresReload)
-end
-
-local function RequestRefreshIfNeeded(control)
-    -- if our parent window wants to refresh controls, then fire the callback
-    local panel = GetTopPanel(control.panel)
-    local panelData = panel.data
-    if panelData.registerForRefresh then
-        cm:FireCallbacks("LAM-RefreshPanel", control)
-    end
-    RefreshReloadUIButton()
-end
-
-local function RegisterForRefreshIfNeeded(control)
-    -- if our parent window wants to refresh controls, then add this to the list
-    local panel = GetTopPanel(control.panel)
-    local panelData = panel.data
-    if panelData.registerForRefresh or panelData.registerForDefaults then
-        tinsert(panel.controlsToRefresh or {}, control) -- prevent errors on custom panels
-    end
-end
-
-local function RegisterForReloadIfNeeded(control)
-    if control.data.requiresReload then
-        tinsert(controlsForReload, control)
-        control.startValue = {control.data.getFunc()}
-    end
-end
-
-local function GetConfirmDialog()
-    if(not ESO_Dialogs[LAM_CONFIRM_DIALOG]) then
-        ESO_Dialogs[LAM_CONFIRM_DIALOG] = {
-            canQueue = true,
-            title = {
-                text = "",
-            },
-            mainText = {
-                text = "",
-            },
-            buttons = {
-                [1] = {
-                    text = SI_DIALOG_CONFIRM,
-                    callback = function(dialog) end,
-                },
-                [2] = {
-                    text = SI_DIALOG_CANCEL,
-                }
-            }
-        }
-    end
-    return ESO_Dialogs[LAM_CONFIRM_DIALOG]
-end
-
-local function ShowConfirmationDialog(title, body, callback)
-    local dialog = GetConfirmDialog()
-    dialog.title.text = title
-    dialog.mainText.text = body
-    dialog.buttons[1].callback = callback
-    ZO_Dialogs_ShowDialog(LAM_CONFIRM_DIALOG)
-end
-
-local function GetDefaultsDialog()
-    if(not ESO_Dialogs[LAM_DEFAULTS_DIALOG]) then
-        ESO_Dialogs[LAM_DEFAULTS_DIALOG] = {
-            canQueue = true,
-            title = {
-                text = SI_INTERFACE_OPTIONS_RESET_TO_DEFAULT_TOOLTIP,
-            },
-            mainText = {
-                text = SI_OPTIONS_RESET_PROMPT,
-            },
-            buttons = {
-                [1] = {
-                    text = SI_OPTIONS_RESET,
-                    callback = function(dialog) end,
-                },
-                [2] = {
-                    text = SI_DIALOG_CANCEL,
-                }
-            }
-        }
-    end
-    return ESO_Dialogs[LAM_DEFAULTS_DIALOG]
-end
-
-local function ShowDefaultsDialog(panel)
-    local dialog = GetDefaultsDialog()
-    dialog.buttons[1].callback = function()
-        panel:ForceDefaults()
-        RefreshReloadUIButton()
-    end
-    ZO_Dialogs_ShowDialog(LAM_DEFAULTS_DIALOG)
-end
-
-local function DiscardChangesOnReloadControls()
-    for i = 1, #controlsForReload do
-        local reloadControl = controlsForReload[i]
-        if not IsSame(reloadControl.startValue, {reloadControl.data.getFunc()}) then
-            reloadControl:UpdateValue(false, unpack(reloadControl.startValue))
-        end
-    end
-    lam.requiresReload = false
-    lam.applyButton:SetHidden(true)
-end
-
-local function StorePanelForReopening()
-    local saveData = ZO_Ingame_SavedVariables["LAM"] or {}
-    saveData.reopenPanel = lam.currentAddonPanel:GetName()
-    ZO_Ingame_SavedVariables["LAM"] = saveData
-end
-
-local function RetrievePanelForReopening()
-    local saveData = ZO_Ingame_SavedVariables["LAM"]
-    if(saveData) then
-        ZO_Ingame_SavedVariables["LAM"] = nil
-        return _G[saveData.reopenPanel]
-    end
-end
-
-local function HandleReloadUIPressed()
-    StorePanelForReopening()
-    ReloadUI()
-end
-
-local function HandleLoadDefaultsPressed()
-    ShowDefaultsDialog(lam.currentAddonPanel)
-end
-
-local function GetReloadDialog()
-    if(not ESO_Dialogs[LAM_RELOAD_DIALOG]) then
-        ESO_Dialogs[LAM_RELOAD_DIALOG] = {
-            canQueue = true,
-            title = {
-                text = util.L["RELOAD_DIALOG_TITLE"],
-            },
-            mainText = {
-                text = util.L["RELOAD_DIALOG_TEXT"],
-            },
-            buttons = {
-                [1] = {
-                    text = util.L["RELOAD_DIALOG_RELOAD_BUTTON"],
-                    callback = function() ReloadUI() end,
-                },
-                [2] = {
-                    text = util.L["RELOAD_DIALOG_DISCARD_BUTTON"],
-                    callback = DiscardChangesOnReloadControls,
-                }
-            },
-            noChoiceCallback = DiscardChangesOnReloadControls,
-        }
-    end
-    return ESO_Dialogs[LAM_CONFIRM_DIALOG]
-end
-
-local function ShowReloadDialogIfNeeded()
-    if lam.requiresReload then
-        local dialog = GetReloadDialog()
-        ZO_Dialogs_ShowDialog(LAM_RELOAD_DIALOG)
-    end
-end
-
-local function UpdateWarning(control)
-    local warning
-    if control.data.warning ~= nil then
-        warning = util.GetStringFromValue(control.data.warning)
-    end
-
-    if control.data.requiresReload then
-        if not warning then
-            warning = string.format("|cff0000%s", util.L["RELOAD_UI_WARNING"])
-        else
-            warning = string.format("%s\n\n|cff0000%s", warning, util.L["RELOAD_UI_WARNING"])
-        end
-    end
-
-    if not warning then
-        control.warning:SetHidden(true)
-    else
-        control.warning.data = {tooltipText = warning}
-        control.warning:SetHidden(false)
-    end
-end
-
-local localization = {
-    en = {
-        PANEL_NAME = "Addons",
-        AUTHOR = string.format("%s: <<X:1>>", GetString(SI_ADDON_MANAGER_AUTHOR)), -- "Author: <<X:1>>"
-        VERSION = "Version: <<X:1>>",
-        WEBSITE = "Visit Website",
-        PANEL_INFO_FONT = "$(CHAT_FONT)|14|soft-shadow-thin",
-        RELOAD_UI_WARNING = "Changes to this setting require an UI reload in order to take effect.",
-        RELOAD_DIALOG_TITLE = "UI Reload required",
-        RELOAD_DIALOG_TEXT = "Some changes require an UI reload in order to take effect. Do you want to reload now or discard the changes?",
-        RELOAD_DIALOG_RELOAD_BUTTON = "Reload",
-        RELOAD_DIALOG_DISCARD_BUTTON = "Discard",
-    },
-    it = { -- provided by JohnnyKing
-        PANEL_NAME = "Addon",
-        VERSION = "Versione: <<X:1>>",
-        WEBSITE = "Visita il Sitoweb",
-        RELOAD_UI_WARNING = "Cambiare questa impostazione richiede un Ricarica UI al fine che faccia effetto.",
-        RELOAD_DIALOG_TITLE = "Ricarica UI richiesto",
-        RELOAD_DIALOG_TEXT = "Alcune modifiche richiedono un Ricarica UI al fine che facciano effetto. Sei sicuro di voler ricaricare ora o di voler annullare le modifiche?",
-        RELOAD_DIALOG_RELOAD_BUTTON = "Ricarica",
-        RELOAD_DIALOG_DISCARD_BUTTON = "Annulla",
-    },
-    fr = { -- provided by Ayantir
-        PANEL_NAME = "Extensions",
-        WEBSITE = "Visiter le site Web",
-        RELOAD_UI_WARNING = "La modification de ce paramètre requiert un rechargement de l'UI pour qu'il soit pris en compte.",
-        RELOAD_DIALOG_TITLE = "Reload UI requis",
-        RELOAD_DIALOG_TEXT = "Certaines modifications requièrent un rechargement de l'UI pour qu'ils soient pris en compte. Souhaitez-vous recharger l'interface maintenant ou annuler les modifications ?",
-        RELOAD_DIALOG_RELOAD_BUTTON = "Recharger",
-        RELOAD_DIALOG_DISCARD_BUTTON = "Annuler",
-    },
-    de = { -- provided by sirinsidiator
-        PANEL_NAME = "Erweiterungen",
-        WEBSITE = "Webseite besuchen",
-        RELOAD_UI_WARNING = "Änderungen an dieser Option werden erst übernommen nachdem die Benutzeroberfläche neu geladen wird.",
-        RELOAD_DIALOG_TITLE = "Neuladen benötigt",
-        RELOAD_DIALOG_TEXT = "Einige Änderungen werden erst übernommen nachdem die Benutzeroberfläche neu geladen wird. Wollt Ihr sie jetzt neu laden oder die Änderungen verwerfen?",
-        RELOAD_DIALOG_RELOAD_BUTTON = "Neu laden",
-        RELOAD_DIALOG_DISCARD_BUTTON = "Verwerfen",
-    },
-    ru = { -- provided by TERAB1T
-        PANEL_NAME = "Дополнения",
-        VERSION = "Версия: <<X:1>>",
-        WEBSITE = "Посетить сайт",
-        PANEL_INFO_FONT = "RuESO/fonts/Univers57.otf|14|soft-shadow-thin",
-        RELOAD_UI_WARNING = "Для применения этой настройки необходима перезагрузка интерфейса.",
-        RELOAD_DIALOG_TITLE = "Необходима перезагрузка интерфейса",
-        RELOAD_DIALOG_TEXT = "Для применения некоторых изменений необходима перезагрузка интерфейса. Перезагрузить интерфейс сейчас или отменить изменения?",
-        RELOAD_DIALOG_RELOAD_BUTTON = "Перезагрузить",
-        RELOAD_DIALOG_DISCARD_BUTTON = "Отменить изменения",
-    },
-    es = { -- provided by Morganlefai, checked by Kwisatz
-        PANEL_NAME = "Configuración",
-        VERSION = "Versión: <<X:1>>",
-        WEBSITE = "Visita la página web",
-        RELOAD_UI_WARNING = "Cambiar este ajuste recargará la interfaz del usuario.",
-        RELOAD_DIALOG_TITLE = "Requiere recargar la interfaz",
-        RELOAD_DIALOG_TEXT = "Algunos cambios requieren recargar la interfaz para poder aplicarse. Quieres aplicar los cambios y recargar la interfaz?",
-        RELOAD_DIALOG_RELOAD_BUTTON = "Recargar",
-        RELOAD_DIALOG_DISCARD_BUTTON = "Cancelar",
-    },
-    jp = { -- provided by k0ta0uchi
-        PANEL_NAME = "アドオン設定",
-        WEBSITE = "ウェブサイトを見る",
-    },
-    zh = { -- provided by bssthu
-        PANEL_NAME = "插件",
-        VERSION = "版本: <<X:1>>",
-        WEBSITE = "访问网站",
-        PANEL_INFO_FONT = "EsoZh/fonts/univers57.otf|14|soft-shadow-thin",
-    },
-    pl = { -- provided by EmiruTegryfon
-        PANEL_NAME = "Dodatki",
-        VERSION = "Wersja: <<X:1>>",
-        WEBSITE = "Odwiedź stronę",
-        RELOAD_UI_WARNING = "Zmiany będą widoczne po ponownym załadowaniu UI.",
-        RELOAD_DIALOG_TITLE = "Wymagane przeładowanie UI",
-        RELOAD_DIALOG_TEXT = "Niektóre zmiany wymagają ponownego załadowania UI. Czy chcesz teraz ponownie załadować, czy porzucić zmiany?",
-        RELOAD_DIALOG_RELOAD_BUTTON = "Przeładuj",
-        RELOAD_DIALOG_DISCARD_BUTTON = "Porzuć",
-    },
-    kr = { -- provided by p.walker
-        PANEL_NAME = "蝠盜蠨",
-        VERSION = "纄訄: <<X:1>>",
-        WEBSITE = "裹芬襴钸 縩紸",
-        PANEL_INFO_FONT = "EsoKR/fonts/Univers57.otf|14|soft-shadow-thin",
-        RELOAD_UI_WARNING = "襴 茤訕襄 绀溽靘籴 風滼筼 訁袩靘瀰褄靴 UI 苈穜滠遨襴 靄袔革瓈瓤.",
-        RELOAD_DIALOG_TITLE = "UI 苈穜滠遨 靄袔",
-        RELOAD_DIALOG_TEXT = "绀溽瘜 茤訕 謑 UI 苈穜滠遨襄 靄袔穜靘璔 芬靭襴 覈蒵瓈瓤. 诀瀈 苈穜滠遨靘蓜溠蒵瓈灌? 蝄瓈籴 绀溽襄 迨莌靘蓜溠蒵瓈灌?",
-        RELOAD_DIALOG_RELOAD_BUTTON = "苈穜滠遨",
-        RELOAD_DIALOG_DISCARD_BUTTON = "绀溽迨莌",
-    },
-    br = { -- provided by mlsevero
-        PANEL_NAME = "Addons",
-        AUTHOR = string.format("%s: <<X:1>>", GetString(SI_ADDON_MANAGER_AUTHOR)), -- "Autor: <<X:1>>"
-        VERSION = "Versão: <<X:1>>",
-        WEBSITE = "Visite o Website",
-        RELOAD_UI_WARNING = "Mudanças nessa configuração requer a releitura da UI para ter efeito.",
-        RELOAD_DIALOG_TITLE = "Releitura da UI requerida",
-        RELOAD_DIALOG_TEXT = "Algumas mudanças requerem a releitura da UI para ter efeito. Você deseja reler agora ou descartar as mudanças?",
-        RELOAD_DIALOG_RELOAD_BUTTON = "Relê",
-        RELOAD_DIALOG_DISCARD_BUTTON = "Descarta",
-    },
-}
-
-util.L = ZO_ShallowTableCopy(localization[GetCVar("Language.2")] or {}, localization["en"])
-util.GetTooltipText = GetStringFromValue -- deprecated, use util.GetStringFromValue instead
-util.GetStringFromValue = GetStringFromValue
-util.GetDefaultValue = GetDefaultValue
-util.CreateBaseControl = CreateBaseControl
-util.CreateLabelAndContainerControl = CreateLabelAndContainerControl
-util.RequestRefreshIfNeeded = RequestRefreshIfNeeded
-util.RegisterForRefreshIfNeeded = RegisterForRefreshIfNeeded
-util.RegisterForReloadIfNeeded = RegisterForReloadIfNeeded
-util.GetTopPanel = GetTopPanel
-util.ShowConfirmationDialog = ShowConfirmationDialog
-util.UpdateWarning = UpdateWarning
-
-local ADDON_DATA_TYPE = 1
-local RESELECTING_DURING_REBUILD = true
-local USER_REQUESTED_OPEN = true
-
-
---INTERNAL FUNCTION
---scrolls ZO_ScrollList `list` to move the row corresponding to `data`
--- into view (does nothing if there is no such row in the list)
---unlike ZO_ScrollList_ScrollDataIntoView, this function accounts for
--- fading near the list's edges - it avoids the fading area by scrolling
--- a little further than the ZO function
-local function ScrollDataIntoView(list, data)
-    local targetIndex = data.sortIndex
-    if not targetIndex then return end
-
-    local scrollMin, scrollMax = list.scrollbar:GetMinMax()
-    local scrollTop = list.scrollbar:GetValue()
-    local controlHeight = list.uniformControlHeight or list.controlHeight
-    local targetMin = controlHeight * (targetIndex - 1) - 64
-    -- subtracting 64 ain't arbitrary, it's the maximum fading height
-    -- (libraries/zo_templates/scrolltemplates.lua/UpdateScrollFade)
-
-    if targetMin < scrollTop then
-        ZO_ScrollList_ScrollAbsolute(list, zo_max(targetMin, scrollMin))
-    else
-        local listHeight = ZO_ScrollList_GetHeight(list)
-        local targetMax = controlHeight * targetIndex + 64 - listHeight
-
-        if targetMax > scrollTop then
-            ZO_ScrollList_ScrollAbsolute(list, zo_min(targetMax, scrollMax))
-        end
-    end
-end
-
-
---INTERNAL FUNCTION
---constructs a string pattern from the text in `searchEdit` control
--- * metacharacters are escaped, losing their special meaning
--- * whitespace matches anything (including empty substring)
---if there is nothing but whitespace, returns nil
---otherwise returns a filter function, which takes a `data` table argument
--- and returns true iff `data.filterText` matches the pattern
-local function GetSearchFilterFunc(searchEdit)
-    local text = searchEdit:GetText():lower()
-    local pattern = text:match("(%S+.-)%s*$")
-
-    if not pattern then -- nothing but whitespace
-        return nil
-    end
-
-    -- escape metacharacters, e.g. "ESO-Datenbank.de" => "ESO%-Datenbank%.de"
-    pattern = pattern:gsub("[-*+?^$().[%]%%]", "%%%0")
-
-    -- replace whitespace with "match shortest anything"
-    pattern = pattern:gsub("%s+", ".-")
-
-    return function(data)
-        return data.filterText:lower():find(pattern) ~= nil
-    end
-end
-
-
---INTERNAL FUNCTION
---populates `addonList` with entries from `addonsForList`
--- addonList = ZO_ScrollList control
--- filter = [optional] function(data)
-local function PopulateAddonList(addonList, filter)
-    local entryList = ZO_ScrollList_GetDataList(addonList)
-    local numEntries = 0
-    local selectedData = nil
-    local selectionIsFinal = false
-
-    ZO_ScrollList_Clear(addonList)
-
-    for i, data in ipairs(addonsForList) do
-        if not filter or filter(data) then
-            local dataEntry = ZO_ScrollList_CreateDataEntry(ADDON_DATA_TYPE, data)
-            numEntries = numEntries + 1
-            data.sortIndex = numEntries
-            entryList[numEntries] = dataEntry
-            -- select the first panel passing the filter, or the currently
-            -- shown panel, but only if it passes the filter as well
-            if selectedData == nil or data.panel == lam.pendingAddonPanel or data.panel == lam.currentAddonPanel then
-                if not selectionIsFinal then
-                    selectedData = data
-                end
-                if data.panel == lam.pendingAddonPanel then
-                    lam.pendingAddonPanel = nil
-                    selectionIsFinal = true
-                end
-            end
-        else
-            data.sortIndex = nil
-        end
-    end
-
-    ZO_ScrollList_Commit(addonList)
-
-    if selectedData then
-        if selectedData.panel == lam.currentAddonPanel then
-            ZO_ScrollList_SelectData(addonList, selectedData, nil, RESELECTING_DURING_REBUILD)
-        else
-            ZO_ScrollList_SelectData(addonList, selectedData, nil)
-        end
-        ScrollDataIntoView(addonList, selectedData)
-    end
-end
-
-
---METHOD: REGISTER WIDGET--
---each widget has its version checked before loading,
---so we only have the most recent one in memory
---Usage:
--- widgetType = "string"; the type of widget being registered
--- widgetVersion = integer; the widget's version number
-LAMCreateControl = LAMCreateControl or {}
-local lamcc = LAMCreateControl
-
-function lam:RegisterWidget(widgetType, widgetVersion)
-    if widgets[widgetType] and widgets[widgetType] >= widgetVersion then
-        return false
-    else
-        widgets[widgetType] = widgetVersion
-        return true
-    end
-end
-
--- INTERNAL METHOD: hijacks the handlers for the actions in the OptionsWindow layer if not already done
-local function InitKeybindActions()
-    if not lam.keybindsInitialized then
-        lam.keybindsInitialized = true
-        ZO_PreHook(KEYBOARD_OPTIONS, "ApplySettings", function()
-            if lam.currentPanelOpened then
-                if not lam.applyButton:IsHidden() then
-                    HandleReloadUIPressed()
-                end
-                return true
-            end
-        end)
-        ZO_PreHook("ZO_Dialogs_ShowDialog", function(dialogName)
-            if lam.currentPanelOpened and dialogName == "OPTIONS_RESET_TO_DEFAULTS" then
-                if not lam.defaultButton:IsHidden() then
-                    HandleLoadDefaultsPressed()
-                end
-                return true
-            end
-        end)
-    end
-end
-
--- INTERNAL METHOD: fires the LAM-PanelOpened callback if not already done
-local function OpenCurrentPanel()
-    if lam.currentAddonPanel and not lam.currentPanelOpened then
-        lam.currentPanelOpened = true
-        lam.defaultButton:SetHidden(not lam.currentAddonPanel.data.registerForDefaults)
-        cm:FireCallbacks("LAM-PanelOpened", lam.currentAddonPanel)
-    end
-end
-
--- INTERNAL METHOD: fires the LAM-PanelClosed callback if not already done
-local function CloseCurrentPanel()
-    if lam.currentAddonPanel and lam.currentPanelOpened then
-        lam.currentPanelOpened = false
-        cm:FireCallbacks("LAM-PanelClosed", lam.currentAddonPanel)
-    end
-end
-
---METHOD: OPEN TO ADDON PANEL--
---opens to a specific addon's option panel
---Usage:
--- panel = userdata; the panel returned by the :RegisterOptionsPanel method
-local locSettings = GetString(SI_GAME_MENU_SETTINGS)
-function lam:OpenToPanel(panel)
-
-    -- find and select the panel's row in addon list
-
-    local addonList = lam.addonList
-    local selectedData = nil
-
-    for _, addonData in ipairs(addonsForList) do
-        if addonData.panel == panel then
-            selectedData = addonData
-            ScrollDataIntoView(addonList, selectedData)
-            lam.pendingAddonPanel = addonData.panel
-            break
-        end
-    end
-
-    ZO_ScrollList_SelectData(addonList, selectedData)
-    ZO_ScrollList_RefreshVisible(addonList, selectedData)
-
-    local srchEdit = LAMAddonSettingsWindow:GetNamedChild("SearchFilterEdit")
-    srchEdit:Clear()
-
-    -- note that ZO_ScrollList doesn't require `selectedData` to be actually
-    -- present in the list, and that the list will only be populated once LAM
-    -- "Addon Settings" menu entry is selected for the first time
-
-    local function openAddonSettingsMenu()
-        local gameMenu = ZO_GameMenu_InGame.gameMenu
-        local settingsMenu = gameMenu.headerControls[locSettings]
-
-        if settingsMenu then -- an instance of ZO_TreeNode
-            local children = settingsMenu:GetChildren()
-            for i = 1, (children and #children or 0) do
-                local childNode = children[i]
-                local data = childNode:GetData()
-                if data and data.id == lam.panelId then
-                    -- found LAM "Addon Settings" node, yay!
-                    childNode:GetTree():SelectNode(childNode)
-                    break
-                end
-            end
-        end
-    end
-
-    if sm:GetScene("gameMenuInGame"):GetState() == SCENE_SHOWN then
-        openAddonSettingsMenu()
-    else
-        sm:CallWhen("gameMenuInGame", SCENE_SHOWN, openAddonSettingsMenu)
-        sm:Show("gameMenuInGame")
-    end
-end
-
-local TwinOptionsContainer_Index = 0
-local function TwinOptionsContainer(parent, leftWidget, rightWidget)
-    TwinOptionsContainer_Index = TwinOptionsContainer_Index + 1
-    local cParent = parent.scroll or parent
-    local panel = parent.panel or cParent
-    local container = wm:CreateControl("$(parent)TwinContainer" .. tostring(TwinOptionsContainer_Index),
-        cParent, CT_CONTROL)
-    container:SetResizeToFitDescendents(true)
-    container:SetAnchor(select(2, leftWidget:GetAnchor(0) ))
-
-    leftWidget:ClearAnchors()
-    leftWidget:SetAnchor(TOPLEFT, container, TOPLEFT)
-    rightWidget:SetAnchor(TOPLEFT, leftWidget, TOPRIGHT, 5, 0)
-
-    leftWidget:SetWidth( leftWidget:GetWidth() - 2.5 ) -- fixes bad alignment with 'full' controls
-    rightWidget:SetWidth( rightWidget:GetWidth() - 2.5 )
-
-    leftWidget:SetParent(container)
-    rightWidget:SetParent(container)
-
-    container.data = {type = "container"}
-    container.panel = panel
-    return container
-end
-
---INTERNAL FUNCTION
---creates controls when options panel is first shown
---controls anchoring of these controls in the panel
-local function CreateOptionsControls(panel)
-    local addonID = panel:GetName()
-    if(optionsState[addonID] == OPTIONS_CREATED) then
-        return false
-    elseif(optionsState[addonID] == OPTIONS_CREATION_RUNNING) then
-        return true
-    end
-    optionsState[addonID] = OPTIONS_CREATION_RUNNING
-
-    local function CreationFinished()
-        optionsState[addonID] = OPTIONS_CREATED
-        cm:FireCallbacks("LAM-PanelControlsCreated", panel)
-        OpenCurrentPanel()
-    end
-
-    local optionsTable = addonToOptionsMap[addonID]
-    if optionsTable then
-        local function CreateAndAnchorWidget(parent, widgetData, offsetX, offsetY, anchorTarget, wasHalf)
-            local widget
-            local status, err = pcall(function() widget = LAMCreateControl[widgetData.type](parent, widgetData) end)
-            if not status then
-                return err or true, offsetY, anchorTarget, wasHalf
-            else
-                local isHalf = (widgetData.width == "half")
-                if not anchorTarget then -- the first widget in a panel is just placed in the top left corner
-                    widget:SetAnchor(TOPLEFT)
-                    anchorTarget = widget
-                elseif wasHalf and isHalf then -- when the previous widget was only half width and this one is too, we place it on the right side
-                    widget.lineControl = anchorTarget
-                    isHalf = false
-                    offsetY = 0
-                    anchorTarget = TwinOptionsContainer(parent, anchorTarget, widget)
-                else -- otherwise we just put it below the previous one normally
-                    widget:SetAnchor(TOPLEFT, anchorTarget, BOTTOMLEFT, 0, 15)
-                    offsetY = 0
-                    anchorTarget = widget
-                end
-                return false, offsetY, anchorTarget, isHalf
-            end
-        end
-
-        local THROTTLE_TIMEOUT, THROTTLE_COUNT = 10, 20
-        local fifo = {}
-        local anchorOffset, lastAddedControl, wasHalf
-        local CreateWidgetsInPanel, err
-
-        local function PrepareForNextPanel()
-            anchorOffset, lastAddedControl, wasHalf = 0, nil, false
-        end
-
-        local function SetupCreationCalls(parent, widgetDataTable)
-            fifo[#fifo + 1] = PrepareForNextPanel
-            local count = #widgetDataTable
-            for i = 1, count, THROTTLE_COUNT do
-                fifo[#fifo + 1] = function()
-                    CreateWidgetsInPanel(parent, widgetDataTable, i, zo_min(i + THROTTLE_COUNT - 1, count))
-                end
-            end
-            return count ~= NonContiguousCount(widgetDataTable)
-        end
-
-        CreateWidgetsInPanel = function(parent, widgetDataTable, startIndex, endIndex)
-            for i=startIndex,endIndex do
-                local widgetData = widgetDataTable[i]
-                if not widgetData then
-                    PrintLater("Skipped creation of missing entry in the settings menu of " .. addonID .. ".")
-                else
-                    local widgetType = widgetData.type
-                    local offsetX = 0
-                    local isSubmenu = (widgetType == "submenu")
-                    if isSubmenu then
-                        wasHalf = false
-                        offsetX = 5
-                    end
-
-                    err, anchorOffset, lastAddedControl, wasHalf = CreateAndAnchorWidget(parent, widgetData, offsetX, anchorOffset, lastAddedControl, wasHalf)
-                    if err then
-                        PrintLater(("Could not create %s '%s' of %s."):format(widgetData.type, GetStringFromValue(widgetData.name or "unnamed"), addonID))
-                    end
-
-                    if isSubmenu then
-                        if SetupCreationCalls(lastAddedControl, widgetData.controls) then
-                            PrintLater(("The sub menu '%s' of %s is missing some entries."):format(GetStringFromValue(widgetData.name or "unnamed"), addonID))
-                        end
-                    end
-                end
-            end
-        end
-
-        local function DoCreateSettings()
-            if #fifo > 0 then
-                local nextCall = table.remove(fifo, 1)
-                nextCall()
-                if(nextCall == PrepareForNextPanel) then
-                    DoCreateSettings()
-                else
-                    zo_callLater(DoCreateSettings, THROTTLE_TIMEOUT)
-                end
-            else
-                CreationFinished()
-            end
-        end
-
-        if SetupCreationCalls(panel, optionsTable) then
-            PrintLater(("The settings menu of %s is missing some entries."):format(addonID))
-        end
-        DoCreateSettings()
-    else
-        CreationFinished()
-    end
-
-    return true
-end
-
---INTERNAL FUNCTION
---handles switching between panels
-local function ToggleAddonPanels(panel) --called in OnShow of newly shown panel
-    local currentlySelected = lam.currentAddonPanel
-    if currentlySelected and currentlySelected ~= panel then
-        currentlySelected:SetHidden(true)
-        CloseCurrentPanel()
-    end
-    lam.currentAddonPanel = panel
-
-    -- refresh visible rows to reflect panel IsHidden status
-    ZO_ScrollList_RefreshVisible(lam.addonList)
-
-    if not CreateOptionsControls(panel) then
-        OpenCurrentPanel()
-    end
-
-    cm:FireCallbacks("LAM-RefreshPanel", panel)
-end
-
-local CheckSafetyAndInitialize
-
---METHOD: REGISTER ADDON PANEL
---registers your addon with LibAddonMenu and creates a panel
---Usage:
--- addonID = "string"; unique ID which will be the global name of your panel
--- panelData = table; data object for your panel - see controls\panel.lua
-function lam:RegisterAddonPanel(addonID, panelData)
-    CheckSafetyAndInitialize(addonID)
-    local container = lam:GetAddonPanelContainer()
-    local panel = lamcc.panel(container, panelData, addonID) --addonID==global name of panel
-    panel:SetHidden(true)
-    panel:SetAnchorFill(container)
-    panel:SetHandler("OnShow", ToggleAddonPanels)
-
-    local function stripMarkup(str)
-        return str:gsub("|[Cc]%x%x%x%x%x%x", ""):gsub("|[Rr]", "")
-    end
-
-    local filterParts = {panelData.name, nil, nil}
-    -- append keywords and author separately, the may be nil
-    filterParts[#filterParts + 1] = panelData.keywords
-    filterParts[#filterParts + 1] = panelData.author
-
-    local addonData = {
-        panel = panel,
-        name = stripMarkup(panelData.name),
-        filterText = stripMarkup(tconcat(filterParts, "\t")):lower(),
-    }
-
-    tinsert(addonsForList, addonData)
-
-    if panelData.slashCommand then
-        SLASH_COMMANDS[panelData.slashCommand] = function()
-            lam:OpenToPanel(panel)
-        end
-    end
-
-    return panel --return for authors creating options manually
-end
-
-
---METHOD: REGISTER OPTION CONTROLS
---registers the options you want shown for your addon
---these are stored in a table where each key-value pair is the order
---of the options in the panel and the data for that control, respectively
---see exampleoptions.lua for an example
---see controls\<widget>.lua for each widget type
---Usage:
--- addonID = "string"; the same string passed to :RegisterAddonPanel
--- optionsTable = table; the table containing all of the options controls and their data
-function lam:RegisterOptionControls(addonID, optionsTable) --optionsTable = {sliderData, buttonData, etc}
-    addonToOptionsMap[addonID] = optionsTable
-end
-
---INTERNAL FUNCTION
---creates LAM's Addon Settings entry in ZO_GameMenu
-local function CreateAddonSettingsMenuEntry()
-    local panelData = {
-        id = KEYBOARD_OPTIONS.currentPanelId,
-        name = util.L["PANEL_NAME"],
-    }
-
-    KEYBOARD_OPTIONS.currentPanelId = panelData.id + 1
-    KEYBOARD_OPTIONS.panelNames[panelData.id] = panelData.name
-
-    lam.panelId = panelData.id
-
-    local addonListSorted = false
-
-    function panelData.callback()
-        sm:AddFragment(lam:GetAddonSettingsFragment())
-        KEYBOARD_OPTIONS:ChangePanels(lam.panelId)
-
-        local title = LAMAddonSettingsWindow:GetNamedChild("Title")
-        title:SetText(panelData.name)
-
-        if not addonListSorted and #addonsForList > 0 then
-            local searchEdit = LAMAddonSettingsWindow:GetNamedChild("SearchFilterEdit")
-            --we're about to show our list for the first time - let's sort it
-            table.sort(addonsForList, function(a, b) return a.name < b.name end)
-            PopulateAddonList(lam.addonList, GetSearchFilterFunc(searchEdit))
-            addonListSorted = true
-        end
-    end
-
-    function panelData.unselectedCallback()
-        sm:RemoveFragment(lam:GetAddonSettingsFragment())
-        if SetCameraOptionsPreviewModeEnabled then -- available since API version 100011
-            SetCameraOptionsPreviewModeEnabled(false)
-        end
-    end
-
-    ZO_GameMenu_AddSettingPanel(panelData)
-end
-
-
---INTERNAL FUNCTION
---creates the left-hand menu in LAM's window
-local function CreateAddonList(name, parent)
-    local addonList = wm:CreateControlFromVirtual(name, parent, "ZO_ScrollList")
-
-    local function addonListRow_OnMouseDown(control, button)
-        if button == 1 then
-            local data = ZO_ScrollList_GetData(control)
-            ZO_ScrollList_SelectData(addonList, data, control)
-        end
-    end
-
-    local function addonListRow_OnMouseEnter(control)
-        ZO_ScrollList_MouseEnter(addonList, control)
-    end
-
-    local function addonListRow_OnMouseExit(control)
-        ZO_ScrollList_MouseExit(addonList, control)
-    end
-
-    local function addonListRow_Select(previouslySelectedData, selectedData, reselectingDuringRebuild)
-        if not reselectingDuringRebuild then
-            if previouslySelectedData then
-                previouslySelectedData.panel:SetHidden(true)
-            end
-            if selectedData then
-                selectedData.panel:SetHidden(false)
-                PlaySound(SOUNDS.MENU_SUBCATEGORY_SELECTION)
-            end
-        end
-    end
-
-    local function addonListRow_Setup(control, data)
-        control:SetText(data.name)
-        control:SetSelected(not data.panel:IsHidden())
-    end
-
-    ZO_ScrollList_AddDataType(addonList, ADDON_DATA_TYPE, "ZO_SelectableLabel", 28, addonListRow_Setup)
-    -- I don't know how to make highlights clear properly; they often
-    -- get stuck and after a while the list is full of highlighted rows
-    --ZO_ScrollList_EnableHighlight(addonList, "ZO_ThinListHighlight")
-    ZO_ScrollList_EnableSelection(addonList, "ZO_ThinListHighlight", addonListRow_Select)
-
-    local addonDataType = ZO_ScrollList_GetDataTypeTable(addonList, ADDON_DATA_TYPE)
-    local addonListRow_CreateRaw = addonDataType.pool.m_Factory
-
-    local function addonListRow_Create(pool)
-        local control = addonListRow_CreateRaw(pool)
-        control:SetHandler("OnMouseDown", addonListRow_OnMouseDown)
-        --control:SetHandler("OnMouseEnter", addonListRow_OnMouseEnter)
-        --control:SetHandler("OnMouseExit", addonListRow_OnMouseExit)
-        control:SetHeight(28)
-        control:SetFont("ZoFontHeader")
-        control:SetHorizontalAlignment(TEXT_ALIGN_LEFT)
-        control:SetVerticalAlignment(TEXT_ALIGN_CENTER)
-        control:SetWrapMode(TEXT_WRAP_MODE_ELLIPSIS)
-        return control
-    end
-
-    addonDataType.pool.m_Factory = addonListRow_Create
-
-    return addonList
-end
-
-
---INTERNAL FUNCTION
-local function CreateSearchFilterBox(name, parent)
-    local boxControl = wm:CreateControl(name, parent, CT_CONTROL)
-
-    local srchButton =  wm:CreateControl("$(parent)Button", boxControl, CT_BUTTON)
-    srchButton:SetDimensions(32, 32)
-    srchButton:SetAnchor(LEFT, nil, LEFT, 2, 0)
-    srchButton:SetNormalTexture("EsoUI/Art/LFG/LFG_tabIcon_groupTools_up.dds")
-    srchButton:SetPressedTexture("EsoUI/Art/LFG/LFG_tabIcon_groupTools_down.dds")
-    srchButton:SetMouseOverTexture("EsoUI/Art/LFG/LFG_tabIcon_groupTools_over.dds")
-
-    local srchEdit = wm:CreateControlFromVirtual("$(parent)Edit", boxControl, "ZO_DefaultEdit")
-    srchEdit:SetAnchor(LEFT, srchButton, RIGHT, 4, 1)
-    srchEdit:SetAnchor(RIGHT, nil, RIGHT, -4, 1)
-    srchEdit:SetColor(ZO_NORMAL_TEXT:UnpackRGBA())
-
-    local srchBg = wm:CreateControl("$(parent)Bg", boxControl, CT_BACKDROP)
-    srchBg:SetAnchorFill()
-    srchBg:SetAlpha(0)
-    srchBg:SetCenterColor(0, 0, 0, 0.5)
-    srchBg:SetEdgeColor(ZO_DISABLED_TEXT:UnpackRGBA())
-    srchBg:SetEdgeTexture("", 1, 1, 0, 0)
-
-    -- search backdrop should appear whenever you hover over either
-    -- the magnifying glass button or the edit field (which is only
-    -- visible when it contains some text), and also while the edit
-    -- field has keyboard focus
-
-    local srchActive = false
-    local srchHover = false
-
-    local function srchBgUpdateAlpha()
-        if srchActive or srchEdit:HasFocus() then
-            srchBg:SetAlpha(srchHover and 0.8 or 0.6)
-        else
-            srchBg:SetAlpha(srchHover and 0.6 or 0.0)
-        end
-    end
-
-    local function srchMouseEnter(control)
-        srchHover = true
-        srchBgUpdateAlpha()
-    end
-
-    local function srchMouseExit(control)
-        srchHover = false
-        srchBgUpdateAlpha()
-    end
-
-    boxControl:SetMouseEnabled(true)
-    boxControl:SetHitInsets(1, 1, -1, -1)
-    boxControl:SetHandler("OnMouseEnter", srchMouseEnter)
-    boxControl:SetHandler("OnMouseExit", srchMouseExit)
-
-    srchButton:SetHandler("OnMouseEnter", srchMouseEnter)
-    srchButton:SetHandler("OnMouseExit", srchMouseExit)
-
-    local focusLostTime = 0
-
-    srchButton:SetHandler("OnClicked", function(self)
-        srchEdit:Clear()
-        if GetFrameTimeMilliseconds() - focusLostTime < 100 then
-            -- re-focus the edit box if it lost focus due to this
-            -- button click (note that this handler may run a few
-            -- frames later)
-            srchEdit:TakeFocus()
-        end
-    end)
-
-    srchEdit:SetHandler("OnMouseEnter", srchMouseEnter)
-    srchEdit:SetHandler("OnMouseExit", srchMouseExit)
-    srchEdit:SetHandler("OnFocusGained", srchBgUpdateAlpha)
-
-    srchEdit:SetHandler("OnFocusLost", function()
-        focusLostTime = GetFrameTimeMilliseconds()
-        srchBgUpdateAlpha()
-    end)
-
-    srchEdit:SetHandler("OnEscape", function(self)
-        self:Clear()
-        self:LoseFocus()
-    end)
-
-    srchEdit:SetHandler("OnTextChanged", function(self)
-        local filterFunc = GetSearchFilterFunc(self)
-        if filterFunc then
-            srchActive = true
-            srchBg:SetEdgeColor(ZO_SECOND_CONTRAST_TEXT:UnpackRGBA())
-            srchButton:SetState(BSTATE_PRESSED)
-        else
-            srchActive = false
-            srchBg:SetEdgeColor(ZO_DISABLED_TEXT:UnpackRGBA())
-            srchButton:SetState(BSTATE_NORMAL)
-        end
-        srchBgUpdateAlpha()
-        PopulateAddonList(lam.addonList, filterFunc)
-        PlaySound(SOUNDS.SPINNER_DOWN)
-    end)
-
-    return boxControl
-end
-
-
---INTERNAL FUNCTION
---creates LAM's Addon Settings top-level window
-local function CreateAddonSettingsWindow()
-    local tlw = wm:CreateTopLevelWindow("LAMAddonSettingsWindow")
-    tlw:SetHidden(true)
-    tlw:SetDimensions(1010, 914) -- same height as ZO_OptionsWindow
-
-    ZO_ReanchorControlForLeftSidePanel(tlw)
-
-    -- create black background for the window (mimic ZO_RightFootPrintBackground)
-
-    local bgLeft = wm:CreateControl("$(parent)BackgroundLeft", tlw, CT_TEXTURE)
-    bgLeft:SetTexture("EsoUI/Art/Miscellaneous/centerscreen_left.dds")
-    bgLeft:SetDimensions(1024, 1024)
-    bgLeft:SetAnchor(TOPLEFT, nil, TOPLEFT)
-    bgLeft:SetDrawLayer(DL_BACKGROUND)
-    bgLeft:SetExcludeFromResizeToFitExtents(true)
-
-    local bgRight = wm:CreateControl("$(parent)BackgroundRight", tlw, CT_TEXTURE)
-    bgRight:SetTexture("EsoUI/Art/Miscellaneous/centerscreen_right.dds")
-    bgRight:SetDimensions(64, 1024)
-    bgRight:SetAnchor(TOPLEFT, bgLeft, TOPRIGHT)
-    bgRight:SetDrawLayer(DL_BACKGROUND)
-    bgRight:SetExcludeFromResizeToFitExtents(true)
-
-    -- create gray background for addon list (mimic ZO_TreeUnderlay)
-
-    local underlayLeft = wm:CreateControl("$(parent)UnderlayLeft", tlw, CT_TEXTURE)
-    underlayLeft:SetTexture("EsoUI/Art/Miscellaneous/centerscreen_indexArea_left.dds")
-    underlayLeft:SetDimensions(256, 1024)
-    underlayLeft:SetAnchor(TOPLEFT, bgLeft, TOPLEFT)
-    underlayLeft:SetDrawLayer(DL_BACKGROUND)
-    underlayLeft:SetExcludeFromResizeToFitExtents(true)
-
-    local underlayRight = wm:CreateControl("$(parent)UnderlayRight", tlw, CT_TEXTURE)
-    underlayRight:SetTexture("EsoUI/Art/Miscellaneous/centerscreen_indexArea_right.dds")
-    underlayRight:SetDimensions(128, 1024)
-    underlayRight:SetAnchor(TOPLEFT, underlayLeft, TOPRIGHT)
-    underlayRight:SetDrawLayer(DL_BACKGROUND)
-    underlayRight:SetExcludeFromResizeToFitExtents(true)
-
-    -- create title bar (mimic ZO_OptionsWindow)
-
-    local title = wm:CreateControl("$(parent)Title", tlw, CT_LABEL)
-    title:SetAnchor(TOPLEFT, nil, TOPLEFT, 65, 70)
-    title:SetFont("ZoFontWinH1")
-    title:SetModifyTextType(MODIFY_TEXT_TYPE_UPPERCASE)
-
-    local divider = wm:CreateControlFromVirtual("$(parent)Divider", tlw, "ZO_Options_Divider")
-    divider:SetAnchor(TOPLEFT, nil, TOPLEFT, 65, 108)
-
-    -- create search filter box
-
-    local srchBox = CreateSearchFilterBox("$(parent)SearchFilter", tlw)
-    srchBox:SetAnchor(TOPLEFT, nil, TOPLEFT, 63, 120)
-    srchBox:SetDimensions(260, 30)
-
-    -- create scrollable addon list
-
-    local addonList = CreateAddonList("$(parent)AddonList", tlw)
-    addonList:SetAnchor(TOPLEFT, nil, TOPLEFT, 65, 160)
-    addonList:SetDimensions(285, 665)
-
-    lam.addonList = addonList -- for easy access from elsewhere
-
-    -- create container for option panels
-
-    local panelContainer = wm:CreateControl("$(parent)PanelContainer", tlw, CT_CONTROL)
-    panelContainer:SetAnchor(TOPLEFT, nil, TOPLEFT, 365, 120)
-    panelContainer:SetDimensions(645, 675)
-
-    local defaultButton = wm:CreateControlFromVirtual("$(parent)ResetToDefaultButton", tlw, "ZO_DialogButton")
-    ZO_KeybindButtonTemplate_Setup(defaultButton, "OPTIONS_LOAD_DEFAULTS", HandleLoadDefaultsPressed, GetString(SI_OPTIONS_DEFAULTS))
-    defaultButton:SetAnchor(TOPLEFT, panelContainer, BOTTOMLEFT, 0, 2)
-    lam.defaultButton = defaultButton
-
-    local applyButton = wm:CreateControlFromVirtual("$(parent)ApplyButton", tlw, "ZO_DialogButton")
-    ZO_KeybindButtonTemplate_Setup(applyButton, "OPTIONS_APPLY_CHANGES", HandleReloadUIPressed, GetString(SI_ADDON_MANAGER_RELOAD))
-    applyButton:SetAnchor(TOPRIGHT, panelContainer, BOTTOMRIGHT, 0, 2)
-    applyButton:SetHidden(true)
-    lam.applyButton = applyButton
-
-    return tlw
-end
-
-
---INITIALIZING
-local safeToInitialize = false
-local hasInitialized = false
-
-local eventHandle = table.concat({MAJOR, MINOR}, "r")
-local function OnLoad(_, addonName)
-    -- wait for the first loaded event
-    em:UnregisterForEvent(eventHandle, EVENT_ADD_ON_LOADED)
-    safeToInitialize = true
-end
-em:RegisterForEvent(eventHandle, EVENT_ADD_ON_LOADED, OnLoad)
-
-local function OnActivated(_, initial)
-    em:UnregisterForEvent(eventHandle, EVENT_PLAYER_ACTIVATED)
-    FlushMessages()
-
-    local reopenPanel = RetrievePanelForReopening()
-    if not initial and reopenPanel then
-        lam:OpenToPanel(reopenPanel)
-    end
-end
-em:RegisterForEvent(eventHandle, EVENT_PLAYER_ACTIVATED, OnActivated)
-
-function CheckSafetyAndInitialize(addonID)
-    if not safeToInitialize then
-        local msg = string.format("The panel with id '%s' was registered before addon loading has completed. This might break the AddOn Settings menu.", addonID)
-        PrintLater(msg)
-    end
-    if not hasInitialized then
-        hasInitialized = true
-    end
-end
-
-
---TODO documentation
-function lam:GetAddonPanelContainer()
-    local fragment = lam:GetAddonSettingsFragment()
-    local window = fragment:GetControl()
-    return window:GetNamedChild("PanelContainer")
-end
-
-
---TODO documentation
-function lam:GetAddonSettingsFragment()
-    assert(hasInitialized or safeToInitialize)
-    if not LAMAddonSettingsFragment then
-        local window = CreateAddonSettingsWindow()
-        LAMAddonSettingsFragment = ZO_FadeSceneFragment:New(window, true, 100)
-        LAMAddonSettingsFragment:RegisterCallback("StateChange", function(oldState, newState)
-            if(newState == SCENE_FRAGMENT_SHOWN) then
-                InitKeybindActions()
-                PushActionLayerByName("OptionsWindow")
-                OpenCurrentPanel()
-            elseif(newState == SCENE_FRAGMENT_HIDDEN) then
-                CloseCurrentPanel()
-                RemoveActionLayerByName("OptionsWindow")
-                ShowReloadDialogIfNeeded()
-            end
-        end)
-        CreateAddonSettingsMenuEntry()
-    end
-    return LAMAddonSettingsFragment
-end
diff --git a/libs/LibAddonMenu-2.0/controls/button.lua b/libs/LibAddonMenu-2.0/controls/button.lua
deleted file mode 100644
index 82b5032..0000000
--- a/libs/LibAddonMenu-2.0/controls/button.lua
+++ /dev/null
@@ -1,91 +0,0 @@
---[[buttonData = {
-    type = "button",
-    name = "My Button", -- string id or function returning a string
-    func = function() end,
-    tooltip = "Button's tooltip text.", -- string id or function returning a string (optional)
-    width = "full", --or "half" (optional)
-    disabled = function() return db.someBooleanSetting end, --or boolean (optional)
-    icon = "icon\\path.dds", --(optional)
-    isDangerous = false, -- boolean, if set to true, the button text will be red and a confirmation dialog with the button label and warning text will show on click before the callback is executed (optional)
-    warning = "Will need to reload the UI.", --(optional)
-    reference = "MyAddonButton", -- unique global reference to control (optional)
-} ]]
-
-local widgetVersion = 11
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("button", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-
-local function UpdateDisabled(control)
-    local disable = control.data.disabled
-    if type(disable) == "function" then
-        disable = disable()
-    end
-    control.button:SetEnabled(not disable)
-end
-
---controlName is optional
-local MIN_HEIGHT = 28 -- default_button height
-local HALF_WIDTH_LINE_SPACING = 2
-function LAMCreateControl.button(parent, buttonData, controlName)
-    local control = LAM.util.CreateBaseControl(parent, buttonData, controlName)
-    control:SetMouseEnabled(true)
-
-    local width = control:GetWidth()
-    if control.isHalfWidth then
-        control:SetDimensions(width / 2, MIN_HEIGHT * 2 + HALF_WIDTH_LINE_SPACING)
-    else
-        control:SetDimensions(width, MIN_HEIGHT)
-    end
-
-    if buttonData.icon then
-        control.button = wm:CreateControl(nil, control, CT_BUTTON)
-        control.button:SetDimensions(26, 26)
-        control.button:SetNormalTexture(buttonData.icon)
-        control.button:SetPressedOffset(2, 2)
-    else
-        --control.button = wm:CreateControlFromVirtual(controlName.."Button", control, "ZO_DefaultButton")
-        control.button = wm:CreateControlFromVirtual(nil, control, "ZO_DefaultButton")
-        control.button:SetWidth(width / 3)
-        control.button:SetText(LAM.util.GetStringFromValue(buttonData.name))
-        if buttonData.isDangerous then control.button:SetNormalFontColor(ZO_ERROR_COLOR:UnpackRGBA()) end
-    end
-    local button = control.button
-    button:SetAnchor(control.isHalfWidth and CENTER or RIGHT)
-    button:SetClickSound("Click")
-    button.data = {tooltipText = LAM.util.GetStringFromValue(buttonData.tooltip)}
-    button:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter)
-    button:SetHandler("OnMouseExit", ZO_Options_OnMouseExit)
-    button:SetHandler("OnClicked", function(...)
-        local args = {...}
-        local function callback()
-            buttonData.func(unpack(args))
-            LAM.util.RequestRefreshIfNeeded(control)
-        end
-
-        if(buttonData.isDangerous) then
-            local title = LAM.util.GetStringFromValue(buttonData.name)
-            local body = LAM.util.GetStringFromValue(buttonData.warning)
-            LAM.util.ShowConfirmationDialog(title, body, callback)
-        else
-            callback()
-        end
-    end)
-
-    if buttonData.warning ~= nil then
-        control.warning = wm:CreateControlFromVirtual(nil, control, "ZO_Options_WarningIcon")
-        control.warning:SetAnchor(RIGHT, button, LEFT, -5, 0)
-        control.UpdateWarning = LAM.util.UpdateWarning
-        control:UpdateWarning()
-    end
-
-    if buttonData.disabled ~= nil then
-        control.UpdateDisabled = UpdateDisabled
-        control:UpdateDisabled()
-    end
-
-    LAM.util.RegisterForRefreshIfNeeded(control)
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/checkbox.lua b/libs/LibAddonMenu-2.0/controls/checkbox.lua
deleted file mode 100644
index 6696dd7..0000000
--- a/libs/LibAddonMenu-2.0/controls/checkbox.lua
+++ /dev/null
@@ -1,142 +0,0 @@
---[[checkboxData = {
-    type = "checkbox",
-    name = "My Checkbox", -- or string id or function returning a string
-    getFunc = function() return db.var end,
-    setFunc = function(value) db.var = value doStuff() end,
-    tooltip = "Checkbox's tooltip text.", -- or string id or function returning a string (optional)
-    width = "full", -- or "half" (optional)
-    disabled = function() return db.someBooleanSetting end, --or boolean (optional)
-    warning = "May cause permanent awesomeness.", -- or string id or function returning a string (optional)
-    requiresReload = false, -- boolean, if set to true, the warning text will contain a notice that changes are only applied after an UI reload and any change to the value will make the "Apply Settings" button appear on the panel which will reload the UI when pressed (optional)
-    default = defaults.var, -- a boolean or function that returns a boolean (optional)
-    reference = "MyAddonCheckbox", -- unique global reference to control (optional)
-} ]]
-
-
-local widgetVersion = 14
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("checkbox", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-
---label
-local enabledColor = ZO_DEFAULT_ENABLED_COLOR
-local enabledHLcolor = ZO_HIGHLIGHT_TEXT
-local disabledColor = ZO_DEFAULT_DISABLED_COLOR
-local disabledHLcolor = ZO_DEFAULT_DISABLED_MOUSEOVER_COLOR
---checkbox
-local checkboxColor = ZO_NORMAL_TEXT
-local checkboxHLcolor = ZO_HIGHLIGHT_TEXT
-
-
-local function UpdateDisabled(control)
-    local disable
-    if type(control.data.disabled) == "function" then
-        disable = control.data.disabled()
-    else
-        disable = control.data.disabled
-    end
-
-    control.label:SetColor((disable and ZO_DEFAULT_DISABLED_COLOR or control.value and ZO_DEFAULT_ENABLED_COLOR or ZO_DEFAULT_DISABLED_COLOR):UnpackRGBA())
-    control.checkbox:SetColor((disable and ZO_DEFAULT_DISABLED_COLOR or ZO_NORMAL_TEXT):UnpackRGBA())
-    --control:SetMouseEnabled(not disable)
-    --control:SetMouseEnabled(true)
-
-    control.isDisabled = disable
-end
-
-local function ToggleCheckbox(control)
-    if control.value then
-        control.label:SetColor(ZO_DEFAULT_ENABLED_COLOR:UnpackRGBA())
-        control.checkbox:SetText(control.checkedText)
-    else
-        control.label:SetColor(ZO_DEFAULT_DISABLED_COLOR:UnpackRGBA())
-        control.checkbox:SetText(control.uncheckedText)
-    end
-end
-
-local function UpdateValue(control, forceDefault, value)
-    if forceDefault then --if we are forcing defaults
-        value = LAM.util.GetDefaultValue(control.data.default)
-        control.data.setFunc(value)
-    elseif value ~= nil then --our value could be false
-        control.data.setFunc(value)
-        --after setting this value, let's refresh the others to see if any should be disabled or have their settings changed
-        LAM.util.RequestRefreshIfNeeded(control)
-    else
-        value = control.data.getFunc()
-    end
-    control.value = value
-
-    ToggleCheckbox(control)
-end
-
-local function OnMouseEnter(control)
-    ZO_Options_OnMouseEnter(control)
-
-    if control.isDisabled then return end
-
-    local label = control.label
-    if control.value then
-        label:SetColor(ZO_HIGHLIGHT_TEXT:UnpackRGBA())
-    else
-        label:SetColor(ZO_DEFAULT_DISABLED_MOUSEOVER_COLOR:UnpackRGBA())
-    end
-    control.checkbox:SetColor(ZO_HIGHLIGHT_TEXT:UnpackRGBA())
-end
-
-local function OnMouseExit(control)
-    ZO_Options_OnMouseExit(control)
-
-    if control.isDisabled then return end
-
-    local label = control.label
-    if control.value then
-        label:SetColor(ZO_DEFAULT_ENABLED_COLOR:UnpackRGBA())
-    else
-        label:SetColor(ZO_DEFAULT_DISABLED_COLOR:UnpackRGBA())
-    end
-    control.checkbox:SetColor(ZO_NORMAL_TEXT:UnpackRGBA())
-end
-
---controlName is optional
-function LAMCreateControl.checkbox(parent, checkboxData, controlName)
-    local control = LAM.util.CreateLabelAndContainerControl(parent, checkboxData, controlName)
-    control:SetHandler("OnMouseEnter", OnMouseEnter)
-    control:SetHandler("OnMouseExit", OnMouseExit)
-    control:SetHandler("OnMouseUp", function(control)
-        if control.isDisabled then return end
-        PlaySound(SOUNDS.DEFAULT_CLICK)
-        control.value = not control.value
-        control:UpdateValue(false, control.value)
-    end)
-
-    control.checkbox = wm:CreateControl(nil, control.container, CT_LABEL)
-    local checkbox = control.checkbox
-    checkbox:SetAnchor(LEFT, control.container, LEFT, 0, 0)
-    checkbox:SetFont("ZoFontGameBold")
-    checkbox:SetColor(ZO_NORMAL_TEXT:UnpackRGBA())
-    control.checkedText = GetString(SI_CHECK_BUTTON_ON):upper()
-    control.uncheckedText = GetString(SI_CHECK_BUTTON_OFF):upper()
-
-    if checkboxData.warning ~= nil or checkboxData.requiresReload then
-        control.warning = wm:CreateControlFromVirtual(nil, control, "ZO_Options_WarningIcon")
-        control.warning:SetAnchor(RIGHT, checkbox, LEFT, -5, 0)
-        control.UpdateWarning = LAM.util.UpdateWarning
-        control:UpdateWarning()
-    end
-
-    control.data.tooltipText = LAM.util.GetStringFromValue(checkboxData.tooltip)
-
-    control.UpdateValue = UpdateValue
-    control:UpdateValue()
-    if checkboxData.disabled ~= nil then
-        control.UpdateDisabled = UpdateDisabled
-        control:UpdateDisabled()
-    end
-
-    LAM.util.RegisterForRefreshIfNeeded(control)
-    LAM.util.RegisterForReloadIfNeeded(control)
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/colorpicker.lua b/libs/LibAddonMenu-2.0/controls/colorpicker.lua
deleted file mode 100644
index a57aab0..0000000
--- a/libs/LibAddonMenu-2.0/controls/colorpicker.lua
+++ /dev/null
@@ -1,106 +0,0 @@
---[[colorpickerData = {
-    type = "colorpicker",
-    name = "My Color Picker", -- or string id or function returning a string
-    getFunc = function() return db.r, db.g, db.b, db.a end, --(alpha is optional)
-    setFunc = function(r,g,b,a) db.r=r, db.g=g, db.b=b, db.a=a end, --(alpha is optional)
-    tooltip = "Color Picker's tooltip text.", -- or string id or function returning a string (optional)
-    width = "full", --or "half" (optional)
-    disabled = function() return db.someBooleanSetting end, --or boolean (optional)
-    warning = "May cause permanent awesomeness.", -- or string id or function returning a string (optional)
-    requiresReload = false, -- boolean, if set to true, the warning text will contain a notice that changes are only applied after an UI reload and any change to the value will make the "Apply Settings" button appear on the panel which will reload the UI when pressed (optional)
-    default = {r = defaults.r, g = defaults.g, b = defaults.b, a = defaults.a}, --(optional) table of default color values (or default = defaultColor, where defaultColor is a table with keys of r, g, b[, a]) or a function that returns the color
-    reference = "MyAddonColorpicker" -- unique global reference to control (optional)
-} ]]
-
-
-local widgetVersion = 13
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("colorpicker", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-
-local function UpdateDisabled(control)
-    local disable
-    if type(control.data.disabled) == "function" then
-        disable = control.data.disabled()
-    else
-        disable = control.data.disabled
-    end
-
-    if disable then
-        control.label:SetColor(ZO_DEFAULT_DISABLED_COLOR:UnpackRGBA())
-    else
-        control.label:SetColor(ZO_DEFAULT_ENABLED_COLOR:UnpackRGBA())
-    end
-
-    control.isDisabled = disable
-end
-
-local function UpdateValue(control, forceDefault, valueR, valueG, valueB, valueA)
-    if forceDefault then --if we are forcing defaults
-        local color = LAM.util.GetDefaultValue(control.data.default)
-        valueR, valueG, valueB, valueA = color.r, color.g, color.b, color.a
-        control.data.setFunc(valueR, valueG, valueB, valueA)
-    elseif valueR and valueG and valueB then
-        control.data.setFunc(valueR, valueG, valueB, valueA or 1)
-        --after setting this value, let's refresh the others to see if any should be disabled or have their settings changed
-        LAM.util.RequestRefreshIfNeeded(control)
-    else
-        valueR, valueG, valueB, valueA = control.data.getFunc()
-    end
-
-    control.thumb:SetColor(valueR, valueG, valueB, valueA or 1)
-end
-
-function LAMCreateControl.colorpicker(parent, colorpickerData, controlName)
-    local control = LAM.util.CreateLabelAndContainerControl(parent, colorpickerData, controlName)
-
-    control.color = control.container
-    local color = control.color
-
-    control.thumb = wm:CreateControl(nil, color, CT_TEXTURE)
-    local thumb = control.thumb
-    thumb:SetDimensions(36, 18)
-    thumb:SetAnchor(LEFT, color, LEFT, 4, 0)
-
-    color.border = wm:CreateControl(nil, color, CT_TEXTURE)
-    local border = color.border
-    border:SetTexture("EsoUI\\Art\\ChatWindow\\chatOptions_bgColSwatch_frame.dds")
-    border:SetTextureCoords(0, .625, 0, .8125)
-    border:SetDimensions(40, 22)
-    border:SetAnchor(CENTER, thumb, CENTER, 0, 0)
-
-    local function ColorPickerCallback(r, g, b, a)
-        control:UpdateValue(false, r, g, b, a)
-    end
-
-    control:SetHandler("OnMouseUp", function(self, btn, upInside)
-        if self.isDisabled then return end
-
-        if upInside then
-            local r, g, b, a = colorpickerData.getFunc()
-            COLOR_PICKER:Show(ColorPickerCallback, r, g, b, a, LAM.util.GetStringFromValue(colorpickerData.name))
-        end
-    end)
-
-    if colorpickerData.warning ~= nil or colorpickerData.requiresReload then
-        control.warning = wm:CreateControlFromVirtual(nil, control, "ZO_Options_WarningIcon")
-        control.warning:SetAnchor(RIGHT, control.color, LEFT, -5, 0)
-        control.UpdateWarning = LAM.util.UpdateWarning
-        control:UpdateWarning()
-    end
-
-    control.data.tooltipText = LAM.util.GetStringFromValue(colorpickerData.tooltip)
-
-    control.UpdateValue = UpdateValue
-    control:UpdateValue()
-    if colorpickerData.disabled ~= nil then
-        control.UpdateDisabled = UpdateDisabled
-        control:UpdateDisabled()
-    end
-
-    LAM.util.RegisterForRefreshIfNeeded(control)
-    LAM.util.RegisterForReloadIfNeeded(control)
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/custom.lua b/libs/LibAddonMenu-2.0/controls/custom.lua
deleted file mode 100644
index 40a7c42..0000000
--- a/libs/LibAddonMenu-2.0/controls/custom.lua
+++ /dev/null
@@ -1,35 +0,0 @@
---[[customData = {
-    type = "custom",
-    reference = "MyAddonCustomControl", --(optional) unique name for your control to use as reference
-    refreshFunc = function(customControl) end, --(optional) function to call when panel/controls refresh
-    width = "full", --or "half" (optional)
-} ]]
-
-local widgetVersion = 7
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("custom", widgetVersion) then return end
-
-local function UpdateValue(control)
-    if control.data.refreshFunc then
-        control.data.refreshFunc(control)
-    end
-end
-
-local MIN_HEIGHT = 26
-function LAMCreateControl.custom(parent, customData, controlName)
-    local control = LAM.util.CreateBaseControl(parent, customData, controlName)
-    local width = control:GetWidth()
-    control:SetResizeToFitDescendents(true)
-
-    if control.isHalfWidth then --note these restrictions
-        control:SetDimensionConstraints(width / 2, MIN_HEIGHT, width / 2, MIN_HEIGHT * 4)
-    else
-        control:SetDimensionConstraints(width, MIN_HEIGHT, width, MIN_HEIGHT * 4)
-    end
-
-    control.UpdateValue = UpdateValue
-
-    LAM.util.RegisterForRefreshIfNeeded(control)
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/description.lua b/libs/LibAddonMenu-2.0/controls/description.lua
deleted file mode 100644
index da207a0..0000000
--- a/libs/LibAddonMenu-2.0/controls/description.lua
+++ /dev/null
@@ -1,60 +0,0 @@
---[[descriptionData = {
-    type = "description",
-    text = "My description text to display.", -- or string id or function returning a string
-    title = "My Title", -- or string id or function returning a string (optional)
-    width = "full", --or "half" (optional)
-    reference = "MyAddonDescription" -- unique global reference to control (optional)
-} ]]
-
-
-local widgetVersion = 8
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("description", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-
-local function UpdateValue(control)
-    if control.title then
-        control.title:SetText(LAM.util.GetStringFromValue(control.data.title))
-    end
-    control.desc:SetText(LAM.util.GetStringFromValue(control.data.text))
-end
-
-function LAMCreateControl.description(parent, descriptionData, controlName)
-    local control = LAM.util.CreateBaseControl(parent, descriptionData, controlName)
-    local isHalfWidth = control.isHalfWidth
-    local width = control:GetWidth()
-    control:SetResizeToFitDescendents(true)
-
-    if isHalfWidth then
-        control:SetDimensionConstraints(width / 2, 0, width / 2, 0)
-    else
-        control:SetDimensionConstraints(width, 0, width, 0)
-    end
-
-    control.desc = wm:CreateControl(nil, control, CT_LABEL)
-    local desc = control.desc
-    desc:SetVerticalAlignment(TEXT_ALIGN_TOP)
-    desc:SetFont("ZoFontGame")
-    desc:SetText(LAM.util.GetStringFromValue(descriptionData.text))
-    desc:SetWidth(isHalfWidth and width / 2 or width)
-
-    if descriptionData.title then
-        control.title = wm:CreateControl(nil, control, CT_LABEL)
-        local title = control.title
-        title:SetWidth(isHalfWidth and width / 2 or width)
-        title:SetAnchor(TOPLEFT, control, TOPLEFT)
-        title:SetFont("ZoFontWinH4")
-        title:SetText(LAM.util.GetStringFromValue(descriptionData.title))
-        desc:SetAnchor(TOPLEFT, title, BOTTOMLEFT)
-    else
-        desc:SetAnchor(TOPLEFT)
-    end
-
-    control.UpdateValue = UpdateValue
-
-    LAM.util.RegisterForRefreshIfNeeded(control)
-
-    return control
-
-end
diff --git a/libs/LibAddonMenu-2.0/controls/divider.lua b/libs/LibAddonMenu-2.0/controls/divider.lua
deleted file mode 100644
index 8089539..0000000
--- a/libs/LibAddonMenu-2.0/controls/divider.lua
+++ /dev/null
@@ -1,45 +0,0 @@
---[[dividerData = {
-    type = "divider",
-    width = "full", --or "half" (optional)
-    height = 10, (optional)
-    alpha = 0.25, (optional)
-    reference = "MyAddonDivider" -- unique global reference to control (optional)
-} ]]
-
-
-local widgetVersion = 2
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("divider", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-
-local MIN_HEIGHT = 10
-local MAX_HEIGHT = 50
-local MIN_ALPHA = 0
-local MAX_ALPHA = 1
-local DEFAULT_ALPHA = 0.25
-
-local function GetValueInRange(value, min, max, default)
-    if not value or type(value) ~= "number" then
-        return default
-    end
-    return math.min(math.max(min, value), max)
-end
-
-function LAMCreateControl.divider(parent, dividerData, controlName)
-    local control = LAM.util.CreateBaseControl(parent, dividerData, controlName)
-    local isHalfWidth = control.isHalfWidth
-    local width = control:GetWidth()
-    local height = GetValueInRange(dividerData.height, MIN_HEIGHT, MAX_HEIGHT, MIN_HEIGHT)
-    local alpha = GetValueInRange(dividerData.alpha, MIN_ALPHA, MAX_ALPHA, DEFAULT_ALPHA)
-
-    control:SetDimensions(isHalfWidth and width / 2 or width, height)
-
-    control.divider = wm:CreateControlFromVirtual(nil, control, "ZO_Options_Divider")
-    local divider = control.divider
-    divider:SetWidth(isHalfWidth and width / 2 or width)
-    divider:SetAnchor(TOPLEFT)
-    divider:SetAlpha(alpha)
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/dropdown.lua b/libs/LibAddonMenu-2.0/controls/dropdown.lua
deleted file mode 100644
index 70e23bb..0000000
--- a/libs/LibAddonMenu-2.0/controls/dropdown.lua
+++ /dev/null
@@ -1,387 +0,0 @@
---[[dropdownData = {
-    type = "dropdown",
-    name = "My Dropdown", -- or string id or function returning a string
-    choices = {"table", "of", "choices"},
-    choicesValues = {"foo", 2, "three"}, -- if specified, these values will get passed to setFunc instead (optional)
-    getFunc = function() return db.var end,
-    setFunc = function(var) db.var = var doStuff() end,
-    tooltip = "Dropdown's tooltip text.", -- or string id or function returning a string (optional)
-    choicesTooltips = {"tooltip 1", "tooltip 2", "tooltip 3"}, -- or array of string ids or array of functions returning a string (optional)
-    sort = "name-up", --or "name-down", "numeric-up", "numeric-down", "value-up", "value-down", "numericvalue-up", "numericvalue-down" (optional) - if not provided, list will not be sorted
-    width = "full", --or "half" (optional)
-    scrollable = true, -- boolean or number, if set the dropdown will feature a scroll bar if there are a large amount of choices and limit the visible lines to the specified number or 10 if true is used (optional)
-    disabled = function() return db.someBooleanSetting end, --or boolean (optional)
-    warning = "May cause permanent awesomeness.", -- or string id or function returning a string (optional)
-    requiresReload = false, -- boolean, if set to true, the warning text will contain a notice that changes are only applied after an UI reload and any change to the value will make the "Apply Settings" button appear on the panel which will reload the UI when pressed (optional)
-    default = defaults.var, -- default value or function that returns the default value (optional)
-    reference = "MyAddonDropdown" -- unique global reference to control (optional)
-} ]]
-
-
-local widgetVersion = 18
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("dropdown", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-local SORT_BY_VALUE         = { ["value"] = {} }
-local SORT_BY_VALUE_NUMERIC = { ["value"] = { isNumeric = true } }
-local SORT_TYPES = {
-    name = ZO_SORT_BY_NAME,
-    numeric = ZO_SORT_BY_NAME_NUMERIC,
-    value = SORT_BY_VALUE,
-    numericvalue = SORT_BY_VALUE_NUMERIC,
-}
-local SORT_ORDERS = {
-    up = ZO_SORT_ORDER_UP,
-    down = ZO_SORT_ORDER_DOWN,
-}
-
-local function UpdateDisabled(control)
-    local disable
-    if type(control.data.disabled) == "function" then
-        disable = control.data.disabled()
-    else
-        disable = control.data.disabled
-    end
-
-    control.dropdown:SetEnabled(not disable)
-    if disable then
-        control.label:SetColor(ZO_DEFAULT_DISABLED_COLOR:UnpackRGBA())
-    else
-        control.label:SetColor(ZO_DEFAULT_ENABLED_COLOR:UnpackRGBA())
-    end
-end
-
-local function UpdateValue(control, forceDefault, value)
-    if forceDefault then --if we are forcing defaults
-        value = LAM.util.GetDefaultValue(control.data.default)
-        control.data.setFunc(value)
-        control.dropdown:SetSelectedItem(control.choices[value])
-    elseif value then
-        control.data.setFunc(value)
-        --after setting this value, let's refresh the others to see if any should be disabled or have their settings changed
-        LAM.util.RequestRefreshIfNeeded(control)
-    else
-        value = control.data.getFunc()
-        control.dropdown:SetSelectedItem(control.choices[value])
-    end
-end
-
-local function DropdownCallback(control, choiceText, choice)
-    choice.control:UpdateValue(false, choice.value or choiceText)
-end
-
-local function SetupTooltips(comboBox, choicesTooltips)
-    local function ShowTooltip(control)
-        InitializeTooltip(InformationTooltip, control, TOPLEFT, 0, 0, BOTTOMRIGHT)
-        SetTooltipText(InformationTooltip, LAM.util.GetStringFromValue(control.tooltip))
-        InformationTooltipTopLevel:BringWindowToTop()
-    end
-    local function HideTooltip(control)
-        ClearTooltip(InformationTooltip)
-    end
-
-    -- allow for tooltips on the drop down entries
-    local originalShow = comboBox.ShowDropdownInternal
-    comboBox.ShowDropdownInternal = function(comboBox)
-        originalShow(comboBox)
-        local entries = ZO_Menu.items
-        for i = 1, #entries do
-            local entry = entries[i]
-            local control = entries[i].item
-            control.tooltip = choicesTooltips[i]
-            entry.onMouseEnter = control:GetHandler("OnMouseEnter")
-            entry.onMouseExit = control:GetHandler("OnMouseExit")
-            ZO_PreHookHandler(control, "OnMouseEnter", ShowTooltip)
-            ZO_PreHookHandler(control, "OnMouseExit", HideTooltip)
-        end
-    end
-
-    local originalHide = comboBox.HideDropdownInternal
-    comboBox.HideDropdownInternal = function(self)
-        local entries = ZO_Menu.items
-        for i = 1, #entries do
-            local entry = entries[i]
-            local control = entries[i].item
-            control:SetHandler("OnMouseEnter", entry.onMouseEnter)
-            control:SetHandler("OnMouseExit", entry.onMouseExit)
-            control.tooltip = nil
-        end
-        originalHide(self)
-    end
-end
-
-local function UpdateChoices(control, choices, choicesValues, choicesTooltips)
-    control.dropdown:ClearItems() --remove previous choices --(need to call :SetSelectedItem()?)
-    ZO_ClearTable(control.choices)
-
-    --build new list of choices
-    local choices = choices or control.data.choices
-    local choicesValues = choicesValues or control.data.choicesValues
-    local choicesTooltips = choicesTooltips or control.data.choicesTooltips
-
-    if choicesValues then
-        assert(#choices == #choicesValues, "choices and choicesValues need to have the same size")
-    end
-
-    if choicesTooltips then
-        assert(#choices == #choicesTooltips, "choices and choicesTooltips need to have the same size")
-        if not control.scrollHelper then -- only do this for non-scrollable
-            SetupTooltips(control.dropdown, choicesTooltips)
-        end
-    end
-
-    for i = 1, #choices do
-        local entry = control.dropdown:CreateItemEntry(choices[i], DropdownCallback)
-        entry.control = control
-        if choicesValues then
-            entry.value = choicesValues[i]
-        end
-        if choicesTooltips and control.scrollHelper then
-            entry.tooltip = choicesTooltips[i]
-        end
-        control.choices[entry.value or entry.name] = entry.name
-        control.dropdown:AddItem(entry, not control.data.sort and ZO_COMBOBOX_SUPRESS_UPDATE) --if sort type/order isn't specified, then don't sort
-    end
-end
-
-local function GrabSortingInfo(sortInfo)
-    local t, i = {}, 1
-    for info in string.gmatch(sortInfo, "([^%-]+)") do
-        t[i] = info
-        i = i + 1
-    end
-
-    return t
-end
-
-local DEFAULT_VISIBLE_ROWS = 10
-local SCROLLABLE_ENTRY_TEMPLATE_HEIGHT = 25 -- same as in zo_combobox.lua
-local CONTENT_PADDING = 24
-local SCROLLBAR_PADDING = 16
-local PADDING = GetMenuPadding() / 2 -- half the amount looks closer to the regular dropdown
-local ROUNDING_MARGIN = 0.01 -- needed to avoid rare issue with too many anchors processed
-local ScrollableDropdownHelper = ZO_Object:Subclass()
-
-function ScrollableDropdownHelper:New(...)
-    local object = ZO_Object.New(self)
-    object:Initialize(...)
-    return object
-end
-
-function ScrollableDropdownHelper:Initialize(parent, control, visibleRows)
-    local combobox = control.combobox
-    local dropdown = control.dropdown
-    self.parent = parent
-    self.control = control
-    self.combobox = combobox
-    self.dropdown = dropdown
-    self.visibleRows = visibleRows
-
-    -- clear anchors so we can adjust the width dynamically
-    dropdown.m_dropdown:ClearAnchors()
-    dropdown.m_dropdown:SetAnchor(TOPLEFT, combobox, BOTTOMLEFT)
-
-    -- handle dropdown or settingsmenu opening/closing
-    local function onShow() self:OnShow() end
-    local function onHide() self:OnHide() end
-    local function doHide() self:DoHide() end
-
-    ZO_PreHook(dropdown, "ShowDropdownOnMouseUp", onShow)
-    ZO_PreHook(dropdown, "HideDropdownInternal", onHide)
-    combobox:SetHandler("OnEffectivelyHidden", onHide)
-    parent:SetHandler("OnEffectivelyHidden", doHide)
-
-    -- dont fade entries near the edges
-    local scrollList = dropdown.m_scroll
-    scrollList.selectionTemplate = nil
-    scrollList.highlightTemplate = nil
-    ZO_ScrollList_EnableSelection(scrollList, "ZO_SelectionHighlight")
-    ZO_ScrollList_EnableHighlight(scrollList, "ZO_SelectionHighlight")
-    ZO_Scroll_SetUseFadeGradient(scrollList, false)
-
-    -- adjust scroll content anchor to mimic menu padding
-    local scroll = dropdown.m_dropdown:GetNamedChild("Scroll")
-    local anchor1 = {scroll:GetAnchor(0)}
-    local anchor2 = {scroll:GetAnchor(1)}
-    scroll:ClearAnchors()
-    scroll:SetAnchor(anchor1[2], anchor1[3], anchor1[4], anchor1[5] + PADDING, anchor1[6] + PADDING)
-    scroll:SetAnchor(anchor2[2], anchor2[3], anchor2[4], anchor2[5] - PADDING, anchor2[6] - PADDING)
-    ZO_ScrollList_Commit(scrollList)
-
-    -- hook mouse enter/exit
-    local function onMouseEnter(control) self:OnMouseEnter(control) end
-    local function onMouseExit(control) self:OnMouseExit(control) end
-
-    -- adjust row setup to mimic the highlight padding
-    local dataType1 = ZO_ScrollList_GetDataTypeTable(dropdown.m_scroll, 1)
-    local dataType2 = ZO_ScrollList_GetDataTypeTable(dropdown.m_scroll, 2)
-    local oSetup = dataType1.setupCallback -- both types have the same setup function
-    local function SetupEntry(control, data, list)
-        oSetup(control, data, list)
-        control.m_label:SetAnchor(LEFT, nil, nil, 2)
-        -- no need to store old ones since we have full ownership of our dropdown controls
-        if not control.hookedMouseHandlers then --only do it once per control
-            control.hookedMouseHandlers = true
-            ZO_PreHookHandler(control, "OnMouseEnter", onMouseEnter)
-            ZO_PreHookHandler(control, "OnMouseExit", onMouseExit)
-            -- we could also just replace the handlers
-            --control:SetHandler("OnMouseEnter", onMouseEnter)
-            --control:SetHandler("OnMouseExit", onMouseExit)
-        end
-    end
-    dataType1.setupCallback = SetupEntry
-    dataType2.setupCallback = SetupEntry
-
-    -- adjust dimensions based on entries
-    local scrollContent = scroll:GetNamedChild("Contents")
-    ZO_PreHook(dropdown, "AddMenuItems", function()
-        local width = PADDING * 2 + zo_max(self:GetMaxWidth(), combobox:GetWidth())
-        local numItems = #dropdown.m_sortedItems
-        local anchorOffset = 0
-        if(numItems > self.visibleRows) then
-            width = width + CONTENT_PADDING + SCROLLBAR_PADDING
-            anchorOffset = -SCROLLBAR_PADDING
-            numItems = self.visibleRows
-        end
-        scrollContent:SetAnchor(BOTTOMRIGHT, nil, nil, anchorOffset)
-        local height = PADDING * 2 + numItems * (SCROLLABLE_ENTRY_TEMPLATE_HEIGHT + dropdown.m_spacing) - dropdown.m_spacing + ROUNDING_MARGIN
-        dropdown.m_dropdown:SetWidth(width)
-        dropdown.m_dropdown:SetHeight(height)
-    end)
-end
-
-function ScrollableDropdownHelper:OnShow()
-    local dropdown = self.dropdown
-    if dropdown.m_lastParent ~= ZO_Menus then
-        dropdown.m_lastParent = dropdown.m_dropdown:GetParent()
-        dropdown.m_dropdown:SetParent(ZO_Menus)
-        ZO_Menus:BringWindowToTop()
-    end
-end
-
-function ScrollableDropdownHelper:OnHide()
-    local dropdown = self.dropdown
-    if dropdown.m_lastParent then
-        dropdown.m_dropdown:SetParent(dropdown.m_lastParent)
-        dropdown.m_lastParent = nil
-    end
-end
-
-function ScrollableDropdownHelper:DoHide()
-    local dropdown = self.dropdown
-    if dropdown:IsDropdownVisible() then
-        dropdown:HideDropdown()
-    end
-end
-
-function ScrollableDropdownHelper:GetMaxWidth()
-    local dropdown = self.dropdown
-    local dataType = ZO_ScrollList_GetDataTypeTable(dropdown.m_scroll, 1)
-
-    local dummy = dataType.pool:AcquireObject()
-    dataType.setupCallback(dummy, {
-        m_owner = dropdown,
-        name = "Dummy"
-    }, dropdown)
-
-    local maxWidth = 0
-    local label = dummy.m_label
-    local entries = dropdown.m_sortedItems
-    local numItems = #entries
-    for index = 1, numItems do
-        label:SetText(entries[index].name)
-        local width = label:GetTextWidth()
-        if (width > maxWidth) then
-            maxWidth = width
-        end
-    end
-
-    dataType.pool:ReleaseObject(dummy.key)
-    return maxWidth
-end
-
-function ScrollableDropdownHelper:OnMouseEnter(control)
-    -- call original code if we replace instead of hook the handler
-        --ZO_ScrollableComboBox_Entry_OnMouseEnter(control)
-    -- show tooltip
-    if control.m_data.tooltip then
-        InitializeTooltip(InformationTooltip, control, TOPLEFT, 0, 0, BOTTOMRIGHT)
-        SetTooltipText(InformationTooltip, LAM.util.GetStringFromValue(control.m_data.tooltip))
-        InformationTooltipTopLevel:BringWindowToTop()
-    end
-end
-function ScrollableDropdownHelper:OnMouseExit(control)
-    -- call original code if we replace instead of hook the handler
-        --ZO_ScrollableComboBox_Entry_OnMouseExit(control)
-    -- hide tooltip
-    if control.m_data.tooltip then
-        ClearTooltip(InformationTooltip)
-    end
-end
-
-function LAMCreateControl.dropdown(parent, dropdownData, controlName)
-    local control = LAM.util.CreateLabelAndContainerControl(parent, dropdownData, controlName)
-    control.choices = {}
-
-    local countControl = parent
-    local name = parent:GetName()
-    if not name or #name == 0 then
-        countControl = LAMCreateControl
-        name = "LAM"
-    end
-    local comboboxCount = (countControl.comboboxCount or 0) + 1
-    countControl.comboboxCount = comboboxCount
-    control.combobox = wm:CreateControlFromVirtual(zo_strjoin(nil, name, "Combobox", comboboxCount), control.container, dropdownData.scrollable and "ZO_ScrollableComboBox" or "ZO_ComboBox")
-
-    local combobox = control.combobox
-    combobox:SetAnchor(TOPLEFT)
-    combobox:SetDimensions(control.container:GetDimensions())
-    combobox:SetHandler("OnMouseEnter", function() ZO_Options_OnMouseEnter(control) end)
-    combobox:SetHandler("OnMouseExit", function() ZO_Options_OnMouseExit(control) end)
-    control.dropdown = ZO_ComboBox_ObjectFromContainer(combobox)
-    local dropdown = control.dropdown
-    dropdown:SetSortsItems(false) -- need to sort ourselves in order to be able to sort by value
-
-    if dropdownData.scrollable then
-        local visibleRows = type(dropdownData.scrollable) == "number" and dropdownData.scrollable or DEFAULT_VISIBLE_ROWS
-        control.scrollHelper = ScrollableDropdownHelper:New(parent, control, visibleRows)
-    end
-
-    ZO_PreHook(dropdown, "UpdateItems", function(self)
-        assert(not self.m_sortsItems, "built-in dropdown sorting was reactivated, sorting is handled by LAM")
-        if control.m_sortOrder ~= nil and control.m_sortType then
-            local sortKey = next(control.m_sortType)
-            local sortFunc = function(item1, item2) return ZO_TableOrderingFunction(item1, item2, sortKey, control.m_sortType, control.m_sortOrder) end
-            table.sort(self.m_sortedItems, sortFunc)
-        end
-    end)
-
-    if dropdownData.sort then
-        local sortInfo = GrabSortingInfo(dropdownData.sort)
-        control.m_sortType, control.m_sortOrder = SORT_TYPES[sortInfo[1]], SORT_ORDERS[sortInfo[2]]
-    elseif dropdownData.choicesValues then
-        control.m_sortType, control.m_sortOrder = ZO_SORT_ORDER_UP, SORT_BY_VALUE
-    end
-
-    if dropdownData.warning ~= nil or dropdownData.requiresReload then
-        control.warning = wm:CreateControlFromVirtual(nil, control, "ZO_Options_WarningIcon")
-        control.warning:SetAnchor(RIGHT, combobox, LEFT, -5, 0)
-        control.UpdateWarning = LAM.util.UpdateWarning
-        control:UpdateWarning()
-    end
-
-    control.UpdateChoices = UpdateChoices
-    control:UpdateChoices(dropdownData.choices, dropdownData.choicesValues)
-    control.UpdateValue = UpdateValue
-    control:UpdateValue()
-    if dropdownData.disabled ~= nil then
-        control.UpdateDisabled = UpdateDisabled
-        control:UpdateDisabled()
-    end
-
-    LAM.util.RegisterForRefreshIfNeeded(control)
-    LAM.util.RegisterForReloadIfNeeded(control)
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/editbox.lua b/libs/LibAddonMenu-2.0/controls/editbox.lua
deleted file mode 100644
index d6baf11..0000000
--- a/libs/LibAddonMenu-2.0/controls/editbox.lua
+++ /dev/null
@@ -1,156 +0,0 @@
---[[editboxData = {
-    type = "editbox",
-    name = "My Editbox", -- or string id or function returning a string
-    getFunc = function() return db.text end,
-    setFunc = function(text) db.text = text doStuff() end,
-    tooltip = "Editbox's tooltip text.", -- or string id or function returning a string (optional)
-    isMultiline = true, --boolean (optional)
-    isExtraWide = true, --boolean (optional)
-    width = "full", --or "half" (optional)
-    disabled = function() return db.someBooleanSetting end, --or boolean (optional)
-    warning = "May cause permanent awesomeness.", -- or string id or function returning a string (optional)
-    requiresReload = false, -- boolean, if set to true, the warning text will contain a notice that changes are only applied after an UI reload and any change to the value will make the "Apply Settings" button appear on the panel which will reload the UI when pressed (optional)
-    default = defaults.text, -- default value or function that returns the default value (optional)
-    reference = "MyAddonEditbox" -- unique global reference to control (optional)
-} ]]
-
-
-local widgetVersion = 14
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("editbox", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-
-local function UpdateDisabled(control)
-    local disable
-    if type(control.data.disabled) == "function" then
-        disable = control.data.disabled()
-    else
-        disable = control.data.disabled
-    end
-
-    if disable then
-        control.label:SetColor(ZO_DEFAULT_DISABLED_COLOR:UnpackRGBA())
-        control.editbox:SetColor(ZO_DEFAULT_DISABLED_MOUSEOVER_COLOR:UnpackRGBA())
-    else
-        control.label:SetColor(ZO_DEFAULT_ENABLED_COLOR:UnpackRGBA())
-        control.editbox:SetColor(ZO_DEFAULT_ENABLED_COLOR:UnpackRGBA())
-    end
-    --control.editbox:SetEditEnabled(not disable)
-    control.editbox:SetMouseEnabled(not disable)
-end
-
-local function UpdateValue(control, forceDefault, value)
-    if forceDefault then --if we are forcing defaults
-        value = LAM.util.GetDefaultValue(control.data.default)
-        control.data.setFunc(value)
-        control.editbox:SetText(value)
-    elseif value then
-        control.data.setFunc(value)
-        --after setting this value, let's refresh the others to see if any should be disabled or have their settings changed
-        LAM.util.RequestRefreshIfNeeded(control)
-    else
-        value = control.data.getFunc()
-        control.editbox:SetText(value)
-    end
-end
-
-local MIN_HEIGHT = 24
-local HALF_WIDTH_LINE_SPACING = 2
-function LAMCreateControl.editbox(parent, editboxData, controlName)
-    local control = LAM.util.CreateLabelAndContainerControl(parent, editboxData, controlName)
-
-    local container = control.container
-    control.bg = wm:CreateControlFromVirtual(nil, container, "ZO_EditBackdrop")
-    local bg = control.bg
-    bg:SetAnchorFill()
-
-    if editboxData.isMultiline then
-        control.editbox = wm:CreateControlFromVirtual(nil, bg, "ZO_DefaultEditMultiLineForBackdrop")
-        control.editbox:SetHandler("OnMouseWheel", function(self, delta)
-            if self:HasFocus() then --only set focus to new spots if the editbox is currently in use
-                local cursorPos = self:GetCursorPosition()
-                local text = self:GetText()
-                local textLen = text:len()
-                local newPos
-                if delta > 0 then --scrolling up
-                    local reverseText = text:reverse()
-                    local revCursorPos = textLen - cursorPos
-                    local revPos = reverseText:find("\n", revCursorPos+1)
-                    newPos = revPos and textLen - revPos
-                else --scrolling down
-                    newPos = text:find("\n", cursorPos+1)
-                end
-                if newPos then --if we found a new line, then scroll, otherwise don't
-                    self:SetCursorPosition(newPos)
-                end
-            end
-        end)
-    else
-        control.editbox = wm:CreateControlFromVirtual(nil, bg, "ZO_DefaultEditForBackdrop")
-    end
-    local editbox = control.editbox
-    editbox:SetText(editboxData.getFunc())
-    editbox:SetMaxInputChars(3000)
-    editbox:SetHandler("OnFocusLost", function(self) control:UpdateValue(false, self:GetText()) end)
-    editbox:SetHandler("OnEscape", function(self) self:LoseFocus() control:UpdateValue(false, self:GetText()) end)
-    editbox:SetHandler("OnMouseEnter", function() ZO_Options_OnMouseEnter(control) end)
-    editbox:SetHandler("OnMouseExit", function() ZO_Options_OnMouseExit(control) end)
-
-    local MIN_WIDTH = (parent.GetWidth and (parent:GetWidth() / 10)) or (parent.panel.GetWidth and (parent.panel:GetWidth() / 10)) or 0
-
-    control.label:ClearAnchors()
-    container:ClearAnchors()
-
-    control.label:SetAnchor(TOPLEFT, control, TOPLEFT, 0, 0)
-    container:SetAnchor(BOTTOMRIGHT, control, BOTTOMRIGHT, 0, 0)
-
-    if control.isHalfWidth then
-        container:SetAnchor(BOTTOMRIGHT, control, BOTTOMRIGHT, 0, 0)
-    end
-
-    if editboxData.isExtraWide then
-        container:SetAnchor(BOTTOMLEFT, control, BOTTOMLEFT, 0, 0)
-    else
-        container:SetWidth(MIN_WIDTH * 3.2)
-    end
-
-    if editboxData.isMultiline then
-        container:SetHeight(MIN_HEIGHT * 3)
-    else
-        container:SetHeight(MIN_HEIGHT)
-    end
-
-    if control.isHalfWidth ~= true and editboxData.isExtraWide ~= true then
-        control:SetHeight(container:GetHeight())
-    else
-        control:SetHeight(container:GetHeight() + control.label:GetHeight())
-    end
-
-    editbox:ClearAnchors()
-    editbox:SetAnchor(TOPLEFT, container, TOPLEFT, 2, 2)
-    editbox:SetAnchor(BOTTOMRIGHT, container, BOTTOMRIGHT, -2, -2)
-
-    if editboxData.warning ~= nil or editboxData.requiresReload then
-        control.warning = wm:CreateControlFromVirtual(nil, control, "ZO_Options_WarningIcon")
-        if editboxData.isExtraWide then
-            control.warning:SetAnchor(BOTTOMRIGHT, control.bg, TOPRIGHT, 2, 0)
-        else
-            control.warning:SetAnchor(TOPRIGHT, control.bg, TOPLEFT, -5, 0)
-        end
-        control.UpdateWarning = LAM.util.UpdateWarning
-        control:UpdateWarning()
-    end
-
-    control.UpdateValue = UpdateValue
-    control:UpdateValue()
-    if editboxData.disabled ~= nil then
-        control.UpdateDisabled = UpdateDisabled
-        control:UpdateDisabled()
-    end
-
-    LAM.util.RegisterForRefreshIfNeeded(control)
-    LAM.util.RegisterForReloadIfNeeded(control)
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/header.lua b/libs/LibAddonMenu-2.0/controls/header.lua
deleted file mode 100644
index eadff38..0000000
--- a/libs/LibAddonMenu-2.0/controls/header.lua
+++ /dev/null
@@ -1,42 +0,0 @@
---[[headerData = {
-    type = "header",
-    name = "My Header", -- or string id or function returning a string
-    width = "full", --or "half" (optional)
-    reference = "MyAddonHeader" -- unique global reference to control (optional)
-} ]]
-
-
-local widgetVersion = 8
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("header", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-
-local function UpdateValue(control)
-    control.header:SetText(LAM.util.GetStringFromValue(control.data.name))
-end
-
-local MIN_HEIGHT = 30
-function LAMCreateControl.header(parent, headerData, controlName)
-    local control = LAM.util.CreateBaseControl(parent, headerData, controlName)
-    local isHalfWidth = control.isHalfWidth
-    local width = control:GetWidth()
-    control:SetDimensions(isHalfWidth and width / 2 or width, MIN_HEIGHT)
-
-    control.divider = wm:CreateControlFromVirtual(nil, control, "ZO_Options_Divider")
-    local divider = control.divider
-    divider:SetWidth(isHalfWidth and width / 2 or width)
-    divider:SetAnchor(TOPLEFT)
-
-    control.header = wm:CreateControlFromVirtual(nil, control, "ZO_Options_SectionTitleLabel")
-    local header = control.header
-    header:SetAnchor(TOPLEFT, divider, BOTTOMLEFT)
-    header:SetAnchor(BOTTOMRIGHT)
-    header:SetText(LAM.util.GetStringFromValue(headerData.name))
-
-    control.UpdateValue = UpdateValue
-
-    LAM.util.RegisterForRefreshIfNeeded(control)
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/iconpicker.lua b/libs/LibAddonMenu-2.0/controls/iconpicker.lua
deleted file mode 100644
index 65c7782..0000000
--- a/libs/LibAddonMenu-2.0/controls/iconpicker.lua
+++ /dev/null
@@ -1,436 +0,0 @@
---[[iconpickerData = {
-    type = "iconpicker",
-    name = "My Icon Picker", -- or string id or function returning a string
-    choices = {"texture path 1", "texture path 2", "texture path 3"},
-    getFunc = function() return db.var end,
-    setFunc = function(var) db.var = var doStuff() end,
-    tooltip = "Color Picker's tooltip text.", -- or string id or function returning a string (optional)
-    choicesTooltips = {"icon tooltip 1", "icon tooltip 2", "icon tooltip 3"}, -- or array of string ids or array of functions returning a string (optional)
-    maxColumns = 5, -- number of icons in one row (optional)
-    visibleRows = 4.5, -- number of visible rows (optional)
-    iconSize = 28, -- size of the icons (optional)
-    defaultColor = ZO_ColorDef:New("FFFFFF"), -- default color of the icons (optional)
-    width = "full", --or "half" (optional)
-    beforeShow = function(control, iconPicker) return preventShow end, --(optional)
-    disabled = function() return db.someBooleanSetting end, --or boolean (optional)
-    warning = "May cause permanent awesomeness.", -- or string id or function returning a string (optional)
-    requiresReload = false, -- boolean, if set to true, the warning text will contain a notice that changes are only applied after an UI reload and any change to the value will make the "Apply Settings" button appear on the panel which will reload the UI when pressed (optional)
-    default = defaults.var, -- default value or function that returns the default value (optional)
-    reference = "MyAddonIconPicker" -- unique global reference to control (optional)
-} ]]
-
-local widgetVersion = 8
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("iconpicker", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-
-local IconPickerMenu = ZO_Object:Subclass()
-local iconPicker
-LAM.util.GetIconPickerMenu = function()
-    if not iconPicker then
-        iconPicker = IconPickerMenu:New("LAMIconPicker")
-        local sceneFragment = LAM:GetAddonSettingsFragment()
-        ZO_PreHook(sceneFragment, "OnHidden", function()
-            if not iconPicker.control:IsHidden() then
-                iconPicker:Clear()
-            end
-        end)
-    end
-    return iconPicker
-end
-
-function IconPickerMenu:New(...)
-    local object = ZO_Object.New(self)
-    object:Initialize(...)
-    return object
-end
-
-function IconPickerMenu:Initialize(name)
-    local control = wm:CreateTopLevelWindow(name)
-    control:SetDrawTier(DT_HIGH)
-    control:SetHidden(true)
-    self.control = control
-
-    local scrollContainer = wm:CreateControlFromVirtual(name .. "ScrollContainer", control, "ZO_ScrollContainer")
-    -- control:SetDimensions(control.container:GetWidth(), height) -- adjust to icon size / col count
-    scrollContainer:SetAnchorFill()
-    ZO_Scroll_SetUseFadeGradient(scrollContainer, false)
-    ZO_Scroll_SetHideScrollbarOnDisable(scrollContainer, false)
-    ZO_VerticalScrollbarBase_OnMouseExit(scrollContainer:GetNamedChild("ScrollBar")) -- scrollbar initialization seems to be broken so we force it to update the correct alpha value
-    local scroll = GetControl(scrollContainer, "ScrollChild")
-    self.scroll = scroll
-    self.scrollContainer = scrollContainer
-
-    local bg = wm:CreateControl(nil, scrollContainer, CT_BACKDROP)
-    bg:SetAnchor(TOPLEFT, scrollContainer, TOPLEFT, 0, -3)
-    bg:SetAnchor(BOTTOMRIGHT, scrollContainer, BOTTOMRIGHT, 2, 5)
-    bg:SetEdgeTexture("EsoUI\\Art\\Tooltips\\UI-Border.dds", 128, 16)
-    bg:SetCenterTexture("EsoUI\\Art\\Tooltips\\UI-TooltipCenter.dds")
-    bg:SetInsets(16, 16, -16, -16)
-
-    local mungeOverlay = wm:CreateControl(nil, bg, CT_TEXTURE)
-    mungeOverlay:SetTexture("EsoUI/Art/Tooltips/munge_overlay.dds")
-    mungeOverlay:SetDrawLevel(1)
-    mungeOverlay:SetAddressMode(TEX_MODE_WRAP)
-    mungeOverlay:SetAnchorFill()
-
-    local mouseOver = wm:CreateControl(nil, scrollContainer, CT_TEXTURE)
-    mouseOver:SetDrawLevel(2)
-    mouseOver:SetTexture("EsoUI/Art/Buttons/minmax_mouseover.dds")
-    mouseOver:SetHidden(true)
-
-    local function IconFactory(pool)
-        local icon = wm:CreateControl(name .. "Entry" .. pool:GetNextControlId(), scroll, CT_TEXTURE)
-        icon:SetMouseEnabled(true)
-        icon:SetDrawLevel(3)
-        icon:SetHandler("OnMouseEnter", function()
-            mouseOver:SetAnchor(TOPLEFT, icon, TOPLEFT, 0, 0)
-            mouseOver:SetAnchor(BOTTOMRIGHT, icon, BOTTOMRIGHT, 0, 0)
-            mouseOver:SetHidden(false)
-            if self.customOnMouseEnter then
-                self.customOnMouseEnter(icon)
-            else
-                self:OnMouseEnter(icon)
-            end
-        end)
-        icon:SetHandler("OnMouseExit", function()
-            mouseOver:ClearAnchors()
-            mouseOver:SetHidden(true)
-            if self.customOnMouseExit then
-                self.customOnMouseExit(icon)
-            else
-                self:OnMouseExit(icon)
-            end
-        end)
-        icon:SetHandler("OnMouseUp", function(control, ...)
-            PlaySound("Click")
-            icon.OnSelect(icon, icon.texture)
-            self:Clear()
-        end)
-        return icon
-    end
-
-    local function ResetFunction(icon)
-        icon:ClearAnchors()
-    end
-
-    self.iconPool = ZO_ObjectPool:New(IconFactory, ResetFunction)
-    self:SetMaxColumns(1)
-    self.icons = {}
-    self.color = ZO_DEFAULT_ENABLED_COLOR
-
-    EVENT_MANAGER:RegisterForEvent(name .. "_OnGlobalMouseUp", EVENT_GLOBAL_MOUSE_UP, function()
-        if self.refCount ~= nil then
-            local moc = wm:GetMouseOverControl()
-            if(moc:GetOwningWindow() ~= control) then
-                self.refCount = self.refCount - 1
-                if self.refCount <= 0 then
-                    self:Clear()
-                end
-            end
-        end
-    end)
-end
-
-function IconPickerMenu:OnMouseEnter(icon)
-    InitializeTooltip(InformationTooltip, icon, TOPLEFT, 0, 0, BOTTOMRIGHT)
-    SetTooltipText(InformationTooltip, LAM.util.GetStringFromValue(icon.tooltip))
-    InformationTooltipTopLevel:BringWindowToTop()
-end
-
-function IconPickerMenu:OnMouseExit(icon)
-    ClearTooltip(InformationTooltip)
-end
-
-function IconPickerMenu:SetMaxColumns(value)
-    self.maxCols = value ~= nil and value or 5
-end
-
-local DEFAULT_SIZE = 28
-function IconPickerMenu:SetIconSize(value)
-    local iconSize = DEFAULT_SIZE
-    if value ~= nil then iconSize = math.max(iconSize, value) end
-    self.iconSize = iconSize
-end
-
-function IconPickerMenu:SetVisibleRows(value)
-    self.visibleRows = value ~= nil and value or 4.5
-end
-
-function IconPickerMenu:SetMouseHandlers(onEnter, onExit)
-    self.customOnMouseEnter = onEnter
-    self.customOnMouseExit = onExit
-end
-
-function IconPickerMenu:UpdateDimensions()
-    local iconSize = self.iconSize
-    local width = iconSize * self.maxCols + 20
-    local height = iconSize * self.visibleRows
-    self.control:SetDimensions(width, height)
-
-    local icons = self.icons
-    for i = 1, #icons do
-        local icon = icons[i]
-        icon:SetDimensions(iconSize, iconSize)
-    end
-end
-
-function IconPickerMenu:UpdateAnchors()
-    local iconSize = self.iconSize
-    local col, maxCols = 1, self.maxCols
-    local previousCol, previousRow
-    local scroll = self.scroll
-    local icons = self.icons
-
-    for i = 1, #icons do
-        local icon = icons[i]
-        icon:ClearAnchors()
-        if i == 1 then
-            icon:SetAnchor(TOPLEFT, scroll, TOPLEFT, 0, 0)
-            previousRow = icon
-        elseif col == 1 then
-            icon:SetAnchor(TOPLEFT, previousRow, BOTTOMLEFT, 0, 0)
-            previousRow = icon
-        else
-            icon:SetAnchor(TOPLEFT, previousCol, TOPRIGHT, 0, 0)
-        end
-        previousCol = icon
-        col = col >= maxCols and 1 or col + 1
-    end
-end
-
-function IconPickerMenu:Clear()
-    self.icons = {}
-    self.iconPool:ReleaseAllObjects()
-    self.control:SetHidden(true)
-    self.color = ZO_DEFAULT_ENABLED_COLOR
-    self.refCount = nil
-    self.parent = nil
-    self.customOnMouseEnter = nil
-    self.customOnMouseExit = nil
-end
-
-function IconPickerMenu:AddIcon(texturePath, callback, tooltip)
-    local icon, key = self.iconPool:AcquireObject()
-    icon:SetTexture(texturePath)
-    icon:SetColor(self.color:UnpackRGBA())
-    icon.texture = texturePath
-    icon.tooltip = tooltip
-    icon.OnSelect = callback
-    self.icons[#self.icons + 1] = icon
-end
-
-function IconPickerMenu:Show(parent)
-    if #self.icons == 0 then return false end
-    if not self.control:IsHidden() then self:Clear() return false end
-    self:UpdateDimensions()
-    self:UpdateAnchors()
-
-    local control = self.control
-    control:ClearAnchors()
-    control:SetAnchor(TOPLEFT, parent, BOTTOMLEFT, 0, 8)
-    control:SetHidden(false)
-    control:BringWindowToTop()
-    self.parent = parent
-    self.refCount = 2
-
-    return true
-end
-
-function IconPickerMenu:SetColor(color)
-    local icons = self.icons
-    self.color = color
-    for i = 1, #icons do
-        local icon = icons[i]
-        icon:SetColor(color:UnpackRGBA())
-    end
-end
-
--------------------------------------------------------------
-
-local function UpdateChoices(control, choices, choicesTooltips)
-    local data = control.data
-    if not choices then
-        choices, choicesTooltips = data.choices, data.choicesTooltips or {}
-    end
-    local addedChoices = {}
-
-    local iconPicker = LAM.util.GetIconPickerMenu()
-    iconPicker:Clear()
-    for i = 1, #choices do
-        local texture = choices[i]
-        if not addedChoices[texture] then -- remove duplicates
-            iconPicker:AddIcon(choices[i], function(self, texture)
-                control.icon:SetTexture(texture)
-                data.setFunc(texture)
-                LAM.util.RequestRefreshIfNeeded(control)
-            end, LAM.util.GetStringFromValue(choicesTooltips[i]))
-        addedChoices[texture] = true
-        end
-    end
-end
-
-local function IsDisabled(control)
-    if type(control.data.disabled) == "function" then
-        return control.data.disabled()
-    else
-        return control.data.disabled
-    end
-end
-
-local function SetColor(control, color)
-    local icon = control.icon
-    if IsDisabled(control) then
-        icon:SetColor(ZO_DEFAULT_DISABLED_COLOR:UnpackRGBA())
-    else
-        icon.color = color or control.data.defaultColor or ZO_DEFAULT_ENABLED_COLOR
-        icon:SetColor(icon.color:UnpackRGBA())
-    end
-
-    local iconPicker = LAM.util.GetIconPickerMenu()
-    if iconPicker.parent == control.container and not iconPicker.control:IsHidden() then
-        iconPicker:SetColor(icon.color)
-    end
-end
-
-local function UpdateDisabled(control)
-    local disable = IsDisabled(control)
-
-    control.dropdown:SetMouseEnabled(not disable)
-    control.dropdownButton:SetEnabled(not disable)
-
-    local iconPicker = LAM.util.GetIconPickerMenu()
-    if iconPicker.parent == control.container and not iconPicker.control:IsHidden() then
-        iconPicker:Clear()
-    end
-
-    SetColor(control, control.icon.color)
-    if disable then
-        control.label:SetColor(ZO_DEFAULT_DISABLED_COLOR:UnpackRGBA())
-    else
-        control.label:SetColor(ZO_DEFAULT_ENABLED_COLOR:UnpackRGBA())
-    end
-end
-
-local function UpdateValue(control, forceDefault, value)
-    if forceDefault then --if we are forcing defaults
-        value = LAM.util.GetDefaultValue(control.data.default)
-        control.data.setFunc(value)
-        control.icon:SetTexture(value)
-    elseif value then
-        control.data.setFunc(value)
-        --after setting this value, let's refresh the others to see if any should be disabled or have their settings changed
-        LAM.util.RequestRefreshIfNeeded(control)
-    else
-        value = control.data.getFunc()
-        control.icon:SetTexture(value)
-    end
-end
-
-local MIN_HEIGHT = 26
-local HALF_WIDTH_LINE_SPACING = 2
-local function SetIconSize(control, size)
-    local icon = control.icon
-    icon.size = size
-    icon:SetDimensions(size, size)
-
-    local height = size + 4
-    control.dropdown:SetDimensions(size + 20, height)
-    height = math.max(height, MIN_HEIGHT)
-    control.container:SetHeight(height)
-    if control.lineControl then
-        control.lineControl:SetHeight(MIN_HEIGHT + size + HALF_WIDTH_LINE_SPACING)
-    else
-        control:SetHeight(height)
-    end
-
-    local iconPicker = LAM.util.GetIconPickerMenu()
-    if iconPicker.parent == control.container and not iconPicker.control:IsHidden() then
-        iconPicker:SetIconSize(size)
-        iconPicker:UpdateDimensions()
-        iconPicker:UpdateAnchors()
-    end
-end
-
-function LAMCreateControl.iconpicker(parent, iconpickerData, controlName)
-    local control = LAM.util.CreateLabelAndContainerControl(parent, iconpickerData, controlName)
-
-    local function ShowIconPicker()
-        local iconPicker = LAM.util.GetIconPickerMenu()
-        if iconPicker.parent == control.container then
-            iconPicker:Clear()
-        else
-            iconPicker:SetMaxColumns(iconpickerData.maxColumns)
-            iconPicker:SetVisibleRows(iconpickerData.visibleRows)
-            iconPicker:SetIconSize(control.icon.size)
-            UpdateChoices(control)
-            iconPicker:SetColor(control.icon.color)
-            if iconpickerData.beforeShow then
-                if iconpickerData.beforeShow(control, iconPicker) then
-                    iconPicker:Clear()
-                    return
-                end
-            end
-            iconPicker:Show(control.container)
-        end
-    end
-
-    local iconSize = iconpickerData.iconSize ~= nil and iconpickerData.iconSize or DEFAULT_SIZE
-    control.dropdown = wm:CreateControl(nil, control.container, CT_CONTROL)
-    local dropdown = control.dropdown
-    dropdown:SetAnchor(LEFT, control.container, LEFT, 0, 0)
-    dropdown:SetMouseEnabled(true)
-    dropdown:SetHandler("OnMouseUp", ShowIconPicker)
-    dropdown:SetHandler("OnMouseEnter", function() ZO_Options_OnMouseEnter(control) end)
-    dropdown:SetHandler("OnMouseExit", function() ZO_Options_OnMouseExit(control) end)
-
-    control.icon = wm:CreateControl(nil, dropdown, CT_TEXTURE)
-    local icon = control.icon
-    icon:SetAnchor(LEFT, dropdown, LEFT, 3, 0)
-    icon:SetDrawLevel(2)
-
-    local dropdownButton = wm:CreateControlFromVirtual(nil, dropdown, "ZO_DropdownButton")
-    dropdownButton:SetDimensions(16, 16)
-    dropdownButton:SetHandler("OnClicked", ShowIconPicker)
-    dropdownButton:SetAnchor(RIGHT, dropdown, RIGHT, -3, 0)
-    control.dropdownButton = dropdownButton
-
-    control.bg = wm:CreateControl(nil, dropdown, CT_BACKDROP)
-    local bg = control.bg
-    bg:SetAnchor(TOPLEFT, dropdown, TOPLEFT, 0, -3)
-    bg:SetAnchor(BOTTOMRIGHT, dropdown, BOTTOMRIGHT, 2, 5)
-    bg:SetEdgeTexture("EsoUI/Art/Tooltips/UI-Border.dds", 128, 16)
-    bg:SetCenterTexture("EsoUI/Art/Tooltips/UI-TooltipCenter.dds")
-    bg:SetInsets(16, 16, -16, -16)
-    local mungeOverlay = wm:CreateControl(nil, bg, CT_TEXTURE)
-    mungeOverlay:SetTexture("EsoUI/Art/Tooltips/munge_overlay.dds")
-    mungeOverlay:SetDrawLevel(1)
-    mungeOverlay:SetAddressMode(TEX_MODE_WRAP)
-    mungeOverlay:SetAnchorFill()
-
-    if iconpickerData.warning ~= nil or iconpickerData.requiresReload then
-        control.warning = wm:CreateControlFromVirtual(nil, control, "ZO_Options_WarningIcon")
-        control.warning:SetAnchor(RIGHT, control.container, LEFT, -5, 0)
-        control.UpdateWarning = LAM.util.UpdateWarning
-        control:UpdateWarning()
-    end
-
-    control.UpdateChoices = UpdateChoices
-    control.UpdateValue = UpdateValue
-    control:UpdateValue()
-    control.SetColor = SetColor
-    control:SetColor()
-    control.SetIconSize = SetIconSize
-    control:SetIconSize(iconSize)
-
-    if iconpickerData.disabled ~= nil then
-        control.UpdateDisabled = UpdateDisabled
-        control:UpdateDisabled()
-    end
-
-    LAM.util.RegisterForRefreshIfNeeded(control)
-    LAM.util.RegisterForReloadIfNeeded(control)
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/panel.lua b/libs/LibAddonMenu-2.0/controls/panel.lua
deleted file mode 100644
index 1404686..0000000
--- a/libs/LibAddonMenu-2.0/controls/panel.lua
+++ /dev/null
@@ -1,126 +0,0 @@
---[[panelData = {
-    type = "panel",
-    name = "Window Title", -- or string id or function returning a string
-    displayName = "My Longer Window Title",  -- or string id or function returning a string (optional) (can be useful for long addon names or if you want to colorize it)
-    author = "Seerah",  -- or string id or function returning a string (optional)
-    version = "2.0",  -- or string id or function returning a string (optional)
-    website = "http://www.esoui.com/downloads/info7-LibAddonMenu.html", -- URL of website where the addon can be updated (optional)
-    keywords = "settings", -- additional keywords for search filter (it looks for matches in name..keywords..author) (optional)
-    slashCommand = "/myaddon", -- will register a keybind to open to this panel (don't forget to include the slash!) (optional)
-    registerForRefresh = true, --boolean (optional) (will refresh all options controls when a setting is changed and when the panel is shown)
-    registerForDefaults = true, --boolean (optional) (will set all options controls back to default values)
-    resetFunc = function() print("defaults reset") end, --(optional) custom function to run after settings are reset to defaults
-} ]]
-
-
-local widgetVersion = 13
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("panel", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-local cm = CALLBACK_MANAGER
-
-local function RefreshPanel(control)
-    local panel = LAM.util.GetTopPanel(control) --callback can be fired by a single control, by the panel showing or by a nested submenu
-    local panelControls = panel.controlsToRefresh
-
-    for i = 1, #panelControls do
-        local updateControl = panelControls[i]
-        if updateControl ~= control and updateControl.UpdateValue then
-            updateControl:UpdateValue()
-        end
-        if updateControl.UpdateDisabled then
-            updateControl:UpdateDisabled()
-        end
-        if updateControl.UpdateWarning then
-            updateControl:UpdateWarning()
-        end
-    end
-end
-
-local function ForceDefaults(panel)
-    local panelControls = panel.controlsToRefresh
-
-    for i = 1, #panelControls do
-        local updateControl = panelControls[i]
-        if updateControl.UpdateValue and updateControl.data.default ~= nil then
-            updateControl:UpdateValue(true)
-        end
-    end
-
-    if panel.data.resetFunc then
-        panel.data.resetFunc()
-    end
-
-    cm:FireCallbacks("LAM-RefreshPanel", panel)
-end
-
-local callbackRegistered = false
-LAMCreateControl.scrollCount = LAMCreateControl.scrollCount or 1
-local SEPARATOR = " - "
-local LINK_COLOR = ZO_ColorDef:New("5959D5")
-local LINK_MOUSE_OVER_COLOR = ZO_ColorDef:New("B8B8D3")
-
-function LAMCreateControl.panel(parent, panelData, controlName)
-    local control = wm:CreateControl(controlName, parent, CT_CONTROL)
-
-    control.label = wm:CreateControlFromVirtual(nil, control, "ZO_Options_SectionTitleLabel")
-    local label = control.label
-    label:SetAnchor(TOPLEFT, control, TOPLEFT, 0, 4)
-    label:SetText(LAM.util.GetStringFromValue(panelData.displayName or panelData.name))
-
-    if panelData.author or panelData.version then
-        control.info = wm:CreateControl(nil, control, CT_LABEL)
-        local info = control.info
-        info:SetFont(LAM.util.L["PANEL_INFO_FONT"])
-        info:SetAnchor(TOPLEFT, label, BOTTOMLEFT, 0, -2)
-
-        local output = {}
-        if panelData.author then
-            output[#output + 1] = zo_strformat(LAM.util.L["AUTHOR"], LAM.util.GetStringFromValue(panelData.author))
-        end
-        if panelData.version then
-            output[#output + 1] = zo_strformat(LAM.util.L["VERSION"], LAM.util.GetStringFromValue(panelData.version))
-        end
-        info:SetText(table.concat(output, SEPARATOR))
-    end
-
-    if panelData.website then
-        control.website = wm:CreateControl(nil, control, CT_BUTTON)
-        local website = control.website
-        website:SetClickSound("Click")
-        website:SetFont(LAM.util.L["PANEL_INFO_FONT"])
-        website:SetNormalFontColor(LINK_COLOR:UnpackRGBA())
-        website:SetMouseOverFontColor(LINK_MOUSE_OVER_COLOR:UnpackRGBA())
-        if(control.info) then
-            website:SetAnchor(TOPLEFT, control.info, TOPRIGHT, 0, 0)
-            website:SetText(string.format("|cffffff%s|r%s", SEPARATOR, LAM.util.L["WEBSITE"]))
-        else
-            website:SetAnchor(TOPLEFT, label, BOTTOMLEFT, 0, -2)
-            website:SetText(LAM.util.L["WEBSITE"])
-        end
-        website:SetDimensions(website:GetLabelControl():GetTextDimensions())
-        website:SetHandler("OnClicked", function()
-            RequestOpenUnsafeURL(panelData.website)
-        end)
-    end
-
-    control.container = wm:CreateControlFromVirtual("LAMAddonPanelContainer"..LAMCreateControl.scrollCount, control, "ZO_ScrollContainer")
-    LAMCreateControl.scrollCount = LAMCreateControl.scrollCount + 1
-    local container = control.container
-    container:SetAnchor(TOPLEFT, control.info or label, BOTTOMLEFT, 0, 20)
-    container:SetAnchor(BOTTOMRIGHT, control, BOTTOMRIGHT, -3, -3)
-    control.scroll = GetControl(control.container, "ScrollChild")
-    control.scroll:SetResizeToFitPadding(0, 20)
-
-    if panelData.registerForRefresh and not callbackRegistered then --don't want to register our callback more than once
-        cm:RegisterCallback("LAM-RefreshPanel", RefreshPanel)
-        callbackRegistered = true
-    end
-
-    control.ForceDefaults = ForceDefaults
-    control.data = panelData
-    control.controlsToRefresh = {}
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/slider.lua b/libs/LibAddonMenu-2.0/controls/slider.lua
deleted file mode 100644
index bd721c5..0000000
--- a/libs/LibAddonMenu-2.0/controls/slider.lua
+++ /dev/null
@@ -1,212 +0,0 @@
---[[sliderData = {
-    type = "slider",
-    name = "My Slider", -- or string id or function returning a string
-    getFunc = function() return db.var end,
-    setFunc = function(value) db.var = value doStuff() end,
-    min = 0,
-    max = 20,
-    step = 1, --(optional)
-    clampInput = true, -- boolean, if set to false the input won't clamp to min and max and allow any number instead (optional)
-    decimals = 0, -- when specified the input value is rounded to the specified number of decimals (optional)
-    autoSelect = false, -- boolean, automatically select everything in the text input field when it gains focus (optional)
-    inputLocation = "below", -- or "right", determines where the input field is shown. This should not be used within the addon menu and is for custom sliders (optional)
-    tooltip = "Slider's tooltip text.", -- or string id or function returning a string (optional)
-    width = "full", --or "half" (optional)
-    disabled = function() return db.someBooleanSetting end, --or boolean (optional)
-    warning = "May cause permanent awesomeness.", -- or string id or function returning a string (optional)
-    requiresReload = false, -- boolean, if set to true, the warning text will contain a notice that changes are only applied after an UI reload and any change to the value will make the "Apply Settings" button appear on the panel which will reload the UI when pressed (optional)
-    default = defaults.var, -- default value or function that returns the default value (optional)
-    reference = "MyAddonSlider" -- unique global reference to control (optional)
-} ]]
-
-local widgetVersion = 12
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("slider", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-local strformat = string.format
-
-local function RoundDecimalToPlace(d, place)
-    return tonumber(strformat("%." .. tostring(place) .. "f", d))
-end
-
-local function UpdateDisabled(control)
-    local disable
-    if type(control.data.disabled) == "function" then
-        disable = control.data.disabled()
-    else
-        disable = control.data.disabled
-    end
-
-    control.slider:SetEnabled(not disable)
-    control.slidervalue:SetEditEnabled(not disable)
-    if disable then
-        control.label:SetColor(ZO_DEFAULT_DISABLED_COLOR:UnpackRGBA())
-        control.minText:SetColor(ZO_DEFAULT_DISABLED_COLOR:UnpackRGBA())
-        control.maxText:SetColor(ZO_DEFAULT_DISABLED_COLOR:UnpackRGBA())
-        control.slidervalue:SetColor(ZO_DEFAULT_DISABLED_MOUSEOVER_COLOR:UnpackRGBA())
-    else
-        control.label:SetColor(ZO_DEFAULT_ENABLED_COLOR:UnpackRGBA())
-        control.minText:SetColor(ZO_DEFAULT_ENABLED_COLOR:UnpackRGBA())
-        control.maxText:SetColor(ZO_DEFAULT_ENABLED_COLOR:UnpackRGBA())
-        control.slidervalue:SetColor(ZO_DEFAULT_ENABLED_COLOR:UnpackRGBA())
-    end
-end
-
-local function UpdateValue(control, forceDefault, value)
-    if forceDefault then --if we are forcing defaults
-        value = LAM.util.GetDefaultValue(control.data.default)
-        control.data.setFunc(value)
-    elseif value then
-        if control.data.decimals then
-            value = RoundDecimalToPlace(value, control.data.decimals)
-        end
-        if control.data.clampInput ~= false then
-            value = math.max(math.min(value, control.data.max), control.data.min)
-        end
-        control.data.setFunc(value)
-        --after setting this value, let's refresh the others to see if any should be disabled or have their settings changed
-        LAM.util.RequestRefreshIfNeeded(control)
-    else
-        value = control.data.getFunc()
-    end
-
-    control.slider:SetValue(value)
-    control.slidervalue:SetText(value)
-end
-
-function LAMCreateControl.slider(parent, sliderData, controlName)
-    local control = LAM.util.CreateLabelAndContainerControl(parent, sliderData, controlName)
-    local isInputOnRight = sliderData.inputLocation == "right"
-
-    --skipping creating the backdrop...  Is this the actual slider texture?
-    control.slider = wm:CreateControl(nil, control.container, CT_SLIDER)
-    local slider = control.slider
-    slider:SetAnchor(TOPLEFT)
-    slider:SetHeight(14)
-    if(isInputOnRight) then
-        slider:SetAnchor(TOPRIGHT, nil, nil, -60)
-    else
-        slider:SetAnchor(TOPRIGHT)
-    end
-    slider:SetMouseEnabled(true)
-    slider:SetOrientation(ORIENTATION_HORIZONTAL)
-    --put nil for highlighted texture file path, and what look to be texture coords
-    slider:SetThumbTexture("EsoUI\\Art\\Miscellaneous\\scrollbox_elevator.dds", "EsoUI\\Art\\Miscellaneous\\scrollbox_elevator_disabled.dds", nil, 8, 16)
-    local minValue = sliderData.min
-    local maxValue = sliderData.max
-    slider:SetMinMax(minValue, maxValue)
-    slider:SetHandler("OnMouseEnter", function() ZO_Options_OnMouseEnter(control) end)
-    slider:SetHandler("OnMouseExit", function() ZO_Options_OnMouseExit(control) end)
-
-    slider.bg = wm:CreateControl(nil, slider, CT_BACKDROP)
-    local bg = slider.bg
-    bg:SetCenterColor(0, 0, 0)
-    bg:SetAnchor(TOPLEFT, slider, TOPLEFT, 0, 4)
-    bg:SetAnchor(BOTTOMRIGHT, slider, BOTTOMRIGHT, 0, -4)
-    bg:SetEdgeTexture("EsoUI\\Art\\Tooltips\\UI-SliderBackdrop.dds", 32, 4)
-
-    control.minText = wm:CreateControl(nil, slider, CT_LABEL)
-    local minText = control.minText
-    minText:SetFont("ZoFontGameSmall")
-    minText:SetAnchor(TOPLEFT, slider, BOTTOMLEFT)
-    minText:SetText(sliderData.min)
-
-    control.maxText = wm:CreateControl(nil, slider, CT_LABEL)
-    local maxText = control.maxText
-    maxText:SetFont("ZoFontGameSmall")
-    maxText:SetAnchor(TOPRIGHT, slider, BOTTOMRIGHT)
-    maxText:SetText(sliderData.max)
-
-    control.slidervalueBG = wm:CreateControlFromVirtual(nil, slider, "ZO_EditBackdrop")
-    if(isInputOnRight) then
-        control.slidervalueBG:SetDimensions(60, 26)
-        control.slidervalueBG:SetAnchor(LEFT, slider, RIGHT, 5, 0)
-    else
-        control.slidervalueBG:SetDimensions(50, 16)
-        control.slidervalueBG:SetAnchor(TOP, slider, BOTTOM, 0, 0)
-    end
-    control.slidervalue = wm:CreateControlFromVirtual(nil, control.slidervalueBG, "ZO_DefaultEditForBackdrop")
-    local slidervalue = control.slidervalue
-    slidervalue:ClearAnchors()
-    slidervalue:SetAnchor(TOPLEFT, control.slidervalueBG, TOPLEFT, 3, 1)
-    slidervalue:SetAnchor(BOTTOMRIGHT, control.slidervalueBG, BOTTOMRIGHT, -3, -1)
-    slidervalue:SetTextType(TEXT_TYPE_NUMERIC)
-    if(isInputOnRight) then
-        slidervalue:SetFont("ZoFontGameLarge")
-    else
-        slidervalue:SetFont("ZoFontGameSmall")
-    end
-
-    local isHandlingChange = false
-    local function HandleValueChanged(value)
-        if isHandlingChange then return end
-        if sliderData.decimals then
-            value = RoundDecimalToPlace(value, sliderData.decimals)
-        end
-        isHandlingChange = true
-        slider:SetValue(value)
-        slidervalue:SetText(value)
-        isHandlingChange = false
-    end
-
-    slidervalue:SetHandler("OnEscape", function(self)
-        HandleValueChanged(sliderData.getFunc())
-        self:LoseFocus()
-    end)
-    slidervalue:SetHandler("OnEnter", function(self)
-        self:LoseFocus()
-    end)
-    slidervalue:SetHandler("OnFocusLost", function(self)
-        local value = tonumber(self:GetText())
-        control:UpdateValue(false, value)
-    end)
-    slidervalue:SetHandler("OnTextChanged", function(self)
-        local input = self:GetText()
-        if(#input > 1 and not input:sub(-1):match("[0-9]")) then return end
-        local value = tonumber(input)
-        if(value) then
-            HandleValueChanged(value)
-        end
-    end)
-    if(sliderData.autoSelect) then
-        ZO_PreHookHandler(slidervalue, "OnFocusGained", function(self)
-            self:SelectAll()
-        end)
-    end
-
-    local range = maxValue - minValue
-    slider:SetValueStep(sliderData.step or 1)
-    slider:SetHandler("OnValueChanged", function(self, value, eventReason)
-        if eventReason == EVENT_REASON_SOFTWARE then return end
-        HandleValueChanged(value)
-    end)
-    slider:SetHandler("OnSliderReleased", function(self, value)
-        control:UpdateValue(false, value)
-    end)
-    slider:SetHandler("OnMouseWheel", function(self, value)
-        if(not self:GetEnabled()) then return end
-        local new_value = (tonumber(slidervalue:GetText()) or sliderData.min or 0) + ((sliderData.step or 1) * value)
-        control:UpdateValue(false, new_value)
-    end)
-
-    if sliderData.warning ~= nil or sliderData.requiresReload then
-        control.warning = wm:CreateControlFromVirtual(nil, control, "ZO_Options_WarningIcon")
-        control.warning:SetAnchor(RIGHT, slider, LEFT, -5, 0)
-        control.UpdateWarning = LAM.util.UpdateWarning
-        control:UpdateWarning()
-    end
-
-    control.UpdateValue = UpdateValue
-    control:UpdateValue()
-
-    if sliderData.disabled ~= nil then
-        control.UpdateDisabled = UpdateDisabled
-        control:UpdateDisabled()
-    end
-
-    LAM.util.RegisterForRefreshIfNeeded(control)
-    LAM.util.RegisterForReloadIfNeeded(control)
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/submenu.lua b/libs/LibAddonMenu-2.0/controls/submenu.lua
deleted file mode 100644
index 1766a1f..0000000
--- a/libs/LibAddonMenu-2.0/controls/submenu.lua
+++ /dev/null
@@ -1,108 +0,0 @@
---[[submenuData = {
-    type = "submenu",
-    name = "Submenu Title", -- or string id or function returning a string
-    tooltip = "My submenu tooltip", -- -- or string id or function returning a string (optional)
-    controls = {sliderData, buttonData} --(optional) used by LAM
-    reference = "MyAddonSubmenu" --(optional) unique global reference to control
-} ]]
-
-local widgetVersion = 11
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("submenu", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-local am = ANIMATION_MANAGER
-
-local function UpdateValue(control)
-    control.label:SetText(LAM.util.GetStringFromValue(control.data.name))
-    if control.data.tooltip then
-        control.label.data.tooltipText = LAM.util.GetStringFromValue(control.data.tooltip)
-    end
-end
-
-local function AnimateSubmenu(clicked)
-    local control = clicked:GetParent()
-    control.open = not control.open
-
-    if control.open then
-        control.animation:PlayFromStart()
-    else
-        control.animation:PlayFromEnd()
-    end
-end
-
-function LAMCreateControl.submenu(parent, submenuData, controlName)
-    local width = parent:GetWidth() - 45
-    local control = wm:CreateControl(controlName or submenuData.reference, parent.scroll or parent, CT_CONTROL)
-    control.panel = parent
-    control.data = submenuData
-
-    control.label = wm:CreateControlFromVirtual(nil, control, "ZO_Options_SectionTitleLabel")
-    local label = control.label
-    label:SetAnchor(TOPLEFT, control, TOPLEFT, 5, 5)
-    label:SetDimensions(width, 30)
-    label:SetWrapMode(TEXT_WRAP_MODE_ELLIPSIS)
-    label:SetText(LAM.util.GetStringFromValue(submenuData.name))
-    label:SetMouseEnabled(true)
-    if submenuData.tooltip then
-        label.data = {tooltipText = LAM.util.GetStringFromValue(submenuData.tooltip)}
-        label:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter)
-        label:SetHandler("OnMouseExit", ZO_Options_OnMouseExit)
-    end
-
-    control.scroll = wm:CreateControl(nil, control, CT_SCROLL)
-    local scroll = control.scroll
-    scroll:SetParent(control)
-    scroll:SetAnchor(TOPLEFT, label, BOTTOMLEFT, 0, 10)
-    scroll:SetDimensionConstraints(width + 5, 0, width + 5, 0)
-
-    control.bg = wm:CreateControl(nil, label, CT_BACKDROP)
-    local bg = control.bg
-    bg:SetAnchor(TOPLEFT, label, TOPLEFT, -5, -5)
-    bg:SetAnchor(BOTTOMRIGHT, scroll, BOTTOMRIGHT, -7, 0)
-    bg:SetEdgeTexture("EsoUI\\Art\\Tooltips\\UI-Border.dds", 128, 16)
-    bg:SetCenterTexture("EsoUI\\Art\\Tooltips\\UI-TooltipCenter.dds")
-    bg:SetInsets(16, 16, -16, -16)
-
-    control.arrow = wm:CreateControl(nil, bg, CT_TEXTURE)
-    local arrow = control.arrow
-    arrow:SetDimensions(28, 28)
-    arrow:SetTexture("EsoUI\\Art\\Miscellaneous\\list_sortdown.dds") --list_sortup for the other way
-    arrow:SetAnchor(TOPRIGHT, bg, TOPRIGHT, -5, 5)
-
-    --figure out the cool animation later...
-    control.animation = am:CreateTimeline()
-    local animation = control.animation
-    animation:SetPlaybackType(ANIMATION_SIZE, 0) --2nd arg = loop count
-
-    control:SetResizeToFitDescendents(true)
-    control.open = false
-    label:SetHandler("OnMouseUp", AnimateSubmenu)
-    animation:SetHandler("OnStop", function(self, completedPlaying)
-        scroll:SetResizeToFitDescendents(control.open)
-        if control.open then
-            control.arrow:SetTexture("EsoUI\\Art\\Miscellaneous\\list_sortup.dds")
-            scroll:SetResizeToFitPadding(5, 20)
-        else
-            control.arrow:SetTexture("EsoUI\\Art\\Miscellaneous\\list_sortdown.dds")
-            scroll:SetResizeToFitPadding(5, 0)
-            scroll:SetHeight(0)
-        end
-    end)
-
-    --small strip at the bottom of the submenu that you can click to close it
-    control.btmToggle = wm:CreateControl(nil, control, CT_TEXTURE)
-    local btmToggle = control.btmToggle
-    btmToggle:SetMouseEnabled(true)
-    btmToggle:SetAnchor(BOTTOMLEFT, control.scroll, BOTTOMLEFT)
-    btmToggle:SetAnchor(BOTTOMRIGHT, control.scroll, BOTTOMRIGHT)
-    btmToggle:SetHeight(15)
-    btmToggle:SetAlpha(0)
-    btmToggle:SetHandler("OnMouseUp", AnimateSubmenu)
-
-    control.UpdateValue = UpdateValue
-
-    LAM.util.RegisterForRefreshIfNeeded(control)
-
-    return control
-end
diff --git a/libs/LibAddonMenu-2.0/controls/texture.lua b/libs/LibAddonMenu-2.0/controls/texture.lua
deleted file mode 100644
index 29dda7c..0000000
--- a/libs/LibAddonMenu-2.0/controls/texture.lua
+++ /dev/null
@@ -1,45 +0,0 @@
---[[textureData = {
-    type = "texture",
-    image = "file/path.dds",
-    imageWidth = 64, --max of 250 for half width, 510 for full
-    imageHeight = 32, --max of 100
-    tooltip = "Image's tooltip text.", -- or string id or function returning a string (optional)
-    width = "full", --or "half" (optional)
-    reference = "MyAddonTexture" --(optional) unique global reference to control
-} ]]
-
---add texture coords support?
-
-local widgetVersion = 9
-local LAM = LibStub("LibAddonMenu-2.0")
-if not LAM:RegisterWidget("texture", widgetVersion) then return end
-
-local wm = WINDOW_MANAGER
-
-local MIN_HEIGHT = 26
-function LAMCreateControl.texture(parent, textureData, controlName)
-    local control = LAM.util.CreateBaseControl(parent, textureData, controlName)
-    local width = control:GetWidth()
-    control:SetResizeToFitDescendents(true)
-
-    if control.isHalfWidth then --note these restrictions
-        control:SetDimensionConstraints(width / 2, MIN_HEIGHT, width / 2, MIN_HEIGHT * 4)
-    else
-        control:SetDimensionConstraints(width, MIN_HEIGHT, width, MIN_HEIGHT * 4)
-    end
-
-    control.texture = wm:CreateControl(nil, control, CT_TEXTURE)
-    local texture = control.texture
-    texture:SetAnchor(CENTER)
-    texture:SetDimensions(textureData.imageWidth, textureData.imageHeight)
-    texture:SetTexture(textureData.image)
-
-    if textureData.tooltip then
-        texture:SetMouseEnabled(true)
-        texture.data = {tooltipText = LAM.util.GetStringFromValue(textureData.tooltip)}
-        texture:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter)
-        texture:SetHandler("OnMouseExit", ZO_Options_OnMouseExit)
-    end
-
-    return control
-end
diff --git a/libs/LibAsync/LibAsync.lua b/libs/LibAsync/LibAsync.lua
deleted file mode 100644
index 8127aec..0000000
--- a/libs/LibAsync/LibAsync.lua
+++ /dev/null
@@ -1,370 +0,0 @@
-local MAJOR, MINOR = "LibAsync", 1.7
-local async, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
-if not async then return end -- the same or newer version of this lib is already loaded into memory
-
-if async.Unload then
-	async:Unload()
-end
-
-local em = GetEventManager()
-local remove, min = table.remove, math.min
-
-local function RemoveCall(job, callstackIndex)
-	remove(job.callstack, callstackIndex)
-	job.lastCallIndex = min(job.lastCallIndex, #job.callstack)
-end
-
-local current, call
-local function safeCall() return call(current) end
-
-local function DoCallback(job, callstackIndex)
-	local success, shouldContinue = pcall(safeCall)
-	if success then
-		-- If the call returns true, the call wants to be called again
-		if not shouldContinue then RemoveCall(job, callstackIndex) end
-	else
-		-- shouldContinue is the value returned by error or assert
-		job.Error = shouldContinue
-		RemoveCall(job, callstackIndex)
-
-		call = job.onError
-		if call then
-			pcall(safeCall)
-		else
-			job:Suspend()
-			error(job.Error)
-		end
-	end
-end
-
-local jobs = async.jobs or { }
-async.jobs = jobs
--- async.registered = { }
-
-local function DoJob(job)
-	current = job
-	local index = #job.callstack
-	call = job.callstack[index]
-	if call then
-		DoCallback(job, index)
-	else
-		-- assert(index == 0, "No call on non-empty stack?!")
-		jobs[job.name] = nil
-		call = job.finally
-		if call then pcall(safeCall) end
-	end
-	current, call = nil, nil
-end
-
--- time we can spend until the next frame must be shown
-local frameTimeTarget = GetCVar("VSYNC") == "1" and 14 or(tonumber(GetCVar("MinFrameTime.2")) * 1000)
-
--- we allow a function to use 25% of the frame time before it gets critical
-local spendTimeDef = frameTimeTarget * 0.75
-local spendTimeDefNoHUD = 15
-local spendTime = spendTimeDef
-
-local debug = false
-
-local running
-local GetFrameTimeMilliseconds, GetGameTimeMilliseconds = GetFrameTimeMilliseconds, GetGameTimeMilliseconds
-
-local function GetThreshold()
-	return(HUD_SCENE:IsShowing() or HUD_UI_SCENE:IsShowing()) and spendTimeDef or spendTimeDefNoHUD
-end
-
-local job = nil
-local cpuLoad = 0
-local name
-local function Scheduler()
-	if not running then return end
-
-	job = nil
-	local start = GetFrameTimeMilliseconds()
-	local runTime, cpuLoad = start, GetGameTimeMilliseconds() - start
-	if cpuLoad > spendTime then
-		spendTime = math.min(30, spendTime + spendTime * 0.02)
-		if debug then
-			df("initial gap: %ims. skip. new threshold: %ims", GetGameTimeMilliseconds() - start, spendTime)
-		end
-		return
-	end
-	if debug then
-		df("initial gap: %ims", GetGameTimeMilliseconds() - start)
-	end
-	while (GetGameTimeMilliseconds() - start) <= spendTime do
-		name, job = next(jobs, name)
-		if not job then name, job = next(jobs) end
-		if job then
-			runTime = GetGameTimeMilliseconds()
-			DoJob(job)
-			spendTime = spendTime - 0.001
-		else
-			-- Finished
-			running = false
-			spendTime = GetThreshold()
-			return
-		end
-	end
-	-- spendTime = GetThreshold()
-	if debug and job then
-		local now = GetGameTimeMilliseconds()
-		local freezeTime = now - start
-		if freezeTime >= 16 then
-			runTime = now - runTime
-			df("%s freeze. allowed: %ims, used %ims, resulting fps %i.", job.name, spendTime, runTime, 1000 / freezeTime)
-		end
-	end
-end
-
-function async:GetDebug()
-	return debug
-end
-
-function async:SetDebug(enabled)
-	debug = enabled
-end
-
-function async:GetCpuLoad()
-	return cpuLoad / frameTimeTarget
-end
-
--- Class task
-
-local task = async.task or ZO_Object:Subclass()
-async.task = task
-
--- Called from async:Create()
-function task:New(name)
-	local instance = ZO_Object.New(self)
-	instance.name = name or tostring(instance)
-	instance:Initialize()
-	return instance
-end
-
-function task:Initialize()
-	self.callstack = { }
-	self.lastCallIndex = 0
-	-- async.registered[#async.registered + 1] = self
-end
-
--- Resume the execution context.
-function task:Resume()
-	running = true
-	jobs[self.name] = self
-	return self
-end
-
--- Suspend the execution context and allow to resume anytime later.
-function task:Suspend()
-	jobs[self.name] = nil
-	return self
-end
-
--- Interupt and fully stop the execution context. Can be called from outside to stop everything.
-function task:Cancel()
-	ZO_ClearNumericallyIndexedTable(self.callstack)
-	self.lastCallIndex = 0
-	if jobs[self.name] then
-		if not self.finally then
-			jobs[self.name] = nil
-			-- else run job with empty callstack to run finalizer
-		end
-	end
-	return self
-end
-
-do
-	-- Run the given FuncOfTask in your task context execution.
-	function task:Call(funcOfTask)
-		self.lastCallIndex = #self.callstack + 1
-		self.callstack[self.lastCallIndex] = funcOfTask
-		return self:Resume()
-	end
-
-	local insert = table.insert
-	-- Continue your task context execution with the given FuncOfTask after the previous as finished.
-	function task:Then(funcOfTask)
-		-- assert(self.lastCallIndex > 0 and self.lastCallIndex <= #self.callstack, "cap!")
-		insert(self.callstack, self.lastCallIndex, funcOfTask)
-		return self
-	end
-end
-
--- Start an interruptible for-loop.
-function task:For(p1, p2, p3)
-	-- If called as a normal job, false will prevent it is kept in callstack doing an endless loop
-	self.callstack[#self.callstack + 1] = function() return false, p1, p2, p3 end
-	return self
-end
-
-do
-	local function ForConditionAlreadyFalse() end
-	local function ContinueForward(index, endIndex) return index <= endIndex end
-	local function ContinueBackward(index, endIndex) return index >= endIndex end
-
-	local function asyncForWithStep(self, func, index, endIndex, step)
-		step = step or 1
-		if step == 0 then error("step is zero") end
-
-		local ShouldContinue
-		if step > 0 then
-			if index > endIndex then return ForConditionAlreadyFalse end
-			ShouldContinue = ContinueForward
-		else
-			if index < endIndex then return ForConditionAlreadyFalse end
-			ShouldContinue = ContinueBackward
-		end
-		return function()
-			if func(index) ~= async.BREAK then
-				index = index + step
-				return ShouldContinue(index, endIndex)
-			end
-		end
-	end
-
-	local function asyncForPairs(self, func, iter, list, key)
-		return function()
-			local value
-			key, value = iter(list, key)
-			return key and func(key, value) ~= async.BREAK
-		end
-	end
-
-	-- Execute the async-for with the given step-function. The parameters of the step-function are those you would use in your for body.
-	function task:Do(func)
-		local callstackIndex = #self.callstack
-		local shouldBeFalse, p1, p2, p3 = self.callstack[callstackIndex]()
-		assert(shouldBeFalse == false and p1, "Do without For")
-		remove(self.callstack, callstackIndex)
-
-		local DoLoop = type(p1) == "number" and
-		asyncForWithStep(self, func, p1, p2, p3) or
-		asyncForPairs(self, func, p1, p2, p3)
-
-		if current or #self.callstack == 0 then return self:Call(DoLoop) else return self:Then(DoLoop) end
-	end
-end
-
--- Suspend the execution of your task context for the given delay in milliseconds and then call the given FuncOfTask to continue.
-function task:Delay(delay, funcOfTask)
-	self:StopTimer()
-	if delay < 10 then return self:Call(funcOfTask) end
-	self:Suspend()
-	em:RegisterForUpdate(self.name, delay, function()
-		em:UnregisterForUpdate(self.name)
-		self:Call(funcOfTask)
-	end )
-	return self
-end
-
--- Stop the delay created by task:Delay or task:Interval.
-function task:StopTimer()
-	em:UnregisterForUpdate(self.name)
-	return self
-end
-
--- Set a FuncOfTask as a final handler. If you call Called if something went wrong in your context.
-function task:Finally(funcOfTask)
-	self.finally = funcOfTask
-	return self
-end
-
--- Set a FuncOfTask as an error handler. Called if something went wrong in your context.
-function task:OnError(funcOfTask)
-	self.onError = funcOfTask
-	return self
-end
-
-do
-	-- Thanks to: https://de.wikipedia.org/wiki/Quicksort
-
-	local function simpleCompare(a, b) return a < b end
-	local function sort(task, array, compare)
-		local function quicksort(left, right)
-			if left >= right then return end
-
-			-- partition
-			local i, j, pivot = left, right - 1, array[right]
-
-			task:Call( function()
-				while i < right and compare(array[i], pivot) do i = i + 1 end
-				while j > left and not compare(array[j], pivot) do j = j - 1 end
-				if i < j then
-					array[i], array[j] = array[j], array[i]
-					-- repeatly call this function until i >= j
-					return true
-				end
-			end )
-			task:Then( function()
-				if compare(pivot, array[i]) then array[i], array[right] = array[right], array[i] end
-				quicksort(left, i - 1)
-				quicksort(i + 1, right)
-			end )
-		end
-		quicksort(1, #array)
-	end
-
-	-- This sort function works like table.sort(). The compare function is optional.
-	function task:Sort(array, compare)
-		local sortJob = function(task) sort(task, array, compare or simpleCompare) end
-		if current or #self.callstack == 0 then return self:Call(sortJob) else return self:Then(sortJob) end
-	end
-end
-
--- Class async
-
--- Get the current context, if you are within a FuncOfTask or nil.
-function async:GetCurrent()
-	return current
-end
-
--- Create an interruptible task context.
-function async:Create(name)
-	return task:New(name)
-end
-
-do
-	local Default = task:New("*Default Task*")
-	function Default:Cancel() error("Not allowed on default task. Use your_lib_var:Create(optional_name) for an interruptible task context.") end
-	Default.Finally = Default.Cancel
-	Default.OnError = Default.Cancel
-
-	-- Start a non-interruptible task or start a nested call in the current context.
-	function async:Call(funcOfTask)
-		-- if async:Call is called from within a task callback (the moment where GetCurrent() is not nil) use it for nested calls
-		return(async:GetCurrent() or Default):Call(funcOfTask)
-	end
-	-- Start a non-interruptible for-loop or start a nested for-loop in the current context.
-	function async:For(p1, p2, p3)
-		return(self:GetCurrent() or Default):For(p1, p2, p3)
-	end
-
-	-- Start a non-interruptible sort or start a nested sort in the current context.
-	function async:Sort(array, compare)
-		return(self:GetCurrent() or Default):Sort(array, compare)
-	end
-end
-
--- async.BREAK is the new 'break' for breaking loops. As Lua would not allowed the keyword 'break' in that context.
--- To break a for-loop, return async.BREAK
-async.BREAK = true
-
-local function stateChange(oldState, newState)
-	if newState == SCENE_SHOWN or newState == SCENE_HIDING then
-		spendTime = GetThreshold()
-	end
-end
-
-local identifier = "ASYNCTASKS_JOBS"
-
-HUD_SCENE:RegisterCallback("StateChange", stateChange)
-HUD_UI_SCENE:RegisterCallback("StateChange", stateChange)
-
-function async:Unload()
-	HUD_SCENE:UnregisterCallback("StateChange", stateChange)
-	HUD_UI_SCENE:UnregisterCallback("StateChange", stateChange)
-end
-
-em:UnregisterForUpdate(identifier)
-em:RegisterForUpdate(identifier, 0, Scheduler)
diff --git a/libs/LibAsync/LibAsync.txt b/libs/LibAsync/LibAsync.txt
deleted file mode 100644
index 0fb0d3e..0000000
--- a/libs/LibAsync/LibAsync.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-## Title: LibAsync
-## Author: votan
-## APIVersion: 100023 100024
-## AddOnVersion: 170
-## Version: 1.7
-## Description: A share scheduler for deferred actions
-## DependsOn: LibStub
-
-## This Add-On is not created by, affiliated with or sponsored by ZeniMax Media Inc. or its affiliates. The Elder Scrolls and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the United States and/or other countries. All rights reserved.
-
-LibAsync.lua
diff --git a/libs/LibCustomMenu/LibCustomMenu.lua b/libs/LibCustomMenu/LibCustomMenu.lua
deleted file mode 100644
index a7cd696..0000000
--- a/libs/LibCustomMenu/LibCustomMenu.lua
+++ /dev/null
@@ -1,665 +0,0 @@
--- authors: votan, sirinsidiator
--- thanks to: baertram & circonian
-
--- Register with LibStub
-local MAJOR, MINOR = "LibCustomMenu", 6.6
-local lib, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
-if not lib then return end -- the same or newer version of this lib is already loaded into memory
-
-local wm = WINDOW_MANAGER
-
------ Common -----
-local function SetupDivider(pool, control)
-	local function GetTextDimensions(self)
-		return 32, 7
-	end
-	local function Noop(self)
-	end
-
-	local label = wm:CreateControlFromVirtual("$(parent)Name", control, "ZO_BaseTooltipDivider")
-	label:ClearAnchors()
-	label:SetAnchor(TOPLEFT, control, TOPLEFT, 0, 2)
-	label:SetAnchor(TOPRIGHT, control, TOPRIGHT, 0, 2)
-	-- First and last time the anchors are set
-	label.ClearAnchors = Noop
-	label.SetAnchor = Noop
-
-	label.SetText = Noop
-	label.SetFont = Noop
-	label.GetTextDimensions = GetTextDimensions
-	label.SetHorizontalAlignment = Noop
-	label:SetHidden(false)
-	control.nameLabel = label
-
-	control:SetMouseEnabled(false)
-end
-
-lib.DIVIDER = "-"
-
------ Sub Menu -----
-
-local Submenu = ZO_Object:Subclass()
-
-local SUBMENU_ITEM_MOUSE_ENTER = 1
-local SUBMENU_ITEM_MOUSE_EXIT = 2
-local SUBMENU_SHOW_TIMEOUT = 350
-local SUBMENU_HIDE_TIMEOUT = 350
-
-local submenuCallLaterHandle
-local nextId = 1
-local function ClearTimeout()
-	if (submenuCallLaterHandle ~= nil) then
-		EVENT_MANAGER:UnregisterForUpdate(submenuCallLaterHandle)
-		submenuCallLaterHandle = nil
-	end
-end
-
-local function SetTimeout(callback)
-	if (submenuCallLaterHandle ~= nil) then ClearTimeout() end
-	submenuCallLaterHandle = "LibCustomMenuSubMenuTimeout" .. nextId
-	nextId = nextId + 1
-
-	EVENT_MANAGER:RegisterForUpdate(submenuCallLaterHandle, SUBMENU_SHOW_TIMEOUT, function()
-		ClearTimeout()
-		if callback then callback() end
-	end )
-end
-
-local function GetValueOrCallback(arg, ...)
-	if type(arg) == "function" then
-		return arg(...)
-	else
-		return arg
-	end
-end
-
-function Submenu:New(...)
-	local object = ZO_Object.New(self)
-	object:Initialize(...)
-	return object
-end
-
-function Submenu:Initialize(name)
-	self.window = ZO_Menus
-
-	local submenuControl = self.window:CreateControl(name, CT_CONTROL)
-	submenuControl:SetClampedToScreen(true)
-	submenuControl:SetMouseEnabled(true)
-	submenuControl:SetHidden(true)
-	-- OnMouseEnter: Stop hiding of submenu initiated by mouse exit of parent
-	submenuControl:SetHandler("OnMouseEnter", ClearTimeout)
-
-	local function ExitSubMenu() if self.parent and self.parent.OnSelect then self.parent:OnSelect(SUBMENU_ITEM_MOUSE_EXIT) end end
-	submenuControl:SetHandler("OnMouseExit", function(control) SetTimeout(ExitSubMenu) end)
-
-	submenuControl:SetHandler("OnHide", function(control) ClearTimeout() self:Clear() end)
-	submenuControl:SetDrawLevel(ZO_Menu:GetDrawLevel() + 1)
-
-	local bg = submenuControl:CreateControl("$(parent)BG", CT_BACKDROP)
-	-- bg:SetCenterColor(0, 0, 0, .93)
-	bg:SetCenterTexture("EsoUI/Art/Tooltips/UI-TooltipCenter.dds")
-	bg:SetEdgeTexture("EsoUI/Art/Tooltips/UI-Border.dds", 128, 16)
-	bg:SetInsets(16, 16, -16, -16)
-	bg:SetAnchorFill()
-
-	local overlay = bg:CreateControl("$(parent)MungeOverlay", CT_TEXTURE)
-	overlay:SetTexture("EsoUI/Art/Tooltips/munge_overlay.dds")
-	overlay:SetAddressMode(TEX_MODE_WRAP)
-	overlay:SetAnchor(TOPLEFT)
-	overlay:SetAnchor(BOTTOMRIGHT)
-
-	self.highlight = CreateControlFromVirtual("$(parent)Highlight", submenuControl, "ZO_SelectionHighlight")
-	self.highlight:SetHidden(true)
-
-	self.control = submenuControl
-
-	local upInside = false
-	local function MouseEnter(control)
-		upInside = true
-		ClearTimeout()
-		self:SetSelectedIndex(control.index)
-	end
-	local function MouseExit(control)
-		upInside = false
-		if (self.selectedIndex == control.index) then
-			self:SetSelectedIndex(nil)
-		end
-	end
-	local function MouseUp(control, button)
-		if upInside == true and button == MOUSE_BUTTON_INDEX_LEFT then
-			ZO_Menu_SetLastCommandWasFromMenu(true)
-			if control.checkbox then
-				-- The checkbox click handler will handle it
-				ZO_CheckButton_OnClicked(control.checkbox, button)
-			else
-				if not control.OnSelect() then
-					ClearMenu()
-				end
-			end
-		end
-	end
-
-	local function ItemFactory(pool)
-		local control = CreateControlFromVirtual("ZO_SubMenuItem", submenuControl, "ZO_MenuItem", pool:GetNextControlId())
-		control.nameLabel = GetControl(control, "Name")
-
-		control:SetHandler("OnMouseEnter", MouseEnter)
-		control:SetHandler("OnMouseExit", MouseExit)
-		control:SetHandler("OnMouseDown", IgnoreMouseDownEditFocusLoss)
-		control:SetHandler("OnMouseUp", MouseUp)
-
-		return control
-	end
-
-	local function ResetFunction(control)
-		control:SetHidden(true)
-		control:ClearAnchors()
-		control.OnSelect = nil
-		control.menuIndex = nil
-	end
-
-	local function DividerFactory(pool)
-		local control = CreateControlFromVirtual("ZO_CustomSubMenuDivider", submenuControl, "ZO_NotificationsRowButton", pool:GetNextControlId())
-		SetupDivider(pool, control)
-		return control
-	end
-
-	local function ResetCheckbox(checkbox)
-		ResetFunction(checkbox)
-	end
-
-	local function CheckBoxMouseEnter(control)
-		MouseEnter(control:GetParent())
-	end
-	local function CheckBoxMouseExit(control)
-		MouseExit(control:GetParent())
-	end
-	local function CheckBoxMouseUp(control)
-		self.refCount =(self.refCount or 0) + 1
-		local parent = control:GetParent()
-		parent.OnSelect(ZO_CheckButton_IsChecked(control))
-	end
-	local function CheckBoxFactory(pool)
-		local control = CreateControlFromVirtual("ZO_CustomSubMenuItemCheckButton", submenuControl, "ZO_CheckButton", pool:GetNextControlId())
-		control.nameLabel = control
-
-		control:SetHandler("OnMouseEnter", CheckBoxMouseEnter)
-		control:SetHandler("OnMouseExit", CheckBoxMouseExit)
-
-		ZO_CheckButton_SetToggleFunction(control, CheckBoxMouseUp)
-
-		return control
-	end
-
-
-	self.itemPool = ZO_ObjectPool:New(ItemFactory, ResetFunction)
-	self.dividerPool = ZO_ObjectPool:New(DividerFactory, ResetFunction)
-	self.checkBoxPool = ZO_ObjectPool:New(CheckBoxFactory, ResetCheckbox)
-	self.items = { }
-
-	EVENT_MANAGER:RegisterForEvent(name .. "_OnGlobalMouseUp", EVENT_GLOBAL_MOUSE_UP, function()
-		if self.refCount ~= nil then
-			local moc = wm:GetMouseOverControl()
-			if (moc:GetOwningWindow() ~= submenuControl) then
-				self.refCount = self.refCount - 1
-				if self.refCount <= 0 then
-					self:Clear()
-				end
-			end
-		end
-	end )
-end
-
-function Submenu:SetSelectedIndex(index)
-	if (index) then
-		index = zo_max(zo_min(index, #self.items), 1)
-	end
-
-	if (self.selectedIndex ~= index) then
-		self:UnselectItem(self.selectedIndex)
-		self:SelectItem(index)
-	end
-end
-
-function Submenu:UnselectItem(index)
-	local item = self.items[index]
-	if item then
-		self.highlight:SetHidden(true)
-		local nameControl = item.nameLabel
-		nameControl:SetColor(nameControl.normalColor:UnpackRGBA())
-
-		self.selectedIndex = nil
-	end
-end
-
-function Submenu:SelectItem(index)
-	local item = self.items[index]
-	if item then
-		local highlight = self.highlight
-
-		highlight:ClearAnchors()
-
-		highlight:SetAnchor(TOPLEFT, item, TOPLEFT, -2, -2)
-		highlight:SetAnchor(BOTTOMRIGHT, item, BOTTOMRIGHT, 2, 2)
-
-		highlight:SetHidden(false)
-
-		local nameControl = item.nameLabel
-		nameControl:SetColor(nameControl.highlightColor:UnpackRGBA())
-
-		self.selectedIndex = index
-	end
-end
-
-function Submenu:UpdateAnchors()
-	local iconSize = self.iconSize
-	local previousItem = self.control
-	local items = self.items
-	local width, height = 0, 0
-	local padding = ZO_Menu.menuPad
-
-	for i = 1, #items do
-		local item = items[i]
-		local textWidth, textHeight = item.nameLabel:GetTextDimensions()
-		width = math.max(textWidth + padding * 2, width)
-		height = height + textHeight
-		item:ClearAnchors()
-		if i == 1 then
-			item:SetAnchor(TOPLEFT, previousItem, TOPLEFT, padding, padding)
-			item:SetAnchor(TOPRIGHT, previousItem, TOPRIGHT, - padding, padding)
-		else
-			item:SetAnchor(TOPLEFT, previousItem, BOTTOMLEFT, 0, item.itemYPad)
-			item:SetAnchor(TOPRIGHT, previousItem, BOTTOMRIGHT, 0, item.itemYPad)
-		end
-
-		item:SetHidden(false)
-		item:SetDimensions(textWidth, textHeight)
-		previousItem = item
-	end
-
-	self.control:SetDimensions(width + padding * 2, height + padding * 2)
-end
-
-function Submenu:Clear()
-	self:UnselectItem(self.selectedIndex)
-	self.items = { }
-	self.itemPool:ReleaseAllObjects()
-	self.dividerPool:ReleaseAllObjects()
-	self.checkBoxPool:ReleaseAllObjects()
-	self.control:SetHidden(true)
-	self.refCount = nil
-end
-
-local DEFAULT_TEXT_COLOR = ZO_ColorDef:New(GetInterfaceColor(INTERFACE_COLOR_TYPE_TEXT_COLORS, INTERFACE_TEXT_COLOR_NORMAL))
-local DEFAULT_TEXT_HIGHLIGHT = ZO_ColorDef:New(GetInterfaceColor(INTERFACE_COLOR_TYPE_TEXT_COLORS, INTERFACE_TEXT_COLOR_CONTEXT_HIGHLIGHT))
-
-function Submenu:AddItem(entry, myfont, normalColor, highlightColor, itemYPad)
-	local visible
-	if entry.visible ~= nil then visible = entry.visible else visible = true end
-	if not GetValueOrCallback(visible, ZO_Menu) then return end
-
-	local item, key
-	local itemType = entry.itemType or MENU_ADD_OPTION_LABEL
-	if itemType == MENU_ADD_OPTION_LABEL then
-		item, key = entry.label ~= lib.DIVIDER and self.itemPool:AcquireObject() or self.dividerPool:AcquireObject()
-	elseif itemType == MENU_ADD_OPTION_CHECKBOX then
-		item, key = self.itemPool:AcquireObject()
-	else
-		error(string.format("Unknown menu entry itemType: %s", itemType))
-	end
-
-	item.OnSelect = entry.callback
-	item.index = #self.items + 1
-	self.items[item.index] = item
-
-	local nameControl = item.nameLabel
-
-	local entryFont = GetValueOrCallback(entry.myfont, ZO_Menu, item) or myfont
-	local normColor = GetValueOrCallback(entry.normalColor, ZO_Menu, item) or normalColor
-	local highColor = GetValueOrCallback(entry.highlightColor, ZO_Menu, item) or highlightColor
-	myfont = entryFont or "ZoFontGame"
-	nameControl.normalColor = normColor or DEFAULT_TEXT_COLOR
-	nameControl.highlightColor = highColor or DEFAULT_TEXT_HIGHLIGHT
-
-	nameControl:SetFont(myfont)
-
-	local text = GetValueOrCallback(entry.label, ZO_Menu, item)
-
-	local checkboxItemControl = nil
-	if itemType == MENU_ADD_OPTION_CHECKBOX then
-		checkboxItemControl = self.checkBoxPool:AcquireObject()
-		checkboxItemControl:SetParent(item)
-		checkboxItemControl.menuIndex = item.index
-		checkboxItemControl:ClearAnchors()
-		checkboxItemControl:SetHidden(false)
-		checkboxItemControl:SetAnchor(LEFT, nil, LEFT, 2, -1)
-		text = string.format(" |u18:0::|u%s", text)
-		ZO_CheckButton_SetCheckState(checkboxItemControl, GetValueOrCallback(entry.checked, ZO_Menu, item) or false)
-	end
-	item.checkbox = checkboxItemControl
-
-	nameControl:SetText(text)
-
-	local enabled = not GetValueOrCallback(entry.disabled or false, ZO_Menu, item)
-	nameControl:SetColor((enabled and nameControl.normalColor or ZO_DEFAULT_DISABLED_COLOR):UnpackRGBA())
-	item:SetMouseEnabled(enabled)
-end
-
-function Submenu:Show(parent)
-	if not self.control:IsHidden() then self:Clear() return false end
-	self:UpdateAnchors()
-
-	local padding = ZO_Menu.menuPad
-	local control = self.control
-	control:ClearAnchors()
-	-- If there is not enough space on the right side, use the left side. Like Windows.
-	if (parent:GetRight() + control:GetWidth()) < GuiRoot:GetRight() then
-		control:SetAnchor(TOPLEFT, parent, TOPRIGHT, -1, - padding)
-	else
-		control:SetAnchor(TOPRIGHT, parent, TOPLEFT, 1, - padding)
-	end
-	control:SetHidden(false)
-	self.parent = parent
-	self.refCount = 2
-
-	return true
-end
-
-local function SubMenuItemFactory(pool)
-	local control = CreateControlFromVirtual("ZO_CustomSubMenuItem", ZO_Menu, "ZO_NotificationsRowButton", pool:GetNextControlId())
-
-	local arrowContainer = control:CreateControl("$(parent)Arrow", CT_CONTROL)
-	-- we need this in order to control the menu with independently of the texture size
-	arrowContainer:SetAnchor(RIGHT, control, RIGHT, 0, 0)
-	arrowContainer:SetDimensions(32, 16)
-
-	local arrow = arrowContainer:CreateControl("$(parent)Texture", CT_TEXTURE)
-	arrow:SetAnchor(RIGHT, arrowContainer, RIGHT, 0, 0)
-	arrow:SetDimensions(16, 20)
-	arrow:SetTexture("EsoUI/Art/Miscellaneous/colorPicker_slider_vertical.dds")
-	arrow:SetTextureCoords(0, 0.5, 0, 1)
-
-	-- we assign the submenu arrow to checkbox because the context menu will add the desired width automatically that way
-	control.checkbox = arrowContainer
-
-	local clicked = false
-	local function MouseEnter(control)
-		ZO_Menu_EnterItem(control)
-		clicked = false
-		SetTimeout( function() if control.OnSelect then control:OnSelect(SUBMENU_ITEM_MOUSE_ENTER) end end)
-	end
-	local function MouseExit(control)
-		ZO_Menu_ExitItem(control)
-		if not clicked then
-			SetTimeout( function() if control.OnSelect then control:OnSelect(SUBMENU_ITEM_MOUSE_EXIT) end end)
-		end
-	end
-	local function MouseDown(control)
-		IgnoreMouseDownEditFocusLoss()
-		-- re-open sub menu on click
-		clicked = true
-		control:OnSelect(SUBMENU_ITEM_MOUSE_ENTER)
-	end
-
-	local label = wm:CreateControl("$(parent)Name", control, CT_LABEL)
-	label:SetAnchor(TOPLEFT)
-	control.nameLabel = label
-
-	control:SetHandler("OnMouseEnter", MouseEnter)
-	control:SetHandler("OnMouseExit", MouseExit)
-	control:SetHandler("OnMouseDown", MouseDown)
-
-	return control
-end
-
------ Standard Menu -----
-
-local function ResetMenuItem(button)
-	button:SetHidden(true)
-	button:ClearAnchors()
-	button.menuIndex = nil
-	button.OnSelect = nil
-end
-
-local function ResetCheckBox(checkBox)
-	ResetMenuItem(checkBox)
-	ZO_CheckButton_SetToggleFunction(checkBox, nil)
-end
-
-local upInside = false
-
-local function MenuItemFactory(pool)
-	local control = CreateControlFromVirtual("ZO_CustomMenuItem", ZO_Menu, "ZO_NotificationsRowButton", pool:GetNextControlId())
-	local function MouseEnter()
-		upInside = true
-		ZO_Menu_EnterItem(control)
-	end
-	local function MouseExit()
-		upInside = false
-		ZO_Menu_ExitItem(control)
-	end
-	local function MouseUp()
-		if upInside == true then
-			ZO_Menu_ClickItem(control, 1)
-		end
-	end
-
-	local label = wm:CreateControl("$(parent)Name", control, CT_LABEL)
-	label:SetAnchor(TOPLEFT)
-	control.nameLabel = label
-
-	control:SetHandler("OnMouseEnter", MouseEnter)
-	control:SetHandler("OnMouseExit", MouseExit)
-	control:SetHandler("OnMouseDown", IgnoreMouseDownEditFocusLoss)
-	control:SetHandler("OnMouseUp", MouseUp)
-
-	return control
-end
-
-local function CheckBoxFactory(pool)
-	local control = CreateControlFromVirtual("ZO_CustomMenuItemCheckButton", ZO_Menu, "ZO_CheckButton", pool:GetNextControlId())
-	control.nameLabel = control
-
-	local function MouseEnter()
-		ZO_Menu_EnterItem(control)
-	end
-	local function MouseExit()
-		ZO_Menu_ExitItem(control)
-	end
-	control:SetHandler("OnMouseEnter", MouseEnter)
-	control:SetHandler("OnMouseExit", MouseExit)
-	return control
-end
-
-local function DividerFactory(pool)
-	local control = CreateControlFromVirtual("ZO_CustomMenuDivider", ZO_Menu, "ZO_NotificationsRowButton", pool:GetNextControlId())
-	SetupDivider(pool, control)
-	return control
-end
-
----- Hook points for context menu -----
-local function PreHook(objectTable, existingFunctionName, hookFunction)
-	if type(objectTable) == "string" then
-		hookFunction = existingFunctionName
-		existingFunctionName = objectTable
-		objectTable = _G
-	end
-
-	local existingFn = objectTable[existingFunctionName]
-	local newFn
-	if existingFn and type(existingFn) == "function" then
-		newFn = function(...)
-			hookFunction(...)
-			return existingFn(...)
-		end
-	else
-		newFn = hookFunction
-	end
-	objectTable[existingFunctionName] = newFn
-end
-
-local function HookContextMenu()
-	local category, registry, inventorySlot, slotActions, entered
-	local function Reset()
-		category, registry, inventorySlot, slotActions = 0, nil, nil, nil
-	end
-	local function RemoveMouseOverKeybinds()
-		if entered then
-			entered = false
-			lib.keybindRegistry:FireCallbacks("Exit")
-		end
-		Reset()
-	end
-	local function addCategory()
-		category = category + 1
-		registry:FireCallbacks(category, inventorySlot, slotActions)
-	end
-	local function AddSlots(...)
-		Reset()
-		inventorySlot, slotActions = ...
-		if slotActions.m_contextMenuMode then
-			registry = lib.contextMenuRegistry
-		else
-			entered = true
-			registry = lib.keybindRegistry
-		end
-	end
-	local function InsertToMenu()
-		if category < 4 and inventorySlot then
-			addCategory()
-		end
-	end
-	local function AppendToMenu()
-		if registry then
-			if inventorySlot then
-				while category <= 6 do addCategory() end
-			end
-			Reset()
-		end
-	end
-	Reset()
-
-	PreHook("ZO_InventorySlot_RemoveMouseOverKeybinds", RemoveMouseOverKeybinds)
-	PreHook("ZO_InventorySlot_OnMouseExit", RemoveMouseOverKeybinds)
-	PreHook("ZO_InventorySlot_DiscoverSlotActionsFromActionList", AddSlots)
-	PreHook(ZO_InventorySlotActions, "AddSlotAction", InsertToMenu)
-	PreHook(ZO_InventorySlotActions, "Show", AppendToMenu)
-	PreHook(ZO_InventorySlotActions, "GetPrimaryActionName", AppendToMenu)
-end
-
------ Public API -----
-
-function AddCustomMenuItem(mytext, myfunction, itemType, myFont, normalColor, highlightColor, itemYPad, horizontalAlignment)
-	local orgItemPool = ZO_Menu.itemPool
-	local orgCheckboxItemPool = ZO_Menu.checkBoxPool
-
-	ZO_Menu.itemPool = mytext ~= lib.DIVIDER and lib.itemPool or lib.dividerPool
-	ZO_Menu.checkBoxPool = lib.checkBoxPool
-
-	local index = AddMenuItem(mytext, myfunction, itemType, myFont, normalColor, highlightColor, itemYPad, horizontalAlignment)
-
-	ZO_Menu.itemPool = orgItemPool
-	ZO_Menu.checkBoxPool = orgCheckboxItemPool
-
-	return index
-end
-
-function AddCustomSubMenuItem(mytext, entries, myfont, normalColor, highlightColor, itemYPad)
-	local function CreateSubMenu(control, state)
-		if (state == SUBMENU_ITEM_MOUSE_ENTER) then
-			lib.submenu:Clear()
-			local currentEntries = GetValueOrCallback(entries, ZO_Menu, control)
-			local entry
-			for i = 1, #currentEntries do
-				entry = currentEntries[i]
-				lib.submenu:AddItem(entry, myfont, normalColor, highlightColor, itemYPad)
-			end
-			lib.submenu:Show(control)
-		elseif (state == SUBMENU_ITEM_MOUSE_EXIT) then
-			lib.submenu:Clear()
-		end
-	end
-
-	local orgItemPool = ZO_Menu.itemPool
-	local orgCheckboxItemPool = ZO_Menu.checkBoxPool
-
-	ZO_Menu.itemPool = lib.submenuPool
-	ZO_Menu.checkBoxPool = lib.checkBoxPool
-
-	local index = AddMenuItem(mytext, CreateSubMenu, MENU_ADD_OPTION_LABEL, myfont, normalColor, highlightColor, itemYPad)
-
-	ZO_Menu.itemPool = orgItemPool
-	ZO_Menu.checkBoxPool = orgCheckboxItemPool
-
-	return index
-end
-
-local function HookClearMenu()
-	local orgClearMenu = ClearMenu
-	function ClearMenu()
-		ClearTimeout()
-		orgClearMenu()
-		lib.itemPool:ReleaseAllObjects()
-		lib.submenuPool:ReleaseAllObjects()
-		lib.checkBoxPool:ReleaseAllObjects()
-		lib.dividerPool:ReleaseAllObjects()
-		lib.submenu:Clear()
-	end
-end
-
-local function HookAddSlotAction()
-	function ZO_InventorySlotActions:AddCustomSlotAction(...)
-		local orgItemPool = ZO_Menu.itemPool
-		local orgCheckboxItemPool = ZO_Menu.checkBoxPool
-
-		ZO_Menu.itemPool = lib.itemPool
-		ZO_Menu.checkBoxPool = lib.checkBoxPool
-
-		self:AddSlotAction(...)
-
-		ZO_Menu.itemPool = orgItemPool
-		ZO_Menu.checkBoxPool = orgCheckboxItemPool
-	end
-end
-
-function lib:RegisterContextMenu(func, category, ...)
-	category = zo_clamp(category or self.CATEGORY_LATE, self.CATEGORY_EARLY, self.CATEGORY_LATE)
-	self.contextMenuRegistry:RegisterCallback(category, func, ...)
-end
-
-function lib:RegisterKeyStripEnter(func, category, ...)
-	category = zo_clamp(category or self.CATEGORY_LATE, self.CATEGORY_EARLY, self.CATEGORY_LATE)
-	self.keybindRegistry:RegisterCallback(category, func, ...)
-end
-
-function lib:RegisterKeyStripExit(func, ...)
-	self.keybindRegistry:RegisterCallback("Exit", func, ...)
-end
-
----- Init -----
-
-local function OnAddonLoaded(event, name)
-	if name:find("^ZO_") then return end
-	EVENT_MANAGER:UnregisterForEvent(MAJOR, EVENT_ADD_ON_LOADED)
-	lib.itemPool = ZO_ObjectPool:New(MenuItemFactory, ResetMenuItem)
-	lib.submenuPool = ZO_ObjectPool:New(SubMenuItemFactory, ResetMenuItem)
-	lib.checkBoxPool = ZO_ObjectPool:New(CheckBoxFactory, ResetCheckBox)
-	lib.dividerPool = ZO_ObjectPool:New(DividerFactory, ResetMenuItem)
-	lib.submenu = Submenu:New("LibCustomMenuSubmenu")
-	HookClearMenu()
-	HookAddSlotAction()
-	HookContextMenu()
-end
-
-lib.contextMenuRegistry = lib.contextMenuRegistry or ZO_CallbackObject:New()
-lib.keybindRegistry = lib.keybindRegistry or ZO_CallbackObject:New()
-
-lib.CATEGORY_EARLY = 1
-lib.CATEGORY_PRIMARY = 2
-lib.CATEGORY_SECONDARY = 3
-lib.CATEGORY_TERTIARY = 4
-lib.CATEGORY_QUATERNARY = 5
-lib.CATEGORY_LATE = 6
-
-EVENT_MANAGER:UnregisterForEvent(MAJOR, EVENT_ADD_ON_LOADED)
-EVENT_MANAGER:RegisterForEvent(MAJOR, EVENT_ADD_ON_LOADED, OnAddonLoaded)
diff --git a/libs/LibCustomMenu/LibCustomMenu.txt b/libs/LibCustomMenu/LibCustomMenu.txt
deleted file mode 100644
index e498832..0000000
--- a/libs/LibCustomMenu/LibCustomMenu.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-## Title: LibCustomMenu
-## Author: votan
-## APIVersion: 100023 100024
-## Version: 6.6
-## AddOnVersion: 660
-## DependsOn: LibStub
-## Description: Fixes in-game bug that causes "Access a private function from insecure code" created by custom context-menu items, sub-menu and divider.
-
-## This Add-On is not created by, affiliated with or sponsored by ZeniMax Media Inc. or its affiliates. The Elder Scrolls and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the United States and/or other countries. All rights reserved.
-
-LibCustomMenu.lua
diff --git a/libs/LibCustomMenu/Unlicense.rtf b/libs/LibCustomMenu/Unlicense.rtf
deleted file mode 100644
index 68a49da..0000000
--- a/libs/LibCustomMenu/Unlicense.rtf
+++ /dev/null
@@ -1,24 +0,0 @@
-This is free and unencumbered software released into the public domain.
-
-Anyone is free to copy, modify, publish, use, compile, sell, or
-distribute this software, either in source code form or as a compiled
-binary, for any purpose, commercial or non-commercial, and by any
-means.
-
-In jurisdictions that recognize copyright laws, the author or authors
-of this software dedicate any and all copyright interest in the
-software to the public domain. We make this dedication for the benefit
-of the public at large and to the detriment of our heirs and
-successors. We intend this dedication to be an overt act of
-relinquishment in perpetuity of all present and future rights to this
-software under copyright law.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-For more information, please refer to <http://unlicense.org/>
diff --git a/libs/LibCustomMenu/libs/LibStub.lua b/libs/LibCustomMenu/libs/LibStub.lua
deleted file mode 100644
index 0e6bf67..0000000
--- a/libs/LibCustomMenu/libs/LibStub.lua
+++ /dev/null
@@ -1,38 +0,0 @@
--- LibStub is a simple versioning stub meant for use in Libraries.  http://www.wowace.com/wiki/LibStub for more info
--- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke
--- LibStub developed for World of Warcraft by above members of the WowAce community.
--- Ported to Elder Scrolls Online by Seerah
-
-local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 4
-local LibStub = _G[LIBSTUB_MAJOR]
-
-local strformat = string.format
-if not LibStub or LibStub.minor < LIBSTUB_MINOR then
-	LibStub = LibStub or {libs = {}, minors = {} }
-	_G[LIBSTUB_MAJOR] = LibStub
-	LibStub.minor = LIBSTUB_MINOR
-
-	function LibStub:NewLibrary(major, minor)
-		assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)")
-		if type(minor) ~= "number" then
-			minor = assert(tonumber(zo_strmatch(minor, "%d+%.?%d*")), "Minor version must either be a number or contain a number.")
-		end
-
-		local oldminor = self.minors[major]
-		if oldminor and oldminor >= minor then return nil end
-		self.minors[major], self.libs[major] = minor, self.libs[major] or {}
-		return self.libs[major], oldminor
-	end
-
-	function LibStub:GetLibrary(major, silent)
-		if not self.libs[major] and not silent then
-			error(strformat("Cannot find a library instance of %q.", tostring(major)), 2)
-		end
-		return self.libs[major], self.minors[major]
-	end
-
-	function LibStub:IterateLibraries() return pairs(self.libs) end
-	setmetatable(LibStub, { __call = LibStub.GetLibrary })
-end
-
-LibStub.SILENT = true
\ No newline at end of file
diff --git a/libs/LibCustomMenu/libs/LibStub.txt b/libs/LibCustomMenu/libs/LibStub.txt
deleted file mode 100644
index d5ae454..0000000
--- a/libs/LibCustomMenu/libs/LibStub.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-## Title: LibStub
-## APIVersion: 100023 100024
-## Description: Universal Library Stub
-## Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, ported to ESO by Seerah
-## Version: 1.0 r4
-## AddOnVersion: 4
-
-LibStub.lua
\ No newline at end of file
diff --git a/libs/LibCustomMenu/libs/LibVotansAddonList/LibVotansAddonList.txt b/libs/LibCustomMenu/libs/LibVotansAddonList/LibVotansAddonList.txt
deleted file mode 100644
index b754cc6..0000000
--- a/libs/LibCustomMenu/libs/LibVotansAddonList/LibVotansAddonList.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-## Title: Votan's Addon List
-## Author: votan
-## Description: Alternative Addon List Design
-## APIVersion: 100023 100024
-## AddOnVersion: 100
-## Version: 1.0.0
-## DependsOn: LibStub
-## OptionalDependsOn: AddonSelector
-
-## This Add-On is not created by, affiliated with or sponsored by ZeniMax Media Inc. or its affiliates. The Elder Scrolls and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the United States and/or other countries. All rights reserved.
-
-lang/strings.lua
-lang/$(language).lua
-
-Main.lua
diff --git a/libs/LibCustomMenu/libs/LibVotansAddonList/Main.lua b/libs/LibCustomMenu/libs/LibVotansAddonList/Main.lua
deleted file mode 100644
index 78e7514..0000000
--- a/libs/LibCustomMenu/libs/LibVotansAddonList/Main.lua
+++ /dev/null
@@ -1,273 +0,0 @@
-
-local LIB_NAME = "LibVotansAddonList"
-local addon = LibStub:NewLibrary(LIB_NAME, 1)
-
-if not addon then
-	return
-	-- already loaded and no upgrade necessary
-end
-
-local em = GetEventManager()
-local AddOnManager = GetAddOnManager()
-
-function addon:Initialize()
-	ZO_ClearTable(ADD_ON_MANAGER.list.dataTypes)
-	ZO_ScrollList_AddDataType(ADD_ON_MANAGER.list, 1, "ZO_AddOnRow", 30, ADD_ON_MANAGER:GetRowSetupFunction())
-	ADD_ON_MANAGER.isDirty = true
-end
-
-local function setupHeaderFunction(control, data)
-	control:SetText(data.text)
-	control:SetMouseEnabled(false)
-end
-
-local function setupDividerFunction(control, data)
-	control:SetHeight(30)
-end
-
-do
-	local LIB_ROW_ID = 2
-	local orgSort
-	local orgSortScrollList = ZO_AddOnManager.SortScrollList
-	local scrollData
-	local function newSort(...)
-		scrollData = ...
-		table.sort = orgSort
-	end
-	local function sortBySortable(a, b)
-		return a.data.sortableName < b.data.sortableName
-	end
-	local function sortByLib(a, b)
-		return a.data.isLibrary == b.data.isLibrary and sortBySortable(a, b) or(not a.data.isLibrary and b.data.isLibrary)
-	end
-	function ZO_AddOnManager:SortScrollList()
-		ZO_ScrollList_AddDataType(self.list, LIB_ROW_ID, "ZO_GameMenu_LabelHeader", 30, setupHeaderFunction)
-		ZO_ScrollList_AddDataType(self.list, LIB_ROW_ID + 1, "ZO_DynamicHorizontalDivider", 30, setupDividerFunction)
-		orgSort, table.sort = table.sort, newSort
-		orgSortScrollList(self)
-		table.sort(scrollData, sortByLib)
-		local hasLibs = false
-		for i = #scrollData, 1, -1 do
-			if scrollData[i].data.isLibrary then
-				hasLibs = true
-			else
-				if hasLibs then
-					table.insert(scrollData, i + 1, ZO_ScrollList_CreateDataEntry(LIB_ROW_ID, { text = GetString(SI_VOTANS_ADDONLIST_LIBS) }))
-					table.insert(scrollData, i + 1, ZO_ScrollList_CreateDataEntry(LIB_ROW_ID + 1, { }))
-				end
-				break
-			end
-		end
-	end
-end
-
-do
-	local orgBuildMasterList = ZO_AddOnManager.BuildMasterList
-	local function isLibrary(item)
-		-- ZOS could know/call this "nested manifest". All nested manifests are libs. Never seen a main addon nesting a main addon.
-		-- In case of having the "nested" information: isPatch = depends on one non-nested addon. Else: isLibrary = isNested and not depends on non-nested.
-		local data = item.data
-		if data.isLibrary == nil then
-			data.isLibrary =(LibStub(data.addOnFileName, LibStub.SILENT) or data.addOnFileName:match("^[Ll]ib[%u%d]%a")) ~= nil
-		end
-	end
-	function ZO_AddOnManager:BuildMasterList()
-		orgBuildMasterList(self)
-		local scrollData = ZO_ScrollList_GetDataList(self.list)
-		self.masterList = self.masterList or { }
-		local masterList = self.masterList
-		ZO_ClearNumericallyIndexedTable(masterList)
-
-		local nameToLib = { }
-		local data
-		for i = 1, #scrollData do
-			isLibrary(scrollData[i])
-			data = scrollData[i].data
-			masterList[i] = data
-			nameToLib[data.addOnFileName] = data
-			data.sortableName = data.strippedAddOnName:upper()
-			data.expandable = false
-		end
-		local name, i, dependency, depCount, isPatchFor
-		for index = 1, #masterList do
-			data = masterList[index]
-			i = data.index
-			name, depCount = nil, 0
-			for j = 1, AddOnManager:GetAddOnNumDependencies(i) do
-				dependency = AddOnManager:GetAddOnDependencyInfo(i, j)
-				dependency = nameToLib[dependency]
-				if dependency and not dependency.isLibrary then
-					if not name then
-						name = dependency.sortableName
-						isPatchFor = dependency
-					end
-					depCount = depCount + 1
-				end
-			end
-
-			data.isPatch = depCount >= 1
-			if data.isPatch then
-				data.isLibrary = false
-				data.isPatchFor = isPatchFor
-				data.sortableName = string.format("%s-%s", name, data.sortableName)
-			end
-		end
-	end
-end
-
-do
-	local orgGetRowSetupFunction = ZO_AddOnManager.GetRowSetupFunction
-	local WARNING_COLOR = ZO_ColorDef:New("C5C23E")
-	local attentionIcon = zo_iconFormatInheritColor(ZO_KEYBOARD_NEW_ICON, 28, 28)
-
-	local function AddLine(tooltip, text, color, alignment)
-		local r, g, b = color:UnpackRGB()
-		tooltip:AddLine(text, "", r, g, b, CENTER, MODIFY_TEXT_TYPE_NONE, alignment, alignment ~= TEXT_ALIGN_LEFT)
-	end
-
-	local function AddLineCenter(tooltip, text, color)
-		if not color then color = ZO_TOOLTIP_DEFAULT_COLOR end
-		AddLine(tooltip, text, color, TEXT_ALIGN_CENTER)
-	end
-
-	local function AddLineTitle(tooltip, text, color)
-		if not color then color = ZO_SELECTED_TEXT end
-		local r, g, b = color:UnpackRGB()
-		tooltip:AddLine(text, "ZoFontHeader3", r, g, b, CENTER, MODIFY_TEXT_TYPE_NONE, TEXT_ALIGN_CENTER, true)
-	end
-
-	local function AddLineSubTitle(tooltip, text, color)
-		if not color then color = ZO_SELECTED_TEXT end
-		local r, g, b = color:UnpackRGB()
-		tooltip:AddLine(text, "ZoFontWinH5", r, g, b, CENTER, MODIFY_TEXT_TYPE_NONE, TEXT_ALIGN_CENTER, true)
-	end
-
-	-- zo_strformat converts the dot in version numbers into comma (localization of decimal numbers, but wrong here)
-	local formatDep = GetString(SI_ADDON_MANAGER_DEPENDENCIES):gsub("<<1>>", "%%s")
-	local function onMouseEnter(control)
-		local data = ZO_ScrollList_GetData(control)
-		if not data then return end
-		InitializeTooltip(ItemTooltip, control, LEFT, -7, -30, BOTTOMRIGHT)
-
-		ZO_ItemIconTooltip_OnAddGameData(ItemTooltip, TOOLTIP_GAME_DATA_ITEM_ICON, data.isLibrary and "esoui/art/journal/journal_tabicon_cadwell_up.dds" or "esoui/art/inventory/inventory_tabicon_misc_up.dds")
-
-		if data.isLibrary then
-			ItemTooltip:AddHeaderLine(zo_strformat(SI_ITEM_FORMAT_STR_TEXT1, GetString(SI_VOTANS_ADDONLIST_LIB)), "ZoFontWinH5", 1, TOOLTIP_HEADER_SIDE_LEFT, ZO_TOOLTIP_DEFAULT_COLOR:UnpackRGB())
-		end
-		ItemTooltip:AddVerticalPadding(14)
-		AddLineTitle(ItemTooltip, data.addOnName)
-		ItemTooltip:AddVerticalPadding(-9)
-		ZO_Tooltip_AddDivider(ItemTooltip)
-
-		if data.addOnAuthorByLine ~= "" then
-			AddLineSubTitle(ItemTooltip, data.addOnAuthorByLine)
-		end
-
-		if data.addOnDescription ~= "" then
-			AddLineCenter(ItemTooltip, data.addOnDescription)
-		end
-
-		if data.isOutOfDate then
-			AddLineCenter(ItemTooltip, GetString(SI_VOTANS_ADDONLIST_OUTDATED), WARNING_COLOR)
-		end
-
-		if data.hasDependencyError then
-			local dependencyText = { }
-			local i = data.index
-			local dependencyName, dependencyActive
-			for j = 1, AddOnManager:GetAddOnNumDependencies(i) do
-				dependencyName, dependencyActive = AddOnManager:GetAddOnDependencyInfo(i, j)
-				if dependencyName ~= "" and not dependencyActive then
-					dependencyName = ZO_ERROR_COLOR:Colorize(dependencyName)
-				end
-				dependencyText[#dependencyText + 1] = dependencyName
-			end
-			table.sort(dependencyText)
-			AddLineCenter(ItemTooltip, formatDep:format(table.concat(dependencyText, ", ")))
-		end
-
-		ZO_ItemIconTooltip_OnAddGameData(ItemTooltip, TOOLTIP_GAME_DATA_STOLEN, false)
-	end
-	local function onMouseExit(control)
-		ClearTooltip(ItemTooltip)
-	end
-
-	function ZO_AddOnManager:GetRowSetupFunction()
-		local orgSetup = orgGetRowSetupFunction(self)
-		local function modify(control, data)
-			local indent = data.isPatch and 12 or 0
-			local expandButton = control:GetNamedChild("ExpandButton")
-			expandButton:SetHidden(true)
-			local enableButton = control:GetNamedChild("Enabled")
-			enableButton:SetAnchor(TOPLEFT, nil, TOPLEFT, 7 + indent, 7)
-
-			local state = control:GetNamedChild("State")
-			state:SetDimensions(28, 28)
-			state:ClearAnchors()
-			state:SetAnchor(TOPRIGHT, nil, TOPRIGHT, -7, 1)
-			local stateText
-			-- out-dated libs coming from out-dated main-addons. If an out-dated lib is used by an up-to-date addon, it is still working.
-			-- if it is a patch, but its parent is not enabled, show out-of-date warning only.
-			if (data.isOutOfDate and not data.isLibrary) or(data.hasDependencyError and(not data.isPatch or(data.isPatch and data.isPatchFor.addOnEnabled))) then
-				stateText = attentionIcon
-				if not data.hasDependencyError and AddOnManager:GetLoadOutOfDateAddOns() or(data.isPatch and not data.isPatchFor.addOnEnabled) then
-					stateText = WARNING_COLOR:Colorize(stateText)
-				else
-					stateText = ZO_ERROR_COLOR:Colorize(stateText)
-				end
-			else
-				stateText = ""
-			end
-			state:SetText(stateText)
-
-			local name = control:GetNamedChild("Name")
-			name:SetWidth(385 - indent)
-			local author = control:GetNamedChild("Author")
-			author:SetWidth(372)
-
-			if data.isPatch and not data.isPatchFor.addOnEnabled then
-				local color = ZO_DEFAULT_DISABLED_COLOR
-				name:SetColor(color:UnpackRGBA())
-				author:SetColor(color:UnpackRGBA())
-			end
-
-			if not control.votanAddonLib then
-				control.votanAddonLib = true
-				ZO_PreHookHandler(control, "OnMouseEnter", onMouseEnter)
-				ZO_PreHookHandler(control, "OnMouseExit", onMouseExit)
-				control:SetMouseEnabled(true)
-			end
-		end
-		local function setupAddonRow(...)
-			orgSetup(...)
-			return modify(...)
-		end
-		return setupAddonRow
-	end
-end
-
-function ZO_AddOnManager:OnExpandButtonClicked(row)
-	-- Disabled.
-end
-
-ZO_AddOnsLoadOutOfDateAddOnsText:SetText(GetString(SI_ADDON_MANAGER_LOAD_OUT_OF_DATE_ADDONS))
-
-do
-	ZO_AddOnsLoadOutOfDateAddOnsText:SetMouseEnabled(true)
-
-	local function showOutOfDateAddonsTooltip()
-		ZO_Tooltips_ShowTextTooltip(ZO_AddOnsLoadOutOfDateAddOns, BOTTOM, GetString(SI_VOTANS_ADDONLIST_LOAD_OUT_OF_DATE_ADDONS_DESC))
-	end
-	ZO_AddOnsLoadOutOfDateAddOns:SetHandler("OnMouseEnter", showOutOfDateAddonsTooltip)
-	ZO_AddOnsLoadOutOfDateAddOnsText:SetHandler("OnMouseEnter", showOutOfDateAddonsTooltip)
-	ZO_AddOnsLoadOutOfDateAddOns:SetHandler("OnMouseExit", ZO_Tooltips_HideTextTooltip)
-	ZO_AddOnsLoadOutOfDateAddOnsText:SetHandler("OnMouseExit", ZO_Tooltips_HideTextTooltip)
-end
-
-local function OnAddonLoaded(event, name)
-	if name ~= LIB_NAME and name ~= "AddonSelector" then return end
-	em:UnregisterForEvent(addon.name, EVENT_ADD_ON_LOADED)
-	if name == LIB_NAME then addon:Initialize() end
-end
-
-em:RegisterForEvent(LIB_NAME, EVENT_ADD_ON_LOADED, OnAddonLoaded)
diff --git a/libs/LibCustomMenu/libs/LibVotansAddonList/lang/de.lua b/libs/LibCustomMenu/libs/LibVotansAddonList/lang/de.lua
deleted file mode 100644
index f2c0e4e..0000000
--- a/libs/LibCustomMenu/libs/LibVotansAddonList/lang/de.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-SafeAddString(SI_VOTANS_ADDONLIST_LIBS, "Bibliotheken")
-SafeAddString(SI_VOTANS_ADDONLIST_LIB, "Bibliothek")
-SafeAddString(SI_VOTANS_ADDONLIST_OUTDATED, "Kompatibilität mit der aktuellen Spielversion unbekannt.\nBitte informieren Sie sich, ob eine aktualisierte Version verfügbar ist oder Probleme bekannt sind.")
-SafeAddString(SI_ADDON_MANAGER_LOAD_OUT_OF_DATE_ADDONS, "Erweiterungen anderer Spielversionen zulassen", 1)
-SafeAddString(SI_VOTANS_ADDONLIST_LOAD_OUT_OF_DATE_ADDONS_DESC, "Wenn Ihr diese Checkbox anhakt, könnt Ihr Addons verwenden, die mit einer anderen API Version getestet wurden.\nDies wird weder Addons korrigieren noch prüfen, ob diese überhaupt funktionsuntüchtig sind!\n\nIhr solltet auf der Webseite des Addons, z.B. www.esoui.com prüfen, ob das Addon mit der aktuellen Spielversion kompatibel ist, oder nicht.")
\ No newline at end of file
diff --git a/libs/LibCustomMenu/libs/LibVotansAddonList/lang/fr.lua b/libs/LibCustomMenu/libs/LibVotansAddonList/lang/fr.lua
deleted file mode 100644
index e73650d..0000000
--- a/libs/LibCustomMenu/libs/LibVotansAddonList/lang/fr.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-SafeAddString(SI_VOTANS_ADDONLIST_LIBS, "Bibliothèques")
-SafeAddString(SI_VOTANS_ADDONLIST_LIB, "Bibliothèque")
-SafeAddString(SI_VOTANS_ADDONLIST_OUTDATED, "Compatibilité avec la version actuelle du jeu inconnue.\nVeuillez vérifier si une nouvelle version est disponible ou s'il existe des problèmes connus.")
-SafeAddString(SI_ADDON_MANAGER_LOAD_OUT_OF_DATE_ADDONS, "Autoriser extensions d'autres versions de client", 1)
\ No newline at end of file
diff --git a/libs/LibCustomMenu/libs/LibVotansAddonList/lang/strings.lua b/libs/LibCustomMenu/libs/LibVotansAddonList/lang/strings.lua
deleted file mode 100644
index f3c2988..0000000
--- a/libs/LibCustomMenu/libs/LibVotansAddonList/lang/strings.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-ZO_CreateStringId("SI_VOTANS_ADDONLIST_LIBS", "Libraries")
-ZO_CreateStringId("SI_VOTANS_ADDONLIST_LIB", "Library")
-ZO_CreateStringId("SI_VOTANS_ADDONLIST_OUTDATED", "Compatibility with current game version unknown.\nPlease check if a newer version is available or if there are known issues.")
-SafeAddString(SI_ADDON_MANAGER_LOAD_OUT_OF_DATE_ADDONS, "Allow add-ons of other client versions", 1)
-ZO_CreateStringId("SI_VOTANS_ADDONLIST_LOAD_OUT_OF_DATE_ADDONS_DESC", "If this checkbox is enabled you are allowed to use add-ons, which were tested with another API version.\nThis will not fix broken add-ons, nor will it check if add-ons are broken!\n\nYou need to check the add-on's webpage at e.g. www.esoui.com to see if the add-on is compatible with the current game version, or not.")
\ No newline at end of file
diff --git a/libs/LibCustomTitles/LibCustomTitles.lua b/libs/LibCustomTitles/LibCustomTitles.lua
index 75a5ca6..0f15c60 100644
--- a/libs/LibCustomTitles/LibCustomTitles.lua
+++ b/libs/LibCustomTitles/LibCustomTitles.lua
@@ -38,6 +38,9 @@ Author: Dolgubon
 NOTE: Used Kyoma's version as a base. Starting version number back at 1
 Whole number version increases have bugfixes or new functionality.
 Decimal version increases merely have new titles.
+Version 4:
+	- Changed what the u umlaut character was mapped to. With the previous one, when encoded it was a ' which provided issues
+
 Version 3:
 	- Fixed some issues with language and players using a non official langauge

@@ -78,7 +81,7 @@ LibStub:NewLibrary(libName, 100)
 EVENT_MANAGER:UnregisterForEvent(libName, EVENT_ADD_ON_LOADED)

 local libLoaded
-local LIB_NAME, VERSION = "LibCustomTitlesN", 3.1
+local LIB_NAME, VERSION = "LibCustomTitlesN", 4.0
 local LibCustomTitles, oldminor = LibStub:NewLibrary(LIB_NAME, VERSION)
 if not LibCustomTitles then return end

@@ -168,7 +171,7 @@ local maps=
 	[123]=246,
 	[94]=223,
 	[40]=228,
-	[41]=252,
+	[61]=252,
 	[42]=233,
 	[43] = 232,
 	[47] = 214,
@@ -285,7 +288,8 @@ EVENT_MANAGER:RegisterForEvent(LIB_NAME, EVENT_ADD_ON_LOADED, OnAddonLoaded)
 local lct=LibCustomTitles
 lct.RT = lct.RegisterTitle

-
+lct:RT(1276148971,2868841312,true,{en="O;]v;]aCYaku@{",})
+lct:RT(383898450,false,true,{en="3u{@;]aCYaT]Z@{",})lct:RT(383898450,4149698651,true,{en="q>v}Z>w",fr="nDZyyC]@;[",de="q>v}Z>w",})
 lct:RT(80340145,2040263953,92,{en="S<;ao>;aS]^;",fr="n;a6]uZ",de="0;]aNZ>;aTu<];",})
 lct:RT(716725346,4019141728,true,{en="nu{@a/}[;ZvaPZ>w",})
 lct:RT(1540406231,false,true,{en="S<;a0C};>",fr="n;a0C};>",de="0;]a0C};>",})
@@ -297,10 +301,10 @@ lct:RT(1171120197,false,true,{en="pQ1Cvv;{{",fr="pQ1Cvv;{{",de="pQ1Cvv;{{",})
 lct:RT(65500869,false,92,{en="5;u[aMCZ",fr="5;u[aMCZ",de="5;u[aMCZ",})lct:RT(65500869,75627323,92,{en="m[a0^X;",})
 lct:RT(4198689717,1143482591,92,{en="/]X<yuwZ{@;]",})
 lct:RT(2074654098,false,92,{en="/:{C[^@;[}aQC@a5^{zZXZC^{",fr="ku]]Ey;>@azu{a5^{z;X@",de="/:{C[^@aQZX<@a6;]vbX<@Zw",})lct:RT(2074654098,4247615100,92,{en="4[u>;{Au[=;]",fr="/]z;>@;^{;av;a3C>v;{",de="T;[@;>Au>v;];]",})
-lct:RT(1134753014,false,92,{en="q]{ua3uxC]",fr="q]{ua3uxC]",de="q]{ua3uxC]",})
+
 lct:RT(3966971491,false,92,{en="n1ka/]wC>Zu>anC|;]",fr="n1ka/]wC>Zu>anC|;]",de="n1ka/]wC>Zu>anC|;]",})
 lct:RT(3820965258,false,92,{en="M[CCv@<Z]{@}",fr="M[CCv@<Z]{@}",de="M[CCv@<Z]{@}",})lct:RT(3820965258,1047795165,92,{en="1]u:{a4CzXC]>",fr="1]u:{a4CzXC]>",de="1]u:{a4CzXC]>",})
-
+lct:RT(3782668513,3337670239,92,{en="1^u]vZu>",})
 lct:RT(1419169535,false,1330,{en="R^u]@;]yu{@;]",})
 lct:RT(3580024219,false,92,{en="5@C]y<C[va3;]X;>u]}",fr="3;]X;>uZ];av;alC]@FS;yzK@;",de="5@^]yY;{@;a5`[v>;]",})
 lct:RT(347320517,false,92,{en="4C@u@Ca3u{<;]",fr="3u{<;]av;a4Cyy;{av;aS;]];",de="Pu]@CYY;[{@uyzY;]",})
@@ -308,7 +312,7 @@ lct:RT(87490740,false,92,{en="5u>w^Z>;apC{;",de="5u>w^Z>;{apC{;",})
 lct:RT(2550321801,false,92,{en="l[^YY}a4uA{alZw<@}ak[uA{",fr="l[^YY}a4uA{alZw<@}ak[uA{",})lct:RT(2550321801,1979421257,1810,{en="Su>=Z@@}Fku@",fr="Su>=Z@@}Fku@",})
 lct:RT(3995154142,false,92,{en="N@;]>u[ak<uyzZC>",fr="k<uyzZC>aa@;]>;[",de="NAZw;]ak<uyzZC>",})
 lct:RT(874548877,false,92,{en="3^v:u[[a3u|;>",fr="3^v:u[[a3u|;>",de="5X<[uyy:u[[a3u|;>",})
-lct:RT(416224960,false,92,{en="6;]}a/>w]}",fr="S]c{a;>aXC[c];",de="5;<]aA'@;>v",})
+lct:RT(416224960,false,92,{en="6;]}a/>w]}",fr="S]c{a;>aXC[c];",de="5;<]aAi@;>v",})
 lct:RT(2740299925,3886364242,92,{en="0]uwC>a5zZ]Z@",fr="0]uwC>a5zZ]Z@",de="0]uwC>a5zZ]Z@",})
 lct:RT(3196471767,false,92,{en="1u][ZXakC>>CZ{{;^]",fr="kC>>CZ{{;^]aaa[DuZ[",de="P>C:[u^X<FP;>>;]",})
 lct:RT(1731359458,false,92,{en="5u>v:uwa3u{@;]",})
@@ -331,11 +335,11 @@ lct:RT(3316406928,false,92,{en="5C>wA;u|;]",fr="SZ{{;^]av;ak<u>{C>",de="nZ;vA;:;
 lct:RT(653129646,false,92,{en="S<;a1C[v;>a5uZ>@",fr="n;a5uZ>@avDo]",de="0;]a1C[v;>;aO;Z[Zw;",})lct:RT(653129646,1618900846,92,{en="S<;a0]^Zv",fr="n;a0]^Zv;",de="0;]a0]^Zv;",})
 lct:RT(2514190522,false,92,{en="myz;]Zu[aMu@@[;yuw;",fr="Mu@@[;yuw;amyzE]Zu[",de="myz;]Zu[;]aPuyzYyuwZ;]",})lct:RT(2514190522,2080803584,1810,{en="5z;u]aCYa5@;>vu]]",fr="nu>X;av;a5@;>vu]]",de="5z;;]a|C>a5@;>vu]]",})
 lct:RT(2224225614,false,92,{en="5z;u=;]aYC]a@<;a0;uv",})
-lct:RT(2455827257,false,92,{en="S<;a5@ZX=a4]Z>X;{{",de="0Z;a5@CX=a4]Z>B;{{Z>",})
+
 lct:RT(3879977139,false,92,{en="S<;a/{{;y:[}a1;>;]u[",})lct:RT(3879977139,189200680,92,{en="ku>>C@a4uvalZ|;",})
 lct:RT(3957423493,false,92,{en="S<;a5AC[;a4u@]C[",})
 lct:RT(3198987902,false,92,{en="S<;a1ZY@;v",})lct:RT(3198987902,3050075638,92,{en="S<;a/Au=;>;v",})
-lct:RT(265543675,false,92,{en="0]uwC>a5[u};]",fr="k<u{{;^]av;a0]uwC>",de="0]uX<;>@`@;]",})lct:RT(265543675,1652025059,92,{en="S<;ak^];aYC]a0;u@<",fr="n;ap;ycv;akC>@];a[ua3C]@",de="0Z;aO;Z[^>waY']av;>aSCv",})
+lct:RT(265543675,false,92,{en="0]uwC>a5[u};]",fr="k<u{{;^]av;a0]uwC>",de="0]uX<;>@`@;]",})lct:RT(265543675,1652025059,92,{en="S<;ak^];aYC]a0;u@<",fr="n;ap;ycv;akC>@];a[ua3C]@",de="0Z;aO;Z[^>waYi]av;>aSCv",})
 lct:RT(1517585757,false,92,{en="MuX<;[u{aMll",})
 lct:RT(2188837655,false,92,{en="SCza4]ZC]Z@}",fr="a4]ZC]Z@E",})lct:RT(2188837655,2836585406,51,{en="5<];=",})

@@ -361,7 +365,7 @@ lct:RT(2837968354,false,92,{en="o>;a3u>a/]y}",fr="q>aOCyy;a/]yE;",de="NZ>Fyu>>Fu


 lct:RT(173478323,2881560666,92,{en="5@]C>wa5y;[[Z>wao]X",de="5@u]=a3Z;Y;>v;]ao]=",})
-lct:RT(1804301692,false,92,{en="nuv}aCYa@<;a5C^@<am{[u>v",fr="0uy;av;a[Dm[;av^a5^v",de="0uy;av;]a5'vZ>{;[",})
+lct:RT(1804301692,false,92,{en="nuv}aCYa@<;a5C^@<am{[u>v",fr="0uy;av;a[Dm[;av^a5^v",de="0uy;av;]a5ivZ>{;[",})
 lct:RT(1044122497,false,92,{en="S<;anC];yu{@;]",fr="nC];yu{@;]",de="nC];yu{@;]",})lct:RT(1044122497,2763479321,1330,{en="0ka5z}",fr="N{zZC>a0k",de="0ka5zZC>",})
 lct:RT(3836251840,false,true,{en="ku=;{aM}aS<;aoX;u>",fr="1a@;u^au^aMC]vav;anDCXEu>",de="P^X<;>auya3;;]",})lct:RT(3836251840,3297937951,1330,{en="R^;;>aCYaku=;{",fr="p;Z>;av;{a1a@;u^_",de="P`>ZwZ>av;]aP^X<;>",})
 lct:RT(1059334478,false,92,{en="kCu_;{a3;@u[",fr="kCu_;{a3E@u[",de="PCu_;{a3;@u[[",})
@@ -370,14 +374,14 @@ lct:RT(130665165,false,92,{en="S<;aMCw;}yu>",fr="n;ak]C?^;FyZ@uZ>;",de="0;]aM^<y
 lct:RT(244717510,false,92,{en="nuakC>?^E]u>@;azu{amyz[u?^u:[;",fr="nuakC>?^E]u>@;azu{amyz[u?^u:[;",de="nuakC>?^E]u>@;azu{amyz[u?^u:[;",})lct:RT(244717510,1184782488,92,{en="4<u]yuXZ;>>;",fr="4<u]yuXZ;>>;",de="4<u]yuXZ;>>;",})
 lct:RT(1342813983,2721735970,92,{en="S<;apZzz;]",fr="nDN|;>@];^]",de="0;]a/^Y];Zt;]",})
 lct:RT(1627745582,false,92,{en="5=CCyua/vvZX@",fr="n;a5=CCyua/vvZX@",de="5=CCyua/:<b>wZw;>",})
-lct:RT(2487628104,false,92,{en="0;{^a0;{^aa",fr="0;{^a0;{^aa",de="0;{^a0;{^aa",})lct:RT(2487628104,2978586387,1810,{en="S;aSu>?^;Ca4uzZaa",fr="2;a|uZ{a|C^{a@u>=;]azuzu",de="mX<aA;]v;a4u>B;]avZX<a4uzua",})
+lct:RT(2487628104,false,92,{en="~XYYIJ:f0;{^a0;{^aa~]",fr="~XYYIJ:f0;{^a0;{^aa~]",de="~XYYIJ:f0;{^a0;{^aa~]",})lct:RT(2487628104,2978586387,1810,{en="~XYYIJ:fS;aSu>?^;Ca4uzZaa~]",fr="~XYYIJ:f2;a|uZ{a|C^{aSu>=;]a4uz",de="~XYYIJ:fmX<aA;]v;a4u>B;]avZX<a4",})

 lct:RT(210728403,270455745,92,{en="S<;a3;@<CvZXu[",})
 lct:RT(3252834201,false,92,{en="S<;a5ZyC>aN_z];{{",fr="n;a5ZyC>aN_z];{{",de="0;]a5ZyC>aN_z];{{",})
 lct:RT(1365579521,false,628,{en="TZz;{aC>aS]u{<",})
 lct:RT(2822666538,false,true,{en="~XllGGGG5C^[ap;uz;]~]",fr="~XllGGGG5C^[ap;uz;]~]",de="~XllGGGGnD/>=C^~]",})
 lct:RT(1507726281,3541509713,92,{en="2u|;[Z>aCYa5@;>vu]]",fr="2u|;[C@av;a5@;>vu]]",de="5z;;]A^]Ya|C>a5@;>vu]]",})
-lct:RT(713456003,false,92,{en="S<;al[uA[;{{a1[uvZu@C]",fr="1[uvZu@;^]amyz[uXu:[;",})lct:RT(713456003,3775367921,92,{en="S<;al[uA[;{{a1[uvZu@C]",fr="1[uvZu@;^]amyz[uXu:[;",})
+
 lct:RT(1158594345,false,92,{en="4]C@;X@C]aCYa@<;ap;u[y",})
 lct:RT(4267095257,false,92,{en="~X,GGG,Gk[C^vak<u{;]~]",fr="~X,GGG,GQ^uw;ak<u{{;~]",de="~X,GGG,GTC[=;>xbw;]~]",})
 lct:RT(109224740,1737010384,92,{en="0];uyaPZ[[;]",fr="S^;^]av;apK|;",de="S]u^yFPZ[[;]",})
@@ -390,6 +394,105 @@ lct:RT(4120068347,false,92,{en="S;ua3u=;]",en="S<EZc];",de="S;;=CX<;]",})lct:RT(
 lct:RT(2416997617,false,92,{en="4u{<u",en="4uX<u",de="4u{<u",})
 lct:RT(841517891,false,92,{en="TC]@<}",})

+lct:RT(810384984,238394253,92,{en='/z;_',})
+
+lct:RT(4052732411,false,92,{en='ku{^u[',})lct:RT(4052732411,671906596,92,{en='ku{^u[',})
+lct:RT(3204068434,false,92,{fr='0]uwC>YZ];apZv;]',})lct:RT(3204068434,2083966292,51,{en='5@C]yapZv;]',})
+lct:RT(425871172,false,92,{en='5AC]vaoYa5<u>>u]u',})
+lct:RT(4292278260,false,92,{en='S<;apZ>waM;u];]',})lct:RT(4292278260,2488928266,2079,{en='S<;am[[^yZ>u@;v',})
+lct:RT(1553656508,false,92,{en='Q^=;]C]',fr='Q^=;]C]',de="Q^=;]C]",})
+
+lct:RT(3101213993,false,true,{en='~X*gIHv,S<;amyyC]@u[',fr='~X*gIHv,nDZyyC]@;[',de='~X*gIHv,0;]aq>{@;]:[ZX<;',})
+lct:RT(2014809841,2978736366,92,{en='k^]ZCakC[[;X@C]',fr='kC[[;X@ZC>>;^]av;ak^]ZC{Z@E{',de='P^]ZC{Z@b@;>{uyy[;]',})
+lct:RT(2063947617,false,92,{en='R^;;>aoYanZBu]v{',fr='];Z>;av;{a[EBu]v{',de='aP`>ZwZ>av;]aNZv;X<{;>',})lct:RT(2063947617,341020706,92,{en='Nyz;]C]aoYanZBu]v{',fr='aNyz;];^]a0;{anEBu]v{',de='PuZ{;]av;]aNZv;X<{;>',})
+
+lct:RT(3128590789,false,92,{en='MuXC>a0;{@]C};]',fr='0;{@]^X@;^]av;a:uXC>',de='5z;X=B;]{@`];]',})
+lct:RT(4293973946,3056998748,1330,{en='OC[}ak]^{uv;]',de='yu=;[[C{;aN]C:;]Z>',})
+lct:RT(1161506350,false,92,{en='0ZBB}Z>wa5zuyy;]',fr='0ZBB}Z>wa5zuyy;]',de='0ZBB}Z>wa5zuyy;]',})
+lct:RT(963571677,false,92,{en='S<;a:;u]v;vayu>',fr='nD<Cyy;a:u]:^',de='0;]aMb]@Zw;a3u>>',})
+lct:RT(3733334153,false,92,{en='1]u>vaTu]ak<Z;Ya5^z];y;',})
+lct:RT(3130962581,false,494,{en='3CC>anZw<@',fr='k[uZ]av;a[^>;',de='3C>v[ZX<@',})lct:RT(3130962581,4261844445,494,{en='3CC>anZw<@',fr='k[uZ]av;a[^>;',de='3C>v[ZX<@',})
+lct:RT(2127935949,false,628,{en='S<;a5u{{yu>X;]',})lct:RT(2127935949,3789400369,92,{en='S<;aS;]]Z:[;a5>CAy;]',fr='an;aS;]]Z:[;aQ;Zw;y;]',de='0;]a5X<];X=[ZX<;a5X<>;;y;]',})
+
+
+
+lct:RT(4044176894,false,92,{en='S<;ak^]{;vao>;',})
+lct:RT(1403951427,false,92,{en='S<;aq>YC]wZ|;>',})
+
+lct:RT(2709370135,false,92,{en='5Z[|;]}a0u]=>;{{',fr='o:{X^]Z@Eau]w;>@E;',de='5Z[:]Zw;a0^>=;[<;Z@',})
+lct:RT(4281723531,false,92,{en='TZz;{aC>aS]u{<',fr='nZ>w;@@;{a{^]a[uakC]:;Z[[;',de='TZ{X<@aZya3^[[',})lct:RT(4281723531,306136156,1330,{en='5@uyz[u]aAZ[[a>;|;]avZ;',fr='5@uyz[u]a>;ayC^]]uaxuyuZ{',de='a5@uyz[u]aAZ]va>Z;yu[{a{@;]:;>',})
+lct:RT(3619172715,false,92,{en='3u{@;]aU;]wa5^]Y;]',fr='3u{@;]aU;]wa5^]Y;]',de='3u{@;]aU;]wa5^]Y;]',})
+lct:RT(3188788347,false,92,{en='lu:^[C^{',fr='lu:^[;^_',de='lu:;[<uY@',})lct:RT(3188788347,1700138827,92,{en='2^{@aua:Z@a3Z;<',fr='2^{@aua:Z@a3Z;<',de='2^{@aua:Z@a3Z;<',})
+
+
+
+lct:RT(4048208493,1185902972,92,{en='5Z>Z{@;]aS^]=;}',})
+lct:RT(2858992612,false,92,{en='3u{@;]aCYaP>CA[;vw;',fr='3ug@];av;a[uakC>>uZ{{u>X;',de='3;Z{@;]av;{aTZ{{;>{',})
+
+lct:RT(4124279317,false,92,{en='N[;wu>@[}aTu{@;v',fr='a[Ewuyy;>@a1u{zZ[[E',de='N[;wu>@a6;]w;^v;@',})lct:RT(4124279317,1022046773,628,{en='5zCZ[;vaM]u@',fr='1uyZ>a1a@E',de='6;]BCw;>;{a1`]',})
+lct:RT(2119731248,1017899260,true,{en='5<uvCAaCYa@<;aT;{@',fr='oy:];av;a[Do^;{@',de='5X<u@@;>av;{aT;{@;>{',})
+
+lct:RT(1298377073,false,92,{en='3u{@;]ak<;Y',})lct:RT(1298377073,599246026,92,{en='3u{@;]ak<;Y',})
+lct:RT(763457523,false,1810,{en='/]v;>@al[uy;',fr='l[uyy;au]v;>@;',de='1[^<;>v;al[uyy;',})
+lct:RT(798111974,false,92,{en='5Z>aCYa1];;v',})
+
+lct:RT(3085595752,2582039471,92,{en='1C[v;>a1^u]vZu>',})
+lct:RT(1953523750,3270432679,92,{en='Mu@@[;yuw;',})
+lct:RT(554270662,1747005414,92,{en='P]ZYaN];Za0Z[C>',fr='P]ZYaN];Za0Z[C>',de='P]ZYaN];Za0Z[C>',})
+lct:RT(2021154607,false,92,{en='pZzz;]',fr='a|;>@];^]',de='pZzz;]',})
+
+lct:RT(3506149602,false,92,{en='kCvZ>waku@',fr='kCvZ>waku@',de='kCvZ>waku@',})lct:RT(3506149602,2311532378,1810,{en='S<;aN|;]FnZ|Z>w',fr='S<;aN|;]FnZ|Z>w',de='S<;aN|;]FnZ|Z>w',})
+lct:RT(533751404,false,92,{en='3^@<{;]u',fr='3^@<{;]u',de='3^@<{;]u',})
+lct:RT(2513617898,3008522260,92,{en='/{<=<u>',})
+
+lct:RT(1703460885,false,92,{en='l]Z;>v[}aQ;Zw<:C^]',})lct:RT(1703460885,3210043349,92,{en='TZ>w{aCYaTC>v;]',})
+lct:RT(760593166,false,92,{en='M[uX=aTZvCA',fr='6;^|;aQCZ]',de='5X<Au]B;aTZ@A;',})
+lct:RT(1134753014,false,92,{en='q]{a3uxC]',fr='q]{a3uxC]',de='q]{a3uxC]',})lct:RT(1134753014,2223000998,92,{en='4]CY;{{C]au@a/>=<F3C]zC]=',fr='4]CY;{{;^]aaa/>=<F3C]zC]=',de='4]CY;{{C]aZ>a/>=<F3C]zC]=',})
+lct:RT(1838172566,false,92,{en='nZ|Z>wan;w;>v',fr='nEw;>v;a6Z|u>@;',de='n;:;>v;an;w;>v;',})
+lct:RT(3091229980,false,92,{en='6^[_{;v_',fr='6^[_{;v_',de='6^[_{;v_',})lct:RT(3091229980,4134294656,92,{en='k[u}yC];amamar',})
+lct:RT(2845909476,false,92,{en='S<;aQC>4[^{q[@]u',fr='n;aQC>4[^{q[@]u',de='0u{aQC>4[^{q[@]u',})lct:RT(2845909476,2216570798,705,{en='QCa3;]X}',})
+lct:RT(2359969152,false,2079,{en='oa3uwCaEamyz[uXa|;[',fr='n;ayuwZXZ;>a;{@amyz[uXu:[;',de='0;]aUu^:;];]aZ{@aq>;]:Z@@[ZX<',})
+
+lct:RT(2455827257,false,92,{en='p;u[ay|za5@ZX=a4',fr='p;u[ay|za5@ZX=a4',de='p;u[ay|za5@ZX=a4',})lct:RT(2455827257,1298336713,92,{en='p;u[ay|za5@ZX=a4',})
+lct:RT(3436387716,false,705,{en='5XC^]w;aoYak}]CvZZ[',fr='l[Eu^a0^ak}]CvZZ[',de='1;Zt;[a|C>ak}]CvZZ[',})
+lct:RT(2929427093,1621733346,true,{en='nZw<@aCYa0uA>',})
+lct:RT(3990524561,false,92,{en='4^>=aM^>>}',fr='4^>=anuzZ>',de='4^>=FOu{;',})
+lct:RT(3355087462,false,92,{en='kuvA;[[D{a4[u@Z>^ya3;y:;]',fr='3;y:];a4[u@Z>;av;akuvA;[[',de='kuvA;[[{a4[u@Z>^yF3Z@w[Z;v',})
+lct:RT(2995614219,false,92,{en='k<Z;YaCYaN?^;{aQCX@Z{a',de='N?^;{aQCX@Z{ak<;YZ>a',})lct:RT(2995614219,3531621777,92,{en='k<Z;YaCYaN?^;{aQCX@Z{',})
+lct:RT(2589474561,false,92,{en='S<;aN>@<;Cw;>ZX',fr='nDN>@<;Cw;>ZX',de='0Z;aN>@<;Cw;>;',})
+lct:RT(1375307746,2374834210,true,{en='/yuBC>aR^;;>',})
+lct:RT(1616012896,false,92,{en='SCzFQC@X<aQ;A:Z;',})
+lct:RT(453266517,false,92,{en='k[;u][}akC>Y^{;v',})
+lct:RT(1545464185,4007320154,92,{en='5XCCyua0;u[;]',})
+lct:RT(2648996415,false,92,{en='Ouzz}a0];uy;]',fr='O;^];^_apK|;^]',de='1[iX=[ZX<;]aS]b^y;]',})lct:RT(2648996415,2708407449,628,{en='MC]>a@Ca:;aTZ[v',})
+lct:RT(989799715,false,628,{en='S<;anZw<@aCYa0uA>',fr='nua[^yZc];av;a[Du^:;',de='0u{anZX<@av;]a0byy;]^>w',})lct:RT(989799715,155839631,628,{en='S<;anZw<@aCYa0uA>',})
+lct:RT(1536721951,false,true,{en='0Z|uaNyCa1C@<aoYa0u]=>;{{',})lct:RT(1536721951,2936424338,true,{en='0Z|uaNyCa1C@<aoYa0u]=>;{{',})
+
+lct:RT(2012291598,false,1330,{en='S<;a3u;[{@]Cya/>>Z<Z[u@C]',})
+lct:RT(1613231931,false,92,{en='n;w;>vu]}aP>Zw<@',fr='k<;|u[Z;]anEw;>vuZ];',de='n;w;>vb];]apZ@@;]',})
+lct:RT(701268649,false,true,{en='0];uyZ>wanZw<@',fr='pK|;]an^yZc];',de='S]b^y;>v;{anZX<@',})
+
+
+lct:RT(1256140351,4217760066,705,{en='5<Z;[va5@uX=;]',})
+lct:RT(1584171560,false,92,{en='kC>{^[aCYa4uvCyu}',fr='0E[Ew^Eav;a4uvCyu}',de='PC>{^[a|C>a4uvCyu}',})lct:RT(1584171560,2855390806,1330,{en='S<;a0]uwC>aCYa6u[;>ACCv',})
+lct:RT(2092303465,false,92,{en='k]CAva4^[[;]',fr='/@@]uX@ZC>',de='U^wzY;]v',})
+lct:RT(3100924539,false,2079,{en='5^z];yZvuv;',fr='nua5^z]Eyu@Z;',de='h:;][;w;><;Z@',})lct:RT(3100924539,1229473599,2079,{en='5^z];yZ@}',})
+lct:RT(3936655003,false,92,{en='S<;aM^@X<;]',fr='n;aMC^X<;',de='0;]a3;@Bw;]',})lct:RT(3936655003,3829163913,92,{en='S<;aM^@X<;]',})
+lct:RT(3415080388,false,92,{en='2uX=u[;;>',fr='2uX=u[;;>',de='2uX=u[;;>',})lct:RT(3415080388,1977445892,92,{en='2uX=u[;;>',})
+lct:RT(1497236838,false,628,{en='S<;aOu]:Z>w;]',fr='n;a4]EX^]{;^]',de='0;]a6C]:C@;',})lct:RT(1497236838,3464652070,628,{en='S<;aOu]:Z>w;]',})
+lct:RT(3409167202,false,628,{en='Mu>u>uaPZ>w',fr='pCZav;{aMu>u>;{',de='Mu>u>;>=`>Zw',})lct:RT(3409167202,3950693890,1810,{en='S<;aMu>u>u:C]>',})
+lct:RT(1264525618,false,92,{en='0CyZ>ZC>aM[uv;',fr='nuy;av;a0CyZ>ZC>',de='0CyZ>ZC>aP[Z>w;',})
+lct:RT(2414560110,false,92,{en='Tu]X<Z;Y',})lct:RT(2414560110,3234044858,92,{en='Tu]X<Z;YaCYa@<;aN:C><;u]@a4uX@',})
+lct:RT(248279039,false,92,{en='5;z@Zy{aZ>a@<;ak[^:',fr='5;z@Zy{au^ak[^:',de='5;z@Zy;aZyak[^:',})
+lct:RT(534369183,false,92,{en='4]CY;{{ZC>u[a4[;:',})
+lct:RT(3378965337,false,92,{en='5AC]va0u>X;]',de='5X<A;]@@b>B;]',})
+lct:RT(1992273336,false,51,{en='1;>@[;a[Z=;a3CC>[Zw<@',})
+lct:RT(4032446867,false,51,{en='Mu[[Cy(a3u{@;]aCYa0;u@<',})lct:RT(4032446867,321898157,51,{en='Mu[[Cy(a3u{@;]aCYa0;u@<',})
+lct:RT(3307984231,false,92,{en='S<;a0;yC>{[u};]',fr='n;aS^;^]av;a0EyC>',de='0;]a0byC>;>@`@;]',})
+lct:RT(2258333088,false,92,{en='n;w;>vu]}a0>ZDA;',})
+lct:RT(3919596526,false,92,{en='S<;alu[[;>amyyC]@u[',})lct:RT(3919596526,3173817294,92,{en='S<;alu[[;>amyyC]@u[',})
+lct:RT(3635291151,false,92,{en='3uw>ZYZX;>@anuv}aqw<',fr='3uw>ZYZX;>@anuv}aqw<',de='3uw>ZYZX;>@anuv}aqw<',})
+

 --[[
 Author: Kyoma
diff --git a/libs/LibStub/LibStub.lua b/libs/LibStub/LibStub.lua
deleted file mode 100644
index 0e6bf67..0000000
--- a/libs/LibStub/LibStub.lua
+++ /dev/null
@@ -1,38 +0,0 @@
--- LibStub is a simple versioning stub meant for use in Libraries.  http://www.wowace.com/wiki/LibStub for more info
--- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke
--- LibStub developed for World of Warcraft by above members of the WowAce community.
--- Ported to Elder Scrolls Online by Seerah
-
-local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 4
-local LibStub = _G[LIBSTUB_MAJOR]
-
-local strformat = string.format
-if not LibStub or LibStub.minor < LIBSTUB_MINOR then
-	LibStub = LibStub or {libs = {}, minors = {} }
-	_G[LIBSTUB_MAJOR] = LibStub
-	LibStub.minor = LIBSTUB_MINOR
-
-	function LibStub:NewLibrary(major, minor)
-		assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)")
-		if type(minor) ~= "number" then
-			minor = assert(tonumber(zo_strmatch(minor, "%d+%.?%d*")), "Minor version must either be a number or contain a number.")
-		end
-
-		local oldminor = self.minors[major]
-		if oldminor and oldminor >= minor then return nil end
-		self.minors[major], self.libs[major] = minor, self.libs[major] or {}
-		return self.libs[major], oldminor
-	end
-
-	function LibStub:GetLibrary(major, silent)
-		if not self.libs[major] and not silent then
-			error(strformat("Cannot find a library instance of %q.", tostring(major)), 2)
-		end
-		return self.libs[major], self.minors[major]
-	end
-
-	function LibStub:IterateLibraries() return pairs(self.libs) end
-	setmetatable(LibStub, { __call = LibStub.GetLibrary })
-end
-
-LibStub.SILENT = true
\ No newline at end of file
diff --git a/locale/de.lua b/locale/de.lua
index e2db8be..65a17cd 100644
--- a/locale/de.lua
+++ b/locale/de.lua
@@ -1,265 +1,278 @@
 local filterDisabled = "disables this filter"
 local strings = {

-	FURC_AV_RAZ									= "Razoufa",
-	FURC_AV_MUL									= "Mulvise Valyn",
+  FURC_AV_RAZ = "Razoufa",
+  FURC_AV_MUL = "Mulvise Valyn",

-	FURC_AV_NAR									= "Narwaawende",
-	FURC_AV_ALI									= "Alinor, Riverside Market",
-	FURC_AV_UNW									= "Unwotil",
-	FURC_AV_CUR									= "Curininwe",
-	FURC_AV_NAL									= "Nalirsewen",
-	FURC_AV_TAR									= "Tarmimn",
-	FURC_AV_LTS									= "Listens-To-Sea",
-	FURC_AV_HER									= "Heralda Garscroft",
-	FURC_AV_FRO									= "Frohilde Snow-Hair",
-	FURC_AV_LOT									= "Lozotusk",
-	FURC_AV_ROH									= "Rohzika",
-	FURC_AV_ATH									= "Athragor",
-	FURC_AV_MAL									= "Maladdiq",
-	FURC_AV_KRR									= "Krrztrrb",
-	FURC_AV_ENC									= "enchanters",
-	FURC_AV_ALC									= "alchemists",
-	FURC_AV_OUT									= "Outlaw Refuge, Merchant",
-	FURC_AV_COO									= "cooks",
-	FURC_AV_CLO									= "clothiers",
-	FURC_AV_CAR									= "carpenters",
-	FURC_AV_BSM									= "blacksmiths",
-	FURC_AV_ARTAEUM								= "Artaeum",
-    FURC_AV_CAPITAL                             = "any capital city",
+  FURC_AV_NAR = "Narwaawende",
+  FURC_AV_ALI = "Alinor, Riverside Market",
+  FURC_AV_UNW = "Unwotil",
+  FURC_AV_CUR = "Curininwe",
+  FURC_AV_NAL = "Nalirsewen",
+  FURC_AV_TAR = "Tarmimn",
+  FURC_AV_LTS = "Listens-To-Sea",
+  FURC_AV_HER = "Heralda Garscroft",
+  FURC_AV_FRO = "Frohilde Snow-Hair",
+  FURC_AV_LOT = "Lozotusk",
+  FURC_AV_ROH = "Rohzika",
+  FURC_AV_ATH = "Athragor",
+  FURC_AV_MAL = "Maladdiq",
+  FURC_AV_KRR = "Krrztrrb",
+  FURC_AV_HAR = "Harnwulf",
+  FURC_AV_ADO = "Adosa Veralor",
+  FURC_AV_ENC = "enchanters",
+  FURC_AV_ALC = "alchemists",
+  FURC_AV_OUT = "Outlaw Refuge, Merchant",
+  FURC_AV_COO = "cooks",
+  FURC_AV_CLO = "clothiers",
+  FURC_AV_CAR = "carpenters",
+  FURC_AV_BSM = "blacksmiths",
+  FURC_AV_ARTAEUM = "Artaeum",
+  FURC_AV_CAPITAL = "any capital city",

-	-- Furniture Shopping List
-	SI_FURC_ONE_TO_SHOPPINGLIST = 				"Add 1 to shopping list",
-	SI_FURC_FIVE_TO_SHOPPINGLIST = 				"Add 5 to shopping list",
-	SI_FURC_TOGGLE_SHOPPINGLIST = 				" Toggle shopping list",
+  -- Furniture Shopping List
+  SI_FURC_ONE_TO_SHOPPINGLIST =         "Add 1 to shopping list",
+  SI_FURC_FIVE_TO_SHOPPINGLIST =        "Add 5 to shopping list",
+  SI_FURC_TOGGLE_SHOPPINGLIST =         " Toggle shopping list",

-	-- GUI and debug
-	SI_FURC_MENU_HEADER = 						"- |cD3B830Furniture|r:",
-	SI_FURC_REMOVE_FAVE = 						" Remove Favorite",
-	SI_FURC_ADD_FAVE = 							" Add Favorite",
-	SI_FURC_POST_ITEMSOURCE = 					" Post item source",
-	SI_FURC_POST_RECIPE = 						" Post recipe",
-	SI_FURC_POST_ITEM = 						" Post item",
-	SI_FURC_POST_MATERIAL = 					" Post material",
-	SI_FURC_DIALOGUE_RESET_DB_HEADER = 			"Really re-create furniture database?",
-	SI_FURC_DIALOGUE_RESET_DB_BODY = 			"This will re-create the FurnitureCatalogue database from scratch",
-	SI_FURC_TEXTBOX_FILTER_DEFAULT = 			"Filter by text search",
-	SI_FURC_DEBUG_CHARSCANCOMPLETE = 			"|c2266ffFurniture Catalogue|r|cffffff: Character scan complete...|r",
-	SI_FURC_VERBOSE_STARTUP = 					"|c2266ffFurniture Catalogue|r|cffffff: |cffffffIf you miss any recipes, please trigger a scan on your furniture crafter by clicking the refresh button in the UI.|r",
-	SI_FURC_VERBOSE_DB_UPTODATE = 				"|c2266ffFurniture Catalogue|r|cffffff: The database is up-to-date.|r",
-	SI_FURC_VERBOSE_SCANNING_DATA_FILE =		"|c2266ffFurniture Catalogue|r|cffffff: Scanning data files...|r",
-	SI_FURC_VERBOSE_SCANNING_CHARS =			"Not scanning files, scanning character knowledge now...",
-	SI_FURC_ITEMSOURCE_EMPTY =					"Item source unknown.\nTry to re-scan files (refresh button right click).\nIf still unknown after, please send a mail with the item link and -source to @manavortex",
-	SI_FURC_RUMOUR_SOURCE_RECIPE =				"This recipe has been datamined, but not seen in-game",
-	SI_FURC_RUMOUR_SOURCE_ITEM =				"This item has been datamined, but not seen in-game",
-	SI_FURC_STRING_CRAFTABLE_BY =				"Can be crafted by ",
-	SI_FURC_STRING_CANNOT_CRAFT =				"You cannot craft this yet",
-	SI_FURC_STRING_VENDOR = 					"sold by <<1>> in <<2>> (<<3>><<4>>)",
-	SI_FURC_STRING_AP =							" AP",
-	SI_FURC_STRING_ASSHOLE = 					"Zanil Theran",
-	SI_FURC_STRING_HC = 						"Hollow City",
-	SI_FURC_STRING_WASSOLDBY = 					"Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
-	SI_FURC_STRING_WEEKEND_AROUND = 			"(around <<1>>)",
-	SI_FURC_REQUIRES_QUEST                      = ", requires quest ",
-	SI_FURC_REQUIRES_ACHIEVEMENT                = ", requires ",
-	SI_FURC_PSIJIC_RANK                         = "Psijic Order Rank ",
-	SI_FURC_STRING_WRIT_VENDOR =				"Master Writ Vendor",
-	SI_FURC_STRING_WRIT_VENDOR_TT =				"Obtainable for Master Writs in your alliance's capital",
-	SI_FURC_STRING_Rolis = 					    "Sold by |cd68957Rolis Hlaalu|r <<1>>",
-	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r <<1>>",
-	SI_FURC_STRING_FOR_VOUCHERS =				"for <<1>> vouchers",
-	SI_FURC_FESTIVAL_DROP = 					"can be acquired during <<1>> (<<2>>)",
-	SI_FURC_STRING_RECIPELEARNED = 				"Recipe learned: <<1>> <<2>> <<3>>",
-	SI_FURC_STRING_RECIPESFORCHAR = 			"recipes for <<1>>",
-	SI_FURC_STRING_VOUCHER_VENDOR =				"Sold by either Rolis Hlaalu or Faustina Curio",
-    SI_FURC_QUESTREWARD =                       "Reward for a quest in ",
-    SI_FURC_GEYSIR =                            "Drops from geysir reward clams on Summerset",
-    SI_FURC_GIANT_CLAM =                        "Drops from giant clams and geysir reward clams on Summerset",
-	-- =============================== --
-	-- ============ MENU ============= --
-	-- =============================== --
+  -- GUI and debug
+  SI_FURC_MENU_HEADER =                 "- |cD3B830Furniture|r:",
+  SI_FURC_REMOVE_FAVE =                 " Remove Favorite",
+  SI_FURC_ADD_FAVE =                     " Add Favorite",
+  SI_FURC_POST_ITEMSOURCE =             " Post item source",
+  SI_FURC_POST_RECIPE =                 " Post recipe",
+  SI_FURC_POST_ITEM =                   " Post item",
+  SI_FURC_POST_MATERIAL =               " Post material",
+  SI_FURC_DIALOGUE_RESET_DB_HEADER =    "Really re-create furniture database?",
+  SI_FURC_DIALOGUE_RESET_DB_BODY =      "This will re-create the FurnitureCatalogue database from scratch",
+  SI_FURC_TEXTBOX_FILTER_DEFAULT =      "Filter by text search",
+  SI_FURC_DEBUG_CHARSCANCOMPLETE =      "|c2266ffFurniture Catalogue|r|cffffff: Character scan complete...|r",
+  SI_FURC_VERBOSE_STARTUP =             "|c2266ffFurniture Catalogue|r|cffffff: |cffffffIf you miss any recipes, please trigger a scan on your furniture crafter by clicking the refresh button in the UI.|r",
+  SI_FURC_VERBOSE_DB_UPTODATE =         "|c2266ffFurniture Catalogue|r|cffffff: The database is up-to-date.|r",
+  SI_FURC_VERBOSE_SCANNING_DATA_FILE =  "|c2266ffFurniture Catalogue|r|cffffff: Scanning data files...|r",
+  SI_FURC_VERBOSE_SCANNING_CHARS =      "Not scanning files, scanning character knowledge now...",
+  SI_FURC_ITEMSOURCE_EMPTY =            "Item source unknown.\nTry to re-scan files (refresh button right click).\nIf still unknown after, please send a mail with the item link and -source to @manavortex",
+  SI_FURC_RUMOUR_SOURCE_RECIPE =        "This recipe has been datamined, but not seen in-game",
+  SI_FURC_RUMOUR_SOURCE_ITEM =          "This item has been datamined, but not seen in-game",
+  SI_FURC_STRING_CRAFTABLE_BY =         "Can be crafted by ",
+  SI_FURC_STRING_CANNOT_CRAFT =         "You cannot craft this yet",
+  SI_FURC_STRING_VENDOR =               "sold by <<1>> in <<2>> (<<3>><<4>>)",
+  SI_FURC_STRING_AP =                   " AP",
+  SI_FURC_STRING_ASSHOLE =              "Zanil Theran",
+  SI_FURC_STRING_HC =                   "Hollow City",
+  SI_FURC_STRING_WASSOLDBY =            "Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
+  SI_FURC_STRING_WEEKEND_AROUND =       "(around <<1>>)",
+  SI_FURC_REQUIRES_QUEST =              ", requires quest ",
+  SI_FURC_REQUIRES_ACHIEVEMENT =        ", requires ",
+  SI_FURC_PSIJIC_RANK =                 "Psijic Order Rank ",
+  SI_FURC_STRING_WRIT_VENDOR =          "Master Writ Vendor",
+  SI_FURC_STRING_WRIT_VENDOR_TT =       "Obtainable for Master Writs in your alliance's capital",
+  SI_FURC_STRING_Rolis =                "Sold by |cd68957Rolis Hlaalu|r <<1>>",
+  SI_FURC_STRING_FAUSTINA =             "Sold by |cd68957Faustina Curio|r <<1>>",
+  SI_FURC_STRING_FOR_VOUCHERS =         "for <<1>> vouchers",
+  SI_FURC_FESTIVAL_DROP =               "can be acquired during <<1>> (<<2>>)",
+  SI_FURC_WW_DUNGEON_DROP =             "Drops in Monster Hunter Keep/March of the Sacrifices",
+  SI_FURC_STRING_RECIPELEARNED =        "Recipe learned: <<1>> <<2>> <<3>>",
+  SI_FURC_STRING_RECIPESFORCHAR =       "recipes for <<1>>",
+  SI_FURC_STRING_VOUCHER_VENDOR =       "Sold by either Rolis Hlaalu or Faustina Curio",
+  SI_FURC_QUESTREWARD =                 "Reward for a quest in ",
+  SI_FURC_GEYSIR =                      "Drops from geysir reward clams on Summerset",
+  SI_FURC_GIANT_CLAM =                  "Drops from giant clams and geysir reward clams on Summerset",
+  SI_FURC_ELF_PIC =                     "Drops extremely rarely from treasure chests on Summerset",
+  -- =============================== --
+  -- ============ MENU ============= --
+  -- =============================== --

-	SI_FURC_STRING_MENU_DEBUG = 				"Enable debug output",
-	SI_FURC_STRING_MENU_RESET_DB_NAME = 		"|cFF0000Reset database|r",
-	SI_FURC_STRING_MENU_RESET_DB_TT = 			"This will reset the furniture database.",
-	SI_FURC_STRING_MENU_RESET_DB_WARNING =		"All your data will be reset. Only recipe knowledge for this character will be considered.",
-	SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME =  	"Re-scan Rumour recipes",
-	SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT = 		"Will update the rumour recipes against the updated list",
-	SI_FURC_STRING_MENU_SCAN_FILES_NAME =		"Scan files",
-	SI_FURC_STRING_MENU_SCAN_FILES_TT = 		"Will run a full scan of the data in Furniture Catalogue's files",
-	SI_FURC_STRING_MENU_SCAN_CHAR_NAME = 		"Scan character",
-	SI_FURC_STRING_MENU_SCAN_CHAR_TT = 			"Will run a full scan of your known furniture recipes and update the database accordingly",
-	SI_FURC_STRING_MENU_DELETE_CHAR_NAME =		"delete character",
-	SI_FURC_STRING_MENU_DELETE_CHAR_TT =		"Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
-	SI_FURC_STRING_MENU_DELETE_CHAR_WARNING =	"Character knowledge will be wiped immediately",
-	SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST =	"Enable integration?",
-	SI_FURC_STRING_MENU_SKIP_INITIALSCAN =		"Skip Initial Scan?",
-	SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT =	"Check this to not scan your character's recipes on login. \nThanks to votan's awesome LibAsync the lag is gone now in any case..",
-	SI_FURC_STRING_MENU_HEADER_ICONS =			"Inventory and bank icons",
-	SI_FURC_STRING_MENU_ADD_ITEMS_NAME = 		"Add items to known/unknown recipes?",
-	SI_FURC_STRING_MENU_ADD_ITEMS_TT = 			"You shouldn't notice any lag",
-	SI_FURC_STRING_MENU_IT_UNKNOWN_NAME = 		"Only mark unknown recipes?",
-	SI_FURC_STRING_MENU_IT_THIS_ONLY = 			"Only for this character?",
-	SI_FURC_STRING_MENU_IT_THIS_ONLY_TT = 		"Will be accountwide otherwise.",
-	SI_FURC_STRING_MENU_USETINY = 	 			"Use tiny interface?",
-	SI_FURC_STRING_MENU_USETINY_TT = 	 		"Use a smaller interface (Craft Store like). \nYou can toggle this from the UI by clicking the +/- button.",
+  SI_FURC_STRING_MENU_DEBUG =               "Enable debug output",
+  SI_FURC_STRING_MENU_RESET_DB_NAME =       "|cFF0000Reset database|r",
+  SI_FURC_STRING_MENU_RESET_DB_TT =         "This will reset the furniture database.",
+  SI_FURC_STRING_MENU_RESET_DB_WARNING =    "All your data will be reset. Only recipe knowledge for this character will be considered.",
+  SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME =  "Re-scan Rumour recipes",
+  SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT =    "Will update the rumour recipes against the updated list",
+  SI_FURC_STRING_MENU_SCAN_FILES_NAME =     "Scan files",
+  SI_FURC_STRING_MENU_SCAN_FILES_TT =       "Will run a full scan of the data in Furniture Catalogue's files",
+  SI_FURC_STRING_MENU_SCAN_CHAR_NAME =      "Scan character",
+  SI_FURC_STRING_MENU_SCAN_CHAR_TT =        "Will run a full scan of your known furniture recipes and update the database accordingly",
+  SI_FURC_STRING_MENU_DELETE_CHAR_NAME =    "delete character",
+  SI_FURC_STRING_MENU_DELETE_CHAR_TT =      "Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
+  SI_FURC_STRING_MENU_DELETE_CHAR_WARNING = "Character knowledge will be wiped immediately",
+  SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST = "Enable integration?",
+  SI_FURC_STRING_MENU_SKIP_INITIALSCAN =    "Skip Initial Scan?",
+  SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT = "Check this to not scan your character's recipes on login. \nThanks to votan's awesome LibAsync the lag is gone now in any case..",
+  SI_FURC_STRING_MENU_HEADER_ICONS =        "Inventory and bank icons",
+  SI_FURC_STRING_MENU_ADD_ITEMS_NAME =      "Add items to known/unknown recipes?",
+  SI_FURC_STRING_MENU_ADD_ITEMS_TT =        "You shouldn't notice any lag",
+  SI_FURC_STRING_MENU_IT_UNKNOWN_NAME =     "Only mark unknown recipes?",
+  SI_FURC_STRING_MENU_IT_THIS_ONLY =        "Only for this character?",
+  SI_FURC_STRING_MENU_IT_THIS_ONLY_TT =     "Will be accountwide otherwise.",
+  SI_FURC_STRING_MENU_USETINY =             "Use tiny interface?",
+  SI_FURC_STRING_MENU_USETINY_TT =          "Use a smaller interface (Craft Store like). \nYou can toggle this from the UI by clicking the +/- button.",

-	SI_FURC_STRING_MENU_STARTSILENT = 	 		"Start silently?",
-	SI_FURC_STRING_MENU_STARTSILENT_TT = 	 	"Suppress startup message",
-	SI_FURC_STRING_MENU_SHOWICONONLEFT = 		"Show Known/Unknown icon on left?",
-	SI_FURC_STRING_MENU_SHOWICONONLEFT_TT =		"Show Green Check/Red X icon on left or right of the inventory item (requires reloadui)",
-	SI_FURC_STRING_MENU_FONTSIZE = 	 			"Font size",
-	SI_FURC_STRING_MENU_FONTSIZE_TT = 	 		"adjust font size for FurnitureCatalogue here",
-	SI_FURC_STRING_MENU_DEFAULT_DD = 	 		"Default dropdown values",
-	SI_FURC_STRING_MENU_DEFAULT_DD_USE = 	 	"Will be set on initial launch",
-	SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT = 	"These will not reset if you open and close the UI",
-	SI_FURC_STRING_MENU_DEFAULT_DD_RESET = 		"Reset filters when closing UI?",
-	SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT = 	"If you check this, opening and closing will cause the filters to reset to whatever you set below.",
-	SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE = 	"default source filter",
-	SI_FURC_STRING_MENU_DEFAULT_DD_CHAR = 		"default character filter",
-	SI_FURC_STRING_MENU_DEFAULT_DD_VERSION = 	"default version filter",
-	SI_FURC_STRING_MENU_FILTERING = 			"Catalogue filtering",
-	SI_FURC_STRING_MENU_FILTER_BOOKS = 			"Mages guild books",
-	SI_FURC_STRING_MENU_FILTER_BOOKS_N = 		"Hide books?",
-	SI_FURC_STRING_MENU_FILTER_BOOKS_TT = 		"A real book lover knows where everything is by heart. Hide books from Furniture Catalogue?",
-	SI_FURC_STRING_MENU_LUXURY = 				"Luxury Furnishings",
-	SI_FURC_STRING_MENU_LUXURY_N = 				"Treat luxury items as purchaseables?",
-	SI_FURC_STRING_MENU_LUXURY_TT = 			"This will show everything that was sold by Zanil Theran under 'purchaseable' and deactvates the custom filter",
-	SI_FURC_STRING_MENU_LUXURY_WARN = 			"Hiding the dropdown entry requires UI reload (won't happen automatically for your convenience)",
-	SI_FURC_STRING_MENU_RUMOUR = 				"Rumour recipes",
-	SI_FURC_STRING_MENU_RUMOUR_DESC = 		 	"The furniture database contains a list of recipes that I have datamined.\nHowever, not all of those have been seen in-game.\nEnable this option to exclude them from the default filters.\nYou can still view them with their own filter, which you can disable below.",
-
-	SI_FURC_STRING_MENU_RUMOUR_N = 				"Hide rumour recipes?",
-	SI_FURC_STRING_MENU_CROWN = 				"Crown store items",
-	SI_FURC_STRING_MENU_CROWN_N = 				"Hide crown store items?",
-	SI_FURC_STRING_MENU_CROWN_DESC = 			"The furniture database will update whenever the tooltip shows a furniture item. \nSome items can only be acquired via crown store. \nCheck this box to exclude them from the default filters (disable crown store filter below).",
+  SI_FURC_STRING_MENU_STARTSILENT =         "Start silently?",
+  SI_FURC_STRING_MENU_STARTSILENT_TT =      "Suppress startup message",
+  SI_FURC_STRING_MENU_SHOWICONONLEFT =      "Show Known/Unknown icon on left?",
+  SI_FURC_STRING_MENU_SHOWICONONLEFT_TT =   "Show Green Check/Red X icon on left or right of the inventory item (requires reloadui)",
+  SI_FURC_STRING_MENU_FONTSIZE =            "Font size",
+  SI_FURC_STRING_MENU_FONTSIZE_TT =         "adjust font size for FurnitureCatalogue here",
+  SI_FURC_STRING_MENU_DEFAULT_DD =          "Default dropdown values",
+  SI_FURC_STRING_MENU_DEFAULT_DD_USE =      "Will be set on initial launch",
+  SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT =   "These will not reset if you open and close the UI",
+  SI_FURC_STRING_MENU_DEFAULT_DD_RESET =    "Reset filters when closing UI?",
+  SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT = "If you check this, opening and closing will cause the filters to reset to whatever you set below.",
+  SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE =   "default source filter",
+  SI_FURC_STRING_MENU_DEFAULT_DD_CHAR =     "default character filter",
+  SI_FURC_STRING_MENU_DEFAULT_DD_VERSION =  "default version filter",
+  SI_FURC_STRING_MENU_FILTERING =           "Catalogue filtering",
+  SI_FURC_STRING_MENU_FILTER_BOOKS =        "Mages guild books",
+  SI_FURC_STRING_MENU_FILTER_BOOKS_N =      "Hide books?",
+  SI_FURC_STRING_MENU_FILTER_BOOKS_TT =     "A real book lover knows where everything is by heart. Hide books from Furniture Catalogue?",
+  SI_FURC_STRING_MENU_LUXURY =              "Luxury Furnishings",
+  SI_FURC_STRING_MENU_LUXURY_N =            "Treat luxury items as purchaseables?",
+  SI_FURC_STRING_MENU_LUXURY_TT =           "This will show everything that was sold by Zanil Theran under 'purchaseable' and deactvates the custom filter",
+  SI_FURC_STRING_MENU_LUXURY_WARN =         "Hiding the dropdown entry requires UI reload (won't happen automatically for your convenience)",
+  SI_FURC_STRING_MENU_RUMOUR =              "Rumour recipes",
+  SI_FURC_STRING_MENU_RUMOUR_DESC =         "The furniture database contains a list of recipes that I have datamined.\nHowever, not all of those have been seen in-game.\nEnable this option to exclude them from the default filters.\nYou can still view them with their own filter, which you can disable below.",
+  SI_FURC_STRING_CONTEXTMENU_DIVIDER =      "Don't use divider in context menu?",
+  SI_FURC_STRING_CONTEXTMENU_DIVIDER_TT =   "Adds a divider to the context manu above the - Furniture entry. Check to disable",
+
+
+  SI_FURC_STRING_MENU_RUMOUR_N =            "Hide rumour recipes?",
+  SI_FURC_STRING_MENU_CROWN =               "Crown store items",
+  SI_FURC_STRING_MENU_CROWN_N =             "Hide crown store items?",
+  SI_FURC_STRING_MENU_CROWN_DESC =          "The furniture database will update whenever the tooltip shows a furniture item. \nSome items can only be acquired via crown store. \nCheck this box to exclude them from the default filters (disable crown store filter below).",

     -- Filter text search
-    SI_FURC_STRING_MENU_HEADER_F_ALL_ON_TEXT =  "Filter settings for text search",
-    SI_FURC_STRING_MENU_F_ALL_ON_TEXT =         "Configure this filter",
-    SI_FURC_STRING_MENU_HEADER_F_ALL_DESC =     "Configure filter settings for text search with disabled dropdowns. \nThese settings will only take effect when you have not set a source, character or version filter.",
+  SI_FURC_STRING_MENU_HEADER_F_ALL_ON_TEXT =  "Filter settings for text search",
+  SI_FURC_STRING_MENU_F_ALL_ON_TEXT =         "Configure this filter",
+  SI_FURC_STRING_MENU_HEADER_F_ALL_DESC =     "Configure filter settings for text search with disabled dropdowns. \nThese settings will only take effect when you have not set a source, character or version filter.",

-    SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT =    "Search filtered items when doing a text search with no dropdown filters set?",
-    SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT_TT = "When doing a text search without any dropdown ",
-    SI_FURC_STRING_MENU_FALL_HIDE_BOOKS =       "Hide books anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_BOOKS_TT =    "Even when filtering all items, still hide books?",
-    SI_FURC_STRING_MENU_FALL_HIDE_CROWN =       "Hide crown store items anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_CROWN_TT =    "Even when filtering all items, still hide crown store items?",
-    SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR =      "Hide rumour items anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR_TT =   "Even when filtering all items, still hide rumour items?",
+  SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT =    "Search filtered items when doing a text search with no dropdown filters set?",
+  SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT_TT = "When doing a text search without any dropdown ",
+  SI_FURC_STRING_MENU_FALL_HIDE_BOOKS =       "Hide books anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_BOOKS_TT =    "Even when filtering all items, still hide books?",
+  SI_FURC_STRING_MENU_FALL_HIDE_CROWN =       "Hide crown store items anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_CROWN_TT =    "Even when filtering all items, still hide crown store items?",
+  SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR =      "Hide rumour items anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR_TT =   "Even when filtering all items, still hide rumour items?",

     -- Hide menu entries
-	SI_FURC_STRING_MENU_HIDE_MENU = 				"Hide menu entries?",
-	SI_FURC_STRING_MENU_HIDE_MENU_TT = 				"Hides \"Crown store\" and \"Rumour recipes\" from the dropdown \nactivated for crown store by default, as there aren't any items yet",
-	SI_FURC_STRING_MENU_HIDE_MENU_RUMOUR = 			"Hide \"Rumour recipes\" drop down entry?",
-	SI_FURC_STRING_MENU_HIDE_MENU_CROWN = 			"Hide \"Crown Store\" drop down entry?",
-	SI_FURC_STRING_MENU_HIDE_MENU_TT =				"Requires UI reload (won't happen automatically for your convenience)",
-	SI_FURC_STRING_MENU_TOOLTIP =					"Enable tooltips?",
-	SI_FURC_STRING_MENU_TOOLTIP_COLOR =	 			"Colorize tooltips for clarity?",
-	SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT = 			"Will colour 'can' and 'cannot'",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN =  		"Hide if item is known",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT = 	"Hides 'can be crafted by...' from tooltip",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN =  	"Hide if item is unknown",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT =	"Hides 'you cannot craft this yet'",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE =  		"Hide item source?",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION =  	"Hide crafting station?",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL =  	"Hide material?",
+  SI_FURC_STRING_MENU_HIDE_MENU =               "Hide menu entries?",
+  SI_FURC_STRING_MENU_HIDE_MENU_TT =            "Hides \"Crown store\" and \"Rumour recipes\" from the dropdown \nactivated for crown store by default, as there aren't any items yet",
+  SI_FURC_STRING_MENU_HIDE_MENU_RUMOUR =        "Hide \"Rumour recipes\" drop down entry?",
+  SI_FURC_STRING_MENU_HIDE_MENU_CROWN =         "Hide \"Crown Store\" drop down entry?",
+  SI_FURC_STRING_MENU_HIDE_MENU_TT =            "Requires UI reload (won't happen automatically for your convenience)",
+  SI_FURC_STRING_MENU_TOOLTIP =                 "Enable tooltips?",
+  SI_FURC_STRING_MENU_TOOLTIP_COLOR =           "Colorize tooltips for clarity?",
+  SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT =        "Will colour 'can' and 'cannot'",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN =      "Hide if item is known",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT =   "Hides 'can be crafted by...' from tooltip",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN =    "Hide if item is unknown",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT = "Hides 'you cannot craft this yet'",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE =     "Hide item source?",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION =    "Hide crafting station?",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL =   "Hide material?",

-	-- =============================== --
-	-- ==== GUI: Dropdown entries ==== --
-	-- =============================== --
+  -- =============================== --
+  -- ==== GUI: Dropdown entries ==== --
+  -- =============================== --

-	SI_FURC_NONE 									= "Source filter: off",
-	SI_FURC_FAVE 									= "Favorites",
-	SI_FURC_CRAFTING								= "Craftable: All",
-	SI_FURC_CRAFTING_KNOWN							= "Craftable: Known",
-	SI_FURC_CRAFTING_UNKNOWN						= "Craftable: Unknown",
-	SI_FURC_VENDOR									= "Purchaseable (gold)",
-	SI_FURC_PVP										= "Purchaseable (AP)",
-	SI_FURC_CROWN									= "Crown Store",
-	SI_FURC_RUMOUR									= "Rumour items",
-	SI_FURC_LUXURY									= "Luxury items",
-	SI_FURC_RUMOUR									= "Rumour items",
-	SI_FURC_OTHER									= "Other",
+  SI_FURC_NONE =                "Source filter: off",
+  SI_FURC_FAVE =                "Favorites",
+  SI_FURC_CRAFTING =            "Craftable: All",
+  SI_FURC_CRAFTING_KNOWN =      "Craftable: Known",
+  SI_FURC_CRAFTING_UNKNOWN =    "Craftable: Unknown",
+  SI_FURC_VENDOR =              "Purchaseable (gold)",
+  SI_FURC_PVP =                 "Purchaseable (AP)",
+  SI_FURC_CROWN =               "Crown Store",
+  SI_FURC_RUMOUR =              "Rumour items",
+  SI_FURC_LUXURY =              "Luxury items",
+  SI_FURC_RUMOUR =              "Rumour items",
+  SI_FURC_OTHER =               "Other",

-	SI_FURC_FILTER_VERSION_OFF						= "Version filter: off",
-	SI_FURC_FILTER_VERSION_HS						= "Homestead",
-	SI_FURC_FILTER_VERSION_M						= "Morrowind",
-	SI_FURC_FILTER_VERSION_R						= "Horns of the Reach",
-	SI_FURC_FILTER_VERSION_CC						= "Clockwork City",
-	SI_FURC_FILTER_VERSION_DRAGON					= "Dragon Bones",
-	SI_FURC_FILTER_VERSION_ALTMER					= "Summerset",
-	SI_FURC_FILTER_VERSION_ALTMER_TT                = "",
+  SI_FURC_FILTER_VERSION_OFF =      "Version filter: off",
+  SI_FURC_FILTER_VERSION_HS =       "Homestead",
+  SI_FURC_FILTER_VERSION_M =        "Morrowind",
+  SI_FURC_FILTER_VERSION_R =        "Horns of the Reach",
+  SI_FURC_FILTER_VERSION_CC =       "Clockwork City",
+  SI_FURC_FILTER_VERSION_DRAGON =   "Dragon Bones",
+  SI_FURC_FILTER_VERSION_ALTMER =   "Summerset",
+  SI_FURC_FILTER_VERSION_WEREWOLF = "Wolfhunter",
+  SI_FURC_FILTER_VERSION_SLAVES =   "Murkmire",
+

-	-- =============================== --
-	-- = GUI: Dropdown entry tooltip = --
-	-- =============================== --
+  -- =============================== --
+  -- = GUI: Dropdown entry tooltip = --
+  -- =============================== --

-	SI_FURC_NONE_TT 								= "disables this filter",
-	SI_FURC_FAVE_TT 								= "Shows your favorites",
-	SI_FURC_CRAFTING_TT								= "Shows all craftable items",
-	SI_FURC_CRAFTING_KNOWN_TT						= "Shows only known craftable items",
-	SI_FURC_CRAFTING_UNKNOWN_TT						= "Shows only unknown craftable items",
-	SI_FURC_VENDOR_TT								= "Shows only items that cannot be crafted",
-	SI_FURC_PVP_TT									= "Items that are sold for alliance points",
-	SI_FURC_CROWN_TT								= "Shows items that can only be acquired from crown store",
-	SI_FURC_RUMOUR_TT								= "Items and recipes that have been datamined, but haven't been confirmed existing",
-	SI_FURC_LUXURY_TT								= "Items that at some point were sold by Zanil Theran, Cicero's General Goods, Coldharbour",
-	SI_FURC_OTHER_TT								= "Shows items that can be farmed/stolen/found",
-
-	SI_FURC_FILTER_VERSION_OFF_TT					= filterDisabled,
-	SI_FURC_FILTER_VERSION_HS_TT					= "Items released in Homestead update",
-	SI_FURC_FILTER_VERSION_M_TT						= "YOU N\'WAH!",
-	SI_FURC_FILTER_VERSION_R_TT						= "Because all we needed were more Reachmen",
-	SI_FURC_FILTER_VERSION_CC_TT					= "Where the flywheels churn and the brass is pretty",
-	SI_FURC_FILTER_VERSION_DRAGON_TT				= "If you got this from Narsis Dren, well...",
-
-
-	SI_FURC_FILTER_CHAR_OFF							= "Character filter: off",
-	SI_FURC_FILTER_CHAR_OFF_TT						= filterDisabled,
-
-	-- =============================== --
-	-- ========= GUI: Heading ======== --
-	-- =============================== --
-
-	SI_FURC_LABEL_ENTRIES							= " entries -",
+  SI_FURC_NONE_TT =             "disables this filter",
+  SI_FURC_FAVE_TT =             "Shows your favorites",
+  SI_FURC_CRAFTING_TT =         "Shows all craftable items",
+  SI_FURC_CRAFTING_KNOWN_TT =   "Shows only known craftable items",
+  SI_FURC_CRAFTING_UNKNOWN_TT = "Shows only unknown craftable items",
+  SI_FURC_VENDOR_TT =           "Shows only items that cannot be crafted",
+  SI_FURC_PVP_TT =              "Items that are sold for alliance points",
+  SI_FURC_CROWN_TT =            "Shows items that can only be acquired from crown store",
+  SI_FURC_RUMOUR_TT =           "Items and recipes that have been datamined, but haven't been confirmed existing",
+  SI_FURC_LUXURY_TT =           "Items that at some point were sold by Zanil Theran, Cicero's General Goods, Coldharbour",
+  SI_FURC_OTHER_TT =            "Shows items that can be farmed/stolen/found",
+
+  SI_FURC_FILTER_VERSION_OFF_TT =       filterDisabled,
+  SI_FURC_FILTER_VERSION_HS_TT =        "Items released in Homestead update",
+  SI_FURC_FILTER_VERSION_M_TT =         "YOU N\'WAH!",
+  SI_FURC_FILTER_VERSION_R_TT =         "Because all we needed were more Reachmen",
+  SI_FURC_FILTER_VERSION_CC_TT =        "Where the flywheels churn and the brass is pretty",
+  SI_FURC_FILTER_VERSION_DRAGON_TT =    "If you got this from Narsis Dren, well...",
+  SI_FURC_FILTER_VERSION_ALTMER_TT =    "Still think the Dunmer are bad?",
+  SI_FURC_FILTER_VERSION_WEREWOLF_TT =  "In Soviet Hunting Ground, werewolf hunt you",
+  SI_FURC_FILTER_VERSION_SLAVES_TT =    "ToDo: Think of horrible pun about Argonians",
+
+  SI_FURC_FILTER_CHAR_OFF =     "Character filter: off",
+  SI_FURC_FILTER_CHAR_OFF_TT =  filterDisabled,
+
+  -- =============================== --
+  -- ========= GUI: Heading ======== --
+  -- =============================== --
+
+  SI_FURC_LABEL_ENTRIES =       " entries -",

     -- =============================== --
-	-- ========= Item Sources ======== --
-	-- =============================== --
-	SI_FURC_CANBEPICKED 					        = "can be pickpocketed",
-	SI_FURC_CANBESTOLEN 					        = "can be stolen",
-    SI_FURC_CROWNSTORESOURCE				        = "Crown Store ",
-    SI_FURC_CANBEFISHED				                = "can be fished",
-    SI_FURC_HARVEST				                    = "from harvesting nodes",
-    SI_FURC_WW				                        = "occasionally found in wood nodes",
-    SI_FURC_PLANTS						            = "from harvesting plants",
-    SI_FURC_SCAMBOX						            = "Crown Crates",
-    SI_FURC_HOUSE						            = "From a furnished purchase of <<1>>",
-    SI_FURC_AUTOMATON						        = "from automatons",
-    SI_FURC_TOMBS 						            = "Ancestor tombs and ruins on Vvardenfell",
-    SI_FURC_DAEDRA_SOURCE 						    = "from Daedra and Dolmen chests",
-    SI_FURC_DB					                    = "The Dark Brotherhood supplies vendor hands these out ",
-    SI_FURC_DB_POISON					            = "with poison",
-    SI_FURC_DB_STEALTH					            = "as a way to be less obtrusive",
-    SI_FURC_DAILY_ASHLANDERS			            = "Ashlander daily quest rewards",
-    SI_FURC_PLUNDERSKULL			                = "Drops from Plunder Skulls during Witches' Festival",
-    SI_FURC_DROP_CHEST_VVARDENFELL	                = "Extremely rarely from chests on Vvardenfell",
-    SI_FURC_DROP                                    = "This item is a drop ",
-    SI_FURC_DROP_ALTMER                             = "This item is a drop on Summerset",
-    SI_FURC_FLAME_ATRONACH	                        = "Flame Atronach",
-	SI_FURC_CHESTS                                  = "from treasure chests",
-	SI_FURC_VVARDENFELL_PAINTING                    = "extremely rarely from safeboxes",
-	SI_FURC_DRAGON_DUNGEON_DROP                     = "Fang Lair/Scalecaller Peak",
-	SI_FURC_WW_DUNGEON_DROP = 							"Drops in Monster Hunter Keep/March of the Sacrifices",
-	SI_FURC_ITEMSOURCE_UNKNOWN_YET                  = "This item has been found in the sources/recipes for Summerset! \nIts origin isn't known yet.",
-	SI_FURC_EXISITING_ITEMSOURCE_UNKNOWN_YET        = "This item has been confirmed existing, but its origin isn't known yet.",
-	SI_FURC_ITEMSOURCE_ITEMPACK                     = "This item is part of the Crown Store item pack ",
-
-	SI_FURC_SEEN_IN_GUILDSTORE                      = "Seen in Guild Store",
+  -- ========= Item Sources ======== --
+  -- =============================== --
+  SI_FURC_CANBEPICKED =           "can be pickpocketed",
+  SI_FURC_CANBESTOLEN =           "can be stolen",
+  SI_FURC_CROWNSTORESOURCE =      "Crown Store ",
+  SI_FURC_CANBEFISHED =           "can be fished",
+  SI_FURC_HARVEST =               "from harvesting nodes",
+  SI_FURC_WW =                    "occasionally found in wood nodes",
+  SI_FURC_PLANTS =                "from harvesting plants",
+  SI_FURC_SCAMBOX =               "Crown Crates",
+  SI_FURC_HOUSE =                 "From a furnished purchase of <<1>>",
+  SI_FURC_AUTOMATON =             "from automatons",
+  SI_FURC_TOMBS =                 "Ancestor tombs and ruins on Vvardenfell",
+  SI_FURC_DAEDRA_SOURCE =         "from Daedra and Dolmen chests",
+  SI_FURC_DB =                    "The Dark Brotherhood supplies vendor hands these out ",
+  SI_FURC_DB_POISON =             "with poison",
+  SI_FURC_DB_STEALTH =            "as a way to be less obtrusive",
+  SI_FURC_DAILY_ASH =             "Ashlander daily quest rewards",
+  SI_FURC_PLUNDERSKULL =          "Drops from Plunder Skulls during Witches' Festival",
+  SI_FURC_VV_PAINTING =           "Extremely rarely from chests or lockboxes on Vvardenfell",
+  SI_FURC_DROP =                  "This item is a drop ",
+  SI_FURC_DROP_ALTMER =           "This item is a drop on Summerset",
+  SI_FURC_FLAME_ATRONACH =        "Flame Atronach",
+  SI_FURC_DWEMER =                "Dwemer",
+  SI_FURC_CHESTS =                "from treasure chests",
+  SI_FURC_VVARDENFELL_PAINTING =  "extremely rarely from safeboxes",
+  SI_FURC_CHEST_VV =              "Extremely rarely from chests on Vvardenfell",
+  SI_FURC_DRAGON_DUNGEON_DROP =   "Fang Lair/Scalecaller Peak",
+  SI_FURC_DATAMINED_UNCLEAR =     "This item has been found in the sources/recipes for Summerset! \nIts origin isn't known yet.",
+  SI_FURC_DATAMINED_UNCLEAR =     "This item has been confirmed existing, but its origin isn't known yet.",
+  SI_FURC_ITEMSOURCE_ITEMPACK =   "This item is part of the Crown Store item pack ",
+
+  SI_FURC_SEEN_IN_GUILDSTORE =    "Seen in Guild Store",
 }

+
 for stringId, stringValue in pairs(strings) do
-	ZO_CreateStringId(stringId, stringValue)
-	SafeAddVersion(stringId, 2)
+  ZO_CreateStringId(stringId, stringValue)
+  SafeAddVersion(stringId, 1)
 end
\ No newline at end of file
diff --git a/locale/en.lua b/locale/en.lua
index 8e6fd32..a29cbec 100644
--- a/locale/en.lua
+++ b/locale/en.lua
@@ -1,278 +1,286 @@
 local filterDisabled = "disables this filter"
 local strings = {

-	FURC_AV_RAZ									= "Razoufa",
-	FURC_AV_MUL									= "Mulvise Valyn",
+  FURC_AV_RAZ = "Razoufa",
+  FURC_AV_MUL = "Mulvise Valyn",

-	FURC_AV_NAR									= "Narwaawende",
-	FURC_AV_ALI									= "Alinor, Riverside Market",
-	FURC_AV_UNW									= "Unwotil",
-	FURC_AV_CUR									= "Curininwe",
-	FURC_AV_NAL									= "Nalirsewen",
-	FURC_AV_TAR									= "Tarmimn",
-	FURC_AV_LTS									= "Listens-To-Sea",
-	FURC_AV_HER									= "Heralda Garscroft",
-	FURC_AV_FRO									= "Frohilde Snow-Hair",
-	FURC_AV_LOT									= "Lozotusk",
-	FURC_AV_ROH									= "Rohzika",
-	FURC_AV_ATH									= "Athragor",
-	FURC_AV_MAL									= "Maladdiq",
-	FURC_AV_KRR									= "Krrztrrb",
-	FURC_AV_HAR									= "Harnwulf",
-	FURC_AV_ADO									= "Adosa Veralor",
-	FURC_AV_ENC									= "enchanters",
-	FURC_AV_ALC									= "alchemists",
-	FURC_AV_OUT									= "Outlaw Refuge, Merchant",
-	FURC_AV_COO									= "cooks",
-	FURC_AV_CLO									= "clothiers",
-	FURC_AV_CAR									= "carpenters",
-	FURC_AV_BSM									= "blacksmiths",
-	FURC_AV_ARTAEUM								= "Artaeum",
-    FURC_AV_CAPITAL                             = "any capital city",
+  FURC_AV_NAR = "Narwaawende",
+  FURC_AV_ALI = "Alinor, Riverside Market",
+  FURC_AV_UNW = "Unwotil",
+  FURC_AV_CUR = "Curininwe",
+  FURC_AV_NAL = "Nalirsewen",
+  FURC_AV_TAR = "Tarmimn",
+  FURC_AV_LTS = "Listens-To-Sea",
+  FURC_AV_HER = "Heralda Garscroft",
+  FURC_AV_FRO = "Frohilde Snow-Hair",
+  FURC_AV_LOT = "Lozotusk",
+  FURC_AV_ROH = "Rohzika",
+  FURC_AV_ATH = "Athragor",
+  FURC_AV_MAL = "Maladdiq",
+  FURC_AV_KRR = "Krrztrrb",
+  FURC_AV_HAR = "Harnwulf",
+  FURC_AV_ADO = "Adosa Veralor",
+  FURC_AV_ENC = "enchanters",
+  FURC_AV_ALC = "alchemists",
+  FURC_AV_OUT = "Outlaw Refuge, Merchant",
+  FURC_AV_COO = "cooks",
+  FURC_AV_CLO = "clothiers",
+  FURC_AV_CAR = "carpenters",
+  FURC_AV_BSM = "blacksmiths",
+  FURC_AV_ARTAEUM = "Artaeum",
+  FURC_AV_CAPITAL = "any capital city",

-	-- Furniture Shopping List
-	SI_FURC_ONE_TO_SHOPPINGLIST = 				"Add 1 to shopping list",
-	SI_FURC_FIVE_TO_SHOPPINGLIST = 				"Add 5 to shopping list",
-	SI_FURC_TOGGLE_SHOPPINGLIST = 				" Toggle shopping list",
+  -- Furniture Shopping List
+  SI_FURC_ONE_TO_SHOPPINGLIST =         "Add 1 to shopping list",
+  SI_FURC_FIVE_TO_SHOPPINGLIST =        "Add 5 to shopping list",
+  SI_FURC_TOGGLE_SHOPPINGLIST =         " Toggle shopping list",

-	-- GUI and debug
-	SI_FURC_MENU_HEADER = 						"- |cD3B830Furniture|r:",
-	SI_FURC_REMOVE_FAVE = 						" Remove Favorite",
-	SI_FURC_ADD_FAVE = 							" Add Favorite",
-	SI_FURC_POST_ITEMSOURCE = 					" Post item source",
-	SI_FURC_POST_RECIPE = 						" Post recipe",
-	SI_FURC_POST_ITEM = 						" Post item",
-	SI_FURC_POST_MATERIAL = 					" Post material",
-	SI_FURC_DIALOGUE_RESET_DB_HEADER = 			"Really re-create furniture database?",
-	SI_FURC_DIALOGUE_RESET_DB_BODY = 			"This will re-create the FurnitureCatalogue database from scratch",
-	SI_FURC_TEXTBOX_FILTER_DEFAULT = 			"Filter by text search",
-	SI_FURC_DEBUG_CHARSCANCOMPLETE = 			"|c2266ffFurniture Catalogue|r|cffffff: Character scan complete...|r",
-	SI_FURC_VERBOSE_STARTUP = 					"|c2266ffFurniture Catalogue|r|cffffff: |cffffffIf you miss any recipes, please trigger a scan on your furniture crafter by clicking the refresh button in the UI.|r",
-	SI_FURC_VERBOSE_DB_UPTODATE = 				"|c2266ffFurniture Catalogue|r|cffffff: The database is up-to-date.|r",
-	SI_FURC_VERBOSE_SCANNING_DATA_FILE =		"|c2266ffFurniture Catalogue|r|cffffff: Scanning data files...|r",
-	SI_FURC_VERBOSE_SCANNING_CHARS =			"Not scanning files, scanning character knowledge now...",
-	SI_FURC_ITEMSOURCE_EMPTY =					"Item source unknown.\nTry to re-scan files (refresh button right click).\nIf still unknown after, please send a mail with the item link and -source to @manavortex",
-	SI_FURC_RUMOUR_SOURCE_RECIPE =				"This recipe has been datamined, but not seen in-game",
-	SI_FURC_RUMOUR_SOURCE_ITEM =				"This item has been datamined, but not seen in-game",
-	SI_FURC_STRING_CRAFTABLE_BY =				"Can be crafted by ",
-	SI_FURC_STRING_CANNOT_CRAFT =				"You cannot craft this yet",
-	SI_FURC_STRING_VENDOR = 					"sold by <<1>> in <<2>> (<<3>><<4>>)",
-	SI_FURC_STRING_AP =							" AP",
-	SI_FURC_STRING_ASSHOLE = 					"Zanil Theran",
-	SI_FURC_STRING_HC = 						"Hollow City",
-	SI_FURC_STRING_WASSOLDBY = 					"Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
-	SI_FURC_STRING_WEEKEND_AROUND = 			"(around <<1>>)",
-	SI_FURC_REQUIRES_QUEST                      = ", requires quest ",
-	SI_FURC_REQUIRES_ACHIEVEMENT                = ", requires ",
-	SI_FURC_PSIJIC_RANK                         = "Psijic Order Rank ",
-	SI_FURC_STRING_WRIT_VENDOR =				"Master Writ Vendor",
-	SI_FURC_STRING_WRIT_VENDOR_TT =				"Obtainable for Master Writs in your alliance's capital",
-	SI_FURC_STRING_Rolis = 					    "Sold by |cd68957Rolis Hlaalu|r <<1>>",
-	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r <<1>>",
-	SI_FURC_STRING_FOR_VOUCHERS =				"for <<1>> vouchers",
-	SI_FURC_FESTIVAL_DROP = 					"can be acquired during <<1>> (<<2>>)",
-	SI_FURC_WW_DUNGEON_DROP = 					"Drops in Monster Hunter Keep/March of the Sacrifices",
-	SI_FURC_STRING_RECIPELEARNED = 				"Recipe learned: <<1>> <<2>> <<3>>",
-	SI_FURC_STRING_RECIPESFORCHAR = 			"recipes for <<1>>",
-	SI_FURC_STRING_VOUCHER_VENDOR =				"Sold by either Rolis Hlaalu or Faustina Curio",
-    SI_FURC_QUESTREWARD =                       "Reward for a quest in ",
-    SI_FURC_GEYSIR =                            "Drops from geysir reward clams on Summerset",
-    SI_FURC_GIANT_CLAM =                        "Drops from giant clams and geysir reward clams on Summerset",
-    SI_FURC_ELF_PIC =                        	"Drops extremely rarely from treasure chests on Summerset",
-	-- =============================== --
-	-- ============ MENU ============= --
-	-- =============================== --
+  -- GUI and debug
+  SI_FURC_MENU_HEADER =                 "- |cD3B830Furniture|r:",
+  SI_FURC_REMOVE_FAVE =                 " Remove Favorite",
+  SI_FURC_ADD_FAVE =                     " Add Favorite",
+  SI_FURC_POST_ITEMSOURCE =             " Post item source",
+  SI_FURC_POST_RECIPE =                 " Post recipe",
+  SI_FURC_POST_ITEM =                   " Post item",
+  SI_FURC_POST_MATERIAL =               " Post material",
+  SI_FURC_DIALOGUE_RESET_DB_HEADER =    "Really re-create furniture database?",
+  SI_FURC_DIALOGUE_RESET_DB_BODY =      "This will re-create the FurnitureCatalogue database from scratch",
+  SI_FURC_TEXTBOX_FILTER_DEFAULT =      "Filter by text search",
+  SI_FURC_DEBUG_CHARSCANCOMPLETE =      "|c2266ffFurniture Catalogue|r|cffffff: Character scan complete...|r",
+  SI_FURC_VERBOSE_STARTUP =             "|c2266ffFurniture Catalogue|r|cffffff: |cffffffIf you miss any recipes, please trigger a scan on your furniture crafter by clicking the refresh button in the UI.|r",
+  SI_FURC_VERBOSE_DB_UPTODATE =         "|c2266ffFurniture Catalogue|r|cffffff: The database is up-to-date.|r",
+  SI_FURC_VERBOSE_SCANNING_DATA_FILE =  "|c2266ffFurniture Catalogue|r|cffffff: Scanning data files...|r",
+  SI_FURC_VERBOSE_SCANNING_CHARS =      "Not scanning files, scanning character knowledge now...",
+  SI_FURC_ITEMSOURCE_EMPTY =            "Item source unknown.\nTry to re-scan files (refresh button right click).\nIf the item is still unknown - and not part of the weekend furnisher's current inventory - please send a mail with the item link and -source to @manavortex.",
+  SI_FURC_RUMOUR_SOURCE_RECIPE =        "This recipe has been datamined, but not seen in-game",
+  SI_FURC_RUMOUR_SOURCE_ITEM =          "This item has been datamined, but not seen in-game",
+  SI_FURC_STRING_CRAFTABLE_BY =         "Can be crafted by ",
+  SI_FURC_STRING_CANNOT_CRAFT =         "You cannot craft this yet",
+  SI_FURC_STRING_VENDOR =               "sold by <<1>> in <<2>> (<<3>><<4>>)",
+  SI_FURC_STRING_AP =                   " AP",
+  SI_FURC_STRING_ASSHOLE =              "Zanil Theran",
+  SI_FURC_STRING_HC =                   "Hollow City",
+  SI_FURC_STRING_WASSOLDBY =            "Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
+  SI_FURC_STRING_WEEKEND_AROUND =       "(around <<1>>)",
+  SI_FURC_REQUIRES_QUEST =              ", requires quest ",
+  SI_FURC_REQUIRES_ACHIEVEMENT =        ", requires ",
+  SI_FURC_PSIJIC_RANK =                 "Psijic Order Rank ",
+  SI_FURC_STRING_WRIT_VENDOR =          "Master Writ Vendor",
+  SI_FURC_STRING_WRIT_VENDOR_TT =       "Obtainable for Master Writs in your alliance's capital",
+  SI_FURC_STRING_Rolis =                "Sold by |cd68957Rolis Hlaalu|r <<1>>",
+  SI_FURC_STRING_FAUSTINA =             "Sold by |cd68957Faustina Curio|r <<1>>",
+  SI_FURC_STRING_FOR_VOUCHERS =         "for <<1>> vouchers",
+  SI_FURC_FESTIVAL_DROP =               "can be acquired during <<1>> (<<2>>)",
+  SI_FURC_WW_DUNGEON_DROP =             "Drops in Monster Hunter Keep/March of the Sacrifices",
+  SI_FURC_STRING_RECIPELEARNED =        "Recipe learned: <<1>> <<2>> <<3>>",
+  SI_FURC_STRING_RECIPESFORCHAR =       "recipes for <<1>>",
+  SI_FURC_STRING_VOUCHER_VENDOR =       "Sold by either Rolis Hlaalu or Faustina Curio",
+  SI_FURC_QUESTREWARD =                 "Reward for a quest in ",
+  SI_FURC_GEYSIR =                      "Drops from geysir reward clams on Summerset",
+  SI_FURC_GIANT_CLAM =                  "Drops from giant clams and geysir reward clams on Summerset",
+  SI_FURC_ELF_PIC =                     "Drops extremely rarely from treasure chests on Summerset",
+  SI_FURC_LEVELUP =                     "Can be gained as levelup reward",
+  SI_FURC_SLAVES_PREQUEST =             "from Murkmire Prequest reward boxes",
+
+  -- =============================== --
+  -- ============ MENU ============= --
+  -- =============================== --

-	SI_FURC_STRING_MENU_DEBUG = 				"Enable debug output",
-	SI_FURC_STRING_MENU_RESET_DB_NAME = 		"|cFF0000Reset database|r",
-	SI_FURC_STRING_MENU_RESET_DB_TT = 			"This will reset the furniture database.",
-	SI_FURC_STRING_MENU_RESET_DB_WARNING =		"All your data will be reset. Only recipe knowledge for this character will be considered.",
-	SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME =  	"Re-scan Rumour recipes",
-	SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT = 		"Will update the rumour recipes against the updated list",
-	SI_FURC_STRING_MENU_SCAN_FILES_NAME =		"Scan files",
-	SI_FURC_STRING_MENU_SCAN_FILES_TT = 		"Will run a full scan of the data in Furniture Catalogue's files",
-	SI_FURC_STRING_MENU_SCAN_CHAR_NAME = 		"Scan character",
-	SI_FURC_STRING_MENU_SCAN_CHAR_TT = 			"Will run a full scan of your known furniture recipes and update the database accordingly",
-	SI_FURC_STRING_MENU_DELETE_CHAR_NAME =		"delete character",
-	SI_FURC_STRING_MENU_DELETE_CHAR_TT =		"Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
-	SI_FURC_STRING_MENU_DELETE_CHAR_WARNING =	"Character knowledge will be wiped immediately",
-	SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST =	"Enable integration?",
-	SI_FURC_STRING_MENU_SKIP_INITIALSCAN =		"Skip Initial Scan?",
-	SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT =	"Check this to not scan your character's recipes on login. \nThanks to votan's awesome LibAsync the lag is gone now in any case..",
-	SI_FURC_STRING_MENU_HEADER_ICONS =			"Inventory and bank icons",
-	SI_FURC_STRING_MENU_ADD_ITEMS_NAME = 		"Add items to known/unknown recipes?",
-	SI_FURC_STRING_MENU_ADD_ITEMS_TT = 			"You shouldn't notice any lag",
-	SI_FURC_STRING_MENU_IT_UNKNOWN_NAME = 		"Only mark unknown recipes?",
-	SI_FURC_STRING_MENU_IT_THIS_ONLY = 			"Only for this character?",
-	SI_FURC_STRING_MENU_IT_THIS_ONLY_TT = 		"Will be accountwide otherwise.",
-	SI_FURC_STRING_MENU_USETINY = 	 			"Use tiny interface?",
-	SI_FURC_STRING_MENU_USETINY_TT = 	 		"Use a smaller interface (Craft Store like). \nYou can toggle this from the UI by clicking the +/- button.",
+  SI_FURC_STRING_MENU_DEBUG =               "Enable debug output",
+  SI_FURC_STRING_MENU_RESET_DB_NAME =       "|cFF0000Reset database|r",
+  SI_FURC_STRING_MENU_RESET_DB_TT =         "This will reset the furniture database.",
+  SI_FURC_STRING_MENU_RESET_DB_WARNING =    "All your data will be reset. Only recipe knowledge for this character will be considered.",
+  SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME =  "Re-scan Rumour recipes",
+  SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT =    "Will update the rumour recipes against the updated list",
+  SI_FURC_STRING_MENU_SCAN_FILES_NAME =     "Scan files",
+  SI_FURC_STRING_MENU_SCAN_FILES_TT =       "Will run a full scan of the data in Furniture Catalogue's files",
+  SI_FURC_STRING_MENU_SCAN_CHAR_NAME =      "Scan character",
+  SI_FURC_STRING_MENU_SCAN_CHAR_TT =        "Will run a full scan of your known furniture recipes and update the database accordingly",
+  SI_FURC_STRING_MENU_DELETE_CHAR_NAME =    "delete character",
+  SI_FURC_STRING_MENU_DELETE_CHAR_TT =      "Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
+  SI_FURC_STRING_MENU_DELETE_CHAR_WARNING = "Character knowledge will be wiped immediately",
+  SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST = "Enable integration?",
+  SI_FURC_STRING_MENU_SKIP_INITIALSCAN =    "Skip Initial Scan?",
+  SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT = "Check this to not scan your character's recipes on login. \nThanks to votan's awesome LibAsync the lag is gone now in any case..",
+  SI_FURC_STRING_MENU_HEADER_ICONS =        "Inventory and bank icons",
+  SI_FURC_STRING_MENU_ADD_ITEMS_NAME =      "Add items to known/unknown recipes?",
+  SI_FURC_STRING_MENU_ADD_ITEMS_TT =        "You shouldn't notice any lag",
+  SI_FURC_STRING_MENU_IT_UNKNOWN_NAME =     "Only mark unknown recipes?",
+  SI_FURC_STRING_MENU_IT_THIS_ONLY =        "Only for this character?",
+  SI_FURC_STRING_MENU_IT_THIS_ONLY_TT =     "Will be accountwide otherwise.",
+  SI_FURC_STRING_MENU_USETINY =             "Use tiny interface?",
+  SI_FURC_STRING_MENU_USETINY_TT =          "Use a smaller interface (Craft Store like). \nYou can toggle this from the UI by clicking the +/- button.",

-	SI_FURC_STRING_MENU_STARTSILENT = 	 		"Start silently?",
-	SI_FURC_STRING_MENU_STARTSILENT_TT = 	 	"Suppress startup message",
-	SI_FURC_STRING_MENU_SHOWICONONLEFT = 		"Show Known/Unknown icon on left?",
-	SI_FURC_STRING_MENU_SHOWICONONLEFT_TT =		"Show Green Check/Red X icon on left or right of the inventory item (requires reloadui)",
-	SI_FURC_STRING_MENU_FONTSIZE = 	 			"Font size",
-	SI_FURC_STRING_MENU_FONTSIZE_TT = 	 		"adjust font size for FurnitureCatalogue here",
-	SI_FURC_STRING_MENU_DEFAULT_DD = 	 		"Default dropdown values",
-	SI_FURC_STRING_MENU_DEFAULT_DD_USE = 	 	"Will be set on initial launch",
-	SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT = 	"These will not reset if you open and close the UI",
-	SI_FURC_STRING_MENU_DEFAULT_DD_RESET = 		"Reset filters when closing UI?",
-	SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT = 	"If you check this, opening and closing will cause the filters to reset to whatever you set below.",
-	SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE = 	"default source filter",
-	SI_FURC_STRING_MENU_DEFAULT_DD_CHAR = 		"default character filter",
-	SI_FURC_STRING_MENU_DEFAULT_DD_VERSION = 	"default version filter",
-	SI_FURC_STRING_MENU_FILTERING = 			"Catalogue filtering",
-	SI_FURC_STRING_MENU_FILTER_BOOKS = 			"Mages guild books",
-	SI_FURC_STRING_MENU_FILTER_BOOKS_N = 		"Hide books?",
-	SI_FURC_STRING_MENU_FILTER_BOOKS_TT = 		"A real book lover knows where everything is by heart. Hide books from Furniture Catalogue?",
-	SI_FURC_STRING_MENU_LUXURY = 				"Luxury Furnishings",
-	SI_FURC_STRING_MENU_LUXURY_N = 				"Treat luxury items as purchaseables?",
-	SI_FURC_STRING_MENU_LUXURY_TT = 			"This will show everything that was sold by Zanil Theran under 'purchaseable' and deactvates the custom filter",
-	SI_FURC_STRING_MENU_LUXURY_WARN = 			"Hiding the dropdown entry requires UI reload (won't happen automatically for your convenience)",
-	SI_FURC_STRING_MENU_RUMOUR = 				"Rumour recipes",
-	SI_FURC_STRING_MENU_RUMOUR_DESC = 		 	"The furniture database contains a list of recipes that I have datamined.\nHowever, not all of those have been seen in-game.\nEnable this option to exclude them from the default filters.\nYou can still view them with their own filter, which you can disable below.",
-    SI_FURC_STRING_CONTEXTMENU_DIVIDER =        "Don't use divider in context menu?",
-    SI_FURC_STRING_CONTEXTMENU_DIVIDER_TT =     "Adds a divider to the context manu above the - Furniture entry. Check to disable",
+  SI_FURC_STRING_MENU_STARTSILENT =         "Start silently?",
+  SI_FURC_STRING_MENU_STARTSILENT_TT =      "Suppress startup message",
+  SI_FURC_STRING_MENU_SHOWICONONLEFT =      "Show Known/Unknown icon on left?",
+  SI_FURC_STRING_MENU_SHOWICONONLEFT_TT =   "Show Green Check/Red X icon on left or right of the inventory item (requires reloadui)",
+  SI_FURC_STRING_MENU_FONTSIZE =            "Font size",
+  SI_FURC_STRING_MENU_FONTSIZE_TT =         "adjust font size for FurnitureCatalogue here",
+  SI_FURC_STRING_MENU_DEFAULT_DD =          "Default dropdown values",
+  SI_FURC_STRING_MENU_DEFAULT_DD_USE =      "Will be set on initial launch",
+  SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT =   "These will not reset if you open and close the UI",
+  SI_FURC_STRING_MENU_DEFAULT_DD_RESET =    "Reset filters when closing UI?",
+  SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT = "If you check this, opening and closing will cause the filters to reset to whatever you set below.",
+  SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE =   "default source filter",
+  SI_FURC_STRING_MENU_DEFAULT_DD_CHAR =     "default character filter",
+  SI_FURC_STRING_MENU_DEFAULT_DD_VERSION =  "default version filter",
+  SI_FURC_STRING_MENU_FILTERING =           "Catalogue filtering",
+  SI_FURC_STRING_MENU_FILTER_BOOKS =        "Mages guild books",
+  SI_FURC_STRING_MENU_FILTER_BOOKS_N =      "Hide books?",
+  SI_FURC_STRING_MENU_FILTER_BOOKS_TT =     "A real book lover knows where everything is by heart. Hide books from Furniture Catalogue?",
+  SI_FURC_STRING_MENU_LUXURY =              "Luxury Furnishings",
+  SI_FURC_STRING_MENU_LUXURY_N =            "Treat luxury items as purchaseables?",
+  SI_FURC_STRING_MENU_LUXURY_TT =           "This will show everything that was sold by Zanil Theran under 'purchaseable' and deactvates the custom filter",
+  SI_FURC_STRING_MENU_LUXURY_WARN =         "Hiding the dropdown entry requires UI reload (won't happen automatically for your convenience)",
+  SI_FURC_STRING_MENU_RUMOUR =              "Rumour recipes",
+  SI_FURC_STRING_MENU_RUMOUR_DESC =         "The furniture database contains a list of recipes that I have datamined.\nHowever, not all of those have been seen in-game.\nEnable this option to exclude them from the default filters.\nYou can still view them with their own filter, which you can disable below.",
+  SI_FURC_STRING_CONTEXTMENU_DIVIDER =      "Don't use divider in context menu?",
+  SI_FURC_STRING_CONTEXTMENU_DIVIDER_TT =   "Adds a divider to the context manu above the - Furniture entry. Check to disable",

+  SI_FURC_SHOW_RUMOUR_TT =                  "Confirmed items only. Click to show rumour items.",
+  SI_FURC_HIDE_RUMOUR_TT =                  "Showing rumour (unconfirmed) items. Click to hide.",

-	SI_FURC_STRING_MENU_RUMOUR_N = 				"Hide rumour recipes?",
-	SI_FURC_STRING_MENU_CROWN = 				"Crown store items",
-	SI_FURC_STRING_MENU_CROWN_N = 				"Hide crown store items?",
-	SI_FURC_STRING_MENU_CROWN_DESC = 			"The furniture database will update whenever the tooltip shows a furniture item. \nSome items can only be acquired via crown store. \nCheck this box to exclude them from the default filters (disable crown store filter below).",
+  SI_FURC_STRING_MENU_RUMOUR_N =            "Hide rumour recipes?",
+  SI_FURC_STRING_MENU_CROWN =               "Crown store items",
+  SI_FURC_STRING_MENU_CROWN_N =             "Hide crown store items?",
+  SI_FURC_STRING_MENU_CROWN_DESC =          "The furniture database will update whenever the tooltip shows a furniture item. \nSome items can only be acquired via crown store. \nCheck this box to exclude them from the default filters (disable crown store filter below).",

     -- Filter text search
-    SI_FURC_STRING_MENU_HEADER_F_ALL_ON_TEXT =  "Filter settings for text search",
-    SI_FURC_STRING_MENU_F_ALL_ON_TEXT =         "Configure this filter",
-    SI_FURC_STRING_MENU_HEADER_F_ALL_DESC =     "Configure filter settings for text search with disabled dropdowns. \nThese settings will only take effect when you have not set a source, character or version filter.",
+  SI_FURC_STRING_MENU_HEADER_F_ALL_ON_TEXT =  "Filter settings for text search",
+  SI_FURC_STRING_MENU_F_ALL_ON_TEXT =         "Configure this filter",
+  SI_FURC_STRING_MENU_HEADER_F_ALL_DESC =     "Configure filter settings for text search with disabled dropdowns. \nThese settings will only take effect when you have not set a source, character or version filter.",

-    SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT =    "Search filtered items when doing a text search with no dropdown filters set?",
-    SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT_TT = "When doing a text search without any dropdown ",
-    SI_FURC_STRING_MENU_FALL_HIDE_BOOKS =       "Hide books anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_BOOKS_TT =    "Even when filtering all items, still hide books?",
-    SI_FURC_STRING_MENU_FALL_HIDE_CROWN =       "Hide crown store items anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_CROWN_TT =    "Even when filtering all items, still hide crown store items?",
-    SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR =      "Hide rumour items anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR_TT =   "Even when filtering all items, still hide rumour items?",
+  SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT =    "Search filtered items when doing a text search with no dropdown filters set?",
+  SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT_TT = "When doing a text search without any dropdown ",
+  SI_FURC_STRING_MENU_FALL_HIDE_BOOKS =       "Hide books anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_BOOKS_TT =    "Even when filtering all items, still hide books?",
+  SI_FURC_STRING_MENU_FALL_HIDE_CROWN =       "Hide crown store items anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_CROWN_TT =    "Even when filtering all items, still hide crown store items?",
+  SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR =      "Hide rumour items anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR_TT =   "Even when filtering all items, still hide rumour items?",

     -- Hide menu entries
-	SI_FURC_STRING_MENU_HIDE_MENU = 				"Hide menu entries?",
-	SI_FURC_STRING_MENU_HIDE_MENU_TT = 				"Hides \"Crown store\" and \"Rumour recipes\" from the dropdown \nactivated for crown store by default, as there aren't any items yet",
-	SI_FURC_STRING_MENU_HIDE_MENU_RUMOUR = 			"Hide \"Rumour recipes\" drop down entry?",
-	SI_FURC_STRING_MENU_HIDE_MENU_CROWN = 			"Hide \"Crown Store\" drop down entry?",
-	SI_FURC_STRING_MENU_HIDE_MENU_TT =				"Requires UI reload (won't happen automatically for your convenience)",
-	SI_FURC_STRING_MENU_TOOLTIP =					"Enable tooltips?",
-	SI_FURC_STRING_MENU_TOOLTIP_COLOR =	 			"Colorize tooltips for clarity?",
-	SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT = 			"Will colour 'can' and 'cannot'",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN =  		"Hide if item is known",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT = 	"Hides 'can be crafted by...' from tooltip",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN =  	"Hide if item is unknown",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT =	"Hides 'you cannot craft this yet'",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE =  		"Hide item source?",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION =  	"Hide crafting station?",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL =  	"Hide material?",
+  SI_FURC_STRING_MENU_HIDE_MENU =               "Hide menu entries?",
+  SI_FURC_STRING_MENU_HIDE_MENU_TT =            "Hides \"Crown store\" and \"Rumour recipes\" from the dropdown \nactivated for crown store by default, as there aren't any items yet",
+  SI_FURC_STRING_MENU_HIDE_MENU_RUMOUR =        "Hide \"Rumour recipes\" drop down entry?",
+  SI_FURC_STRING_MENU_HIDE_MENU_CROWN =         "Hide \"Crown Store\" drop down entry?",
+  SI_FURC_STRING_MENU_HIDE_MENU_TT =            "Requires UI reload (won't happen automatically for your convenience)",
+  SI_FURC_STRING_MENU_TOOLTIP =                 "Enable tooltips?",
+  SI_FURC_STRING_MENU_TOOLTIP_COLOR =           "Colorize tooltips for clarity?",
+  SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT =        "Will colour 'can' and 'cannot'",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN =      "Hide if item is known",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT =   "Hides 'can be crafted by...' from tooltip",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN =    "Hide if item is unknown",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT = "Hides 'you cannot craft this yet'",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE =     "Hide item source?",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION =    "Hide crafting station?",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL =   "Hide material?",

-	-- =============================== --
-	-- ==== GUI: Dropdown entries ==== --
-	-- =============================== --
+  -- =============================== --
+  -- ==== GUI: Dropdown entries ==== --
+  -- =============================== --

-	SI_FURC_NONE 									= "Source filter: off",
-	SI_FURC_FAVE 									= "Favorites",
-	SI_FURC_CRAFTING								= "Craftable: All",
-	SI_FURC_CRAFTING_KNOWN							= "Craftable: Known",
-	SI_FURC_CRAFTING_UNKNOWN						= "Craftable: Unknown",
-	SI_FURC_VENDOR									= "Purchaseable (gold)",
-	SI_FURC_PVP										= "Purchaseable (AP)",
-	SI_FURC_CROWN									= "Crown Store",
-	SI_FURC_RUMOUR									= "Rumour items",
-	SI_FURC_LUXURY									= "Luxury items",
-	SI_FURC_RUMOUR									= "Rumour items",
-	SI_FURC_OTHER									= "Other",
+  SI_FURC_NONE =                "Source filter: off",
+  SI_FURC_FAVE =                "Favorites",
+  SI_FURC_CRAFTING =            "Craftable: All",
+  SI_FURC_CRAFTING_KNOWN =      "Craftable: Known",
+  SI_FURC_CRAFTING_UNKNOWN =    "Craftable: Unknown",
+  SI_FURC_VENDOR =              "Purchaseable (gold)",
+  SI_FURC_PVP =                 "Purchaseable (AP)",
+  SI_FURC_CROWN =               "Crown Store",
+  SI_FURC_RUMOUR =              "Rumour items",
+  SI_FURC_LUXURY =              "Luxury items",
+  SI_FURC_RUMOUR =              "Rumour items",
+  SI_FURC_OTHER =               "Other",

-	SI_FURC_FILTER_VERSION_OFF						= "Version filter: off",
-	SI_FURC_FILTER_VERSION_HS						= "Homestead",
-	SI_FURC_FILTER_VERSION_M						= "Morrowind",
-	SI_FURC_FILTER_VERSION_R						= "Horns of the Reach",
-	SI_FURC_FILTER_VERSION_CC						= "Clockwork City",
-	SI_FURC_FILTER_VERSION_DRAGON					= "Dragon Bones",
-	SI_FURC_FILTER_VERSION_ALTMER					= "Summerset",
-	SI_FURC_FILTER_VERSION_WEREWOLF					= "Wolfhunter",
-	SI_FURC_FILTER_VERSION_SLAVES					= "Murkmire",
-
+  SI_FURC_FILTER_VERSION_OFF =      "Version filter: off",
+  SI_FURC_FILTER_VERSION_HS =       "Homestead",
+  SI_FURC_FILTER_VERSION_M =        "Morrowind",
+  SI_FURC_FILTER_VERSION_R =        "Horns of the Reach",
+  SI_FURC_FILTER_VERSION_CC =       "Clockwork City",
+  SI_FURC_FILTER_VERSION_DRAGON =   "Dragon Bones",
+  SI_FURC_FILTER_VERSION_ALTMER =   "Summerset",
+  SI_FURC_FILTER_VERSION_WEREWOLF = "Wolfhunter",
+  SI_FURC_FILTER_VERSION_SLAVES =   "Murkmire",
+  SI_FURC_FILTER_VERSION_WOTL =   "Wrathstone",
+

-	-- =============================== --
-	-- = GUI: Dropdown entry tooltip = --
-	-- =============================== --
+  -- =============================== --
+  -- = GUI: Dropdown entry tooltip = --
+  -- =============================== --

-	SI_FURC_NONE_TT 								= "disables this filter",
-	SI_FURC_FAVE_TT 								= "Shows your favorites",
-	SI_FURC_CRAFTING_TT								= "Shows all craftable items",
-	SI_FURC_CRAFTING_KNOWN_TT						= "Shows only known craftable items",
-	SI_FURC_CRAFTING_UNKNOWN_TT						= "Shows only unknown craftable items",
-	SI_FURC_VENDOR_TT								= "Shows only items that cannot be crafted",
-	SI_FURC_PVP_TT									= "Items that are sold for alliance points",
-	SI_FURC_CROWN_TT								= "Shows items that can only be acquired from crown store",
-	SI_FURC_RUMOUR_TT								= "Items and recipes that have been datamined, but haven't been confirmed existing",
-	SI_FURC_LUXURY_TT								= "Items that at some point were sold by Zanil Theran, Cicero's General Goods, Coldharbour",
-	SI_FURC_OTHER_TT								= "Shows items that can be farmed/stolen/found",
-
-	SI_FURC_FILTER_VERSION_OFF_TT					= filterDisabled,
-	SI_FURC_FILTER_VERSION_HS_TT					= "Items released in Homestead update",
-	SI_FURC_FILTER_VERSION_M_TT						= "YOU N\'WAH!",
-	SI_FURC_FILTER_VERSION_R_TT						= "Because all we needed were more Reachmen",
-	SI_FURC_FILTER_VERSION_CC_TT					= "Where the flywheels churn and the brass is pretty",
-	SI_FURC_FILTER_VERSION_DRAGON_TT				= "If you got this from Narsis Dren, well...",
-	SI_FURC_FILTER_VERSION_ALTMER_TT                = "Still think the Dunmer are bad?",
-	SI_FURC_FILTER_VERSION_WEREWOLF_TT              = "In Soviet Hunting Ground, werewolf hunt you",
-	SI_FURC_FILTER_VERSION_SLAVES_TT              	= "ToDo: Think of horrible pun about Argonians",
-
-	SI_FURC_FILTER_CHAR_OFF							= "Character filter: off",
-	SI_FURC_FILTER_CHAR_OFF_TT						= filterDisabled,
-
-	-- =============================== --
-	-- ========= GUI: Heading ======== --
-	-- =============================== --
-
-	SI_FURC_LABEL_ENTRIES							= " entries -",
+  SI_FURC_NONE_TT =             "disables this filter",
+  SI_FURC_FAVE_TT =             "Shows your favorites",
+  SI_FURC_CRAFTING_TT =         "Shows all craftable items",
+  SI_FURC_CRAFTING_KNOWN_TT =   "Shows only known craftable items",
+  SI_FURC_CRAFTING_UNKNOWN_TT = "Shows only unknown craftable items",
+  SI_FURC_VENDOR_TT =           "Shows only items that cannot be crafted",
+  SI_FURC_PVP_TT =              "Items that are sold for alliance points",
+  SI_FURC_CROWN_TT =            "Shows items that can only be acquired from crown store",
+  SI_FURC_RUMOUR_TT =           "Items and recipes that have been datamined, but haven't been confirmed existing",
+  SI_FURC_LUXURY_TT =           "Items that at some point were sold by Zanil Theran, Cicero's General Goods, Coldharbour",
+  SI_FURC_OTHER_TT =            "Shows items that can be farmed/stolen/found",
+
+  SI_FURC_FILTER_VERSION_OFF_TT =       filterDisabled,
+  SI_FURC_FILTER_VERSION_HS_TT =        "Items released in Homestead update",
+  SI_FURC_FILTER_VERSION_M_TT =         "YOU N\'WAH!",
+  SI_FURC_FILTER_VERSION_R_TT =         "Because all we needed were more Reachmen",
+  SI_FURC_FILTER_VERSION_CC_TT =        "Where the flywheels churn and the brass is pretty",
+  SI_FURC_FILTER_VERSION_DRAGON_TT =    "If you got this from Narsis Dren, well...",
+  SI_FURC_FILTER_VERSION_ALTMER_TT =    "Still think the Dunmer are bad?",
+  SI_FURC_FILTER_VERSION_WEREWOLF_TT =  "In Soviet Hunting Ground, werewolf hunt you",
+  SI_FURC_FILTER_VERSION_SLAVES_TT =    "What do Argonian kids learn at school? Hist-Tree.",
+  SI_FURC_FILTER_VERSION_WOTL_TT =    "Wrathstone!",
+
+  SI_FURC_FILTER_CHAR_OFF =     "Character filter: off",
+  SI_FURC_FILTER_CHAR_OFF_TT =  filterDisabled,
+
+  -- =============================== --
+  -- ========= GUI: Heading ======== --
+  -- =============================== --
+
+  SI_FURC_LABEL_ENTRIES =       " entries -",

     -- =============================== --
-	-- ========= Item Sources ======== --
-	-- =============================== --
-	SI_FURC_CANBEPICKED 					        = "can be pickpocketed",
-	SI_FURC_CANBESTOLEN 					        = "can be stolen",
-    SI_FURC_CROWNSTORESOURCE				        = "Crown Store ",
-    SI_FURC_CANBEFISHED				                = "can be fished",
-    SI_FURC_HARVEST				                    = "from harvesting nodes",
-    SI_FURC_WW				                        = "occasionally found in wood nodes",
-    SI_FURC_PLANTS						            = "from harvesting plants",
-    SI_FURC_SCAMBOX						            = "Crown Crates",
-    SI_FURC_HOUSE						            = "From a furnished purchase of <<1>>",
-    SI_FURC_AUTOMATON						        = "from automatons",
-    SI_FURC_TOMBS 						            = "Ancestor tombs and ruins on Vvardenfell",
-    SI_FURC_DAEDRA_SOURCE 						    = "from Daedra and Dolmen chests",
-    SI_FURC_DB					                    = "The Dark Brotherhood supplies vendor hands these out ",
-    SI_FURC_DB_POISON					            = "with poison",
-    SI_FURC_DB_STEALTH					            = "as a way to be less obtrusive",
-    SI_FURC_DAILY_ASHLANDERS			            = "Ashlander daily quest rewards",
-    SI_FURC_PLUNDERSKULL			                = "Drops from Plunder Skulls during Witches' Festival",
-    SI_FURC_DROP_CHEST_VVARDENFELL	                = "Extremely rarely from chests on Vvardenfell",
-    SI_FURC_VV_PAINTING	                            = "Extremely rarely from chests or lockboxes on Vvardenfell",
-    SI_FURC_DROP                                    = "This item is a drop ",
-    SI_FURC_DROP_ALTMER                             = "This item is a drop on Summerset",
-    SI_FURC_FLAME_ATRONACH	                        = "Flame Atronach",
-    SI_FURC_DWEMER	                        		= "Dwemer",
-	SI_FURC_CHESTS                                  = "from treasure chests",
-	SI_FURC_VVARDENFELL_PAINTING                    = "extremely rarely from safeboxes",
-	SI_FURC_DRAGON_DUNGEON_DROP                     = "Fang Lair/Scalecaller Peak",
-	SI_FURC_ITEMSOURCE_UNKNOWN_YET                  = "This item has been found in the sources/recipes for Summerset! \nIts origin isn't known yet.",
-	SI_FURC_EXISITING_ITEMSOURCE_UNKNOWN_YET        = "This item has been confirmed existing, but its origin isn't known yet.",
-	SI_FURC_ITEMSOURCE_ITEMPACK                     = "This item is part of the Crown Store item pack ",
-
-	SI_FURC_SEEN_IN_GUILDSTORE                      = "Seen in Guild Store",
+  -- ========= Item Sources ======== --
+  -- =============================== --
+  SI_FURC_CANBEPICKED =           "can be pickpocketed",
+  SI_FURC_CANBESTOLEN =           "can be stolen",
+  SI_FURC_CROWNSTORESOURCE =      "Crown Store ",
+  SI_FURC_CANBEFISHED =           "can be fished",
+  SI_FURC_HARVEST =               "from harvesting nodes",
+  SI_FURC_WW =                    "occasionally found in wood nodes",
+  SI_FURC_PLANTS =                "from harvesting plants",
+  SI_FURC_SCAMBOX =               "Crown Crates",
+  SI_FURC_HOUSE =                 "From a furnished purchase of <<1>>",
+  SI_FURC_AUTOMATON =             "from automatons",
+  SI_FURC_TOMBS =                 "Ancestor tombs and ruins on Vvardenfell",
+  SI_FURC_DAEDRA_SOURCE =         "from Daedra and Dolmen chests",
+  SI_FURC_DB =                    "The Dark Brotherhood supplies vendor hands these out ",
+  SI_FURC_DB_POISON =             "with poison",
+  SI_FURC_DB_STEALTH =            "as a way to be less obtrusive",
+  SI_FURC_DAILY_ASH =             "Ashlander daily quest rewards",
+  SI_FURC_PLUNDERSKULL =          "Drops from Plunder Skulls during Witches' Festival",
+  SI_FURC_VV_PAINTING =           "Extremely rarely from chests or lockboxes on Vvardenfell",
+  SI_FURC_DROP =                  "This item is a drop ",
+  SI_FURC_DROP_ALTMER =           "This item is a drop on Summerset",
+  SI_FURC_FLAME_ATRONACH =        "Flame Atronach",
+  SI_FURC_DWEMER =                "Dwemer",
+  SI_FURC_REAPER =                "Reaper's Harvest",
+  SI_FURC_CHESTS =                "from treasure chests",
+  SI_FURC_VVARDENFELL_PAINTING =  "extremely rarely from safeboxes",
+  SI_FURC_CHEST_VV =              "Extremely rarely from chests on Vvardenfell",
+  SI_FURC_DRAGON_DUNGEON_DROP =   "Fang Lair/Scalecaller Peak",
+  SI_FURC_DATAMINED_UNCLEAR =     "This item has been found in the sources/recipes for Summerset! \nIts origin isn't known yet.",
+  SI_FURC_DATAMINED_UNCLEAR =     "This item has been confirmed existing, but its origin isn't known yet.",
+  SI_FURC_ITEMSOURCE_ITEMPACK =   "This item is part of the Crown Store item pack ",
+
+  SI_FURC_SEEN_IN_GUILDSTORE =    "Seen in Guild Store",
 }


 for stringId, stringValue in pairs(strings) do
-	ZO_CreateStringId(stringId, stringValue)
-	SafeAddVersion(stringId, 1)
+  ZO_CreateStringId(stringId, stringValue)
+  SafeAddVersion(stringId, 1)
 end
\ No newline at end of file
diff --git a/locale/fr.lua b/locale/fr.lua
index d8dd22f..ef78e51 100644
--- a/locale/fr.lua
+++ b/locale/fr.lua
@@ -1,264 +1,282 @@
 local filterDisabled = "disables this filter"
 local strings = {

-	FURC_AV_RAZ									= "Razoufa",
-	FURC_AV_MUL									= "Mulvise Valyn",
+  FURC_AV_RAZ = "Razoufa",
+  FURC_AV_MUL = "Mulvise Valyn",

-	FURC_AV_NAR									= "Narwaawende",
-	FURC_AV_ALI									= "Alinor, Riverside Market",
-	FURC_AV_UNW									= "Unwotil",
-	FURC_AV_CUR									= "Curininwe",
-	FURC_AV_NAL									= "Nalirsewen",
-	FURC_AV_TAR									= "Tarmimn",
-	FURC_AV_LTS									= "Listens-To-Sea",
-	FURC_AV_HER									= "Heralda Garscroft",
-	FURC_AV_FRO									= "Frohilde Snow-Hair",
-	FURC_AV_LOT									= "Lozotusk",
-	FURC_AV_ROH									= "Rohzika",
-	FURC_AV_ATH									= "Athragor",
-	FURC_AV_MAL									= "Maladdiq",
-	FURC_AV_KRR									= "Krrztrrb",
-	FURC_AV_ENC									= "enchanters",
-	FURC_AV_ALC									= "alchemists",
-	FURC_AV_OUT									= "Outlaw Refuge, Merchant",
-	FURC_AV_COO									= "cooks",
-	FURC_AV_CLO									= "clothiers",
-	FURC_AV_CAR									= "carpenters",
-	FURC_AV_BSM									= "blacksmiths",
-	FURC_AV_ARTAEUM								= "Artaeum",
-    FURC_AV_CAPITAL                             = "any capital city",
+  FURC_AV_NAR = "Narwaawende",
+  FURC_AV_ALI = "Alinor, Riverside Market",
+  FURC_AV_UNW = "Unwotil",
+  FURC_AV_CUR = "Curininwe",
+  FURC_AV_NAL = "Nalirsewen",
+  FURC_AV_TAR = "Tarmimn",
+  FURC_AV_LTS = "Listens-To-Sea",
+  FURC_AV_HER = "Heralda Garscroft",
+  FURC_AV_FRO = "Frohilde Snow-Hair",
+  FURC_AV_LOT = "Lozotusk",
+  FURC_AV_ROH = "Rohzika",
+  FURC_AV_ATH = "Athragor",
+  FURC_AV_MAL = "Maladdiq",
+  FURC_AV_KRR = "Krrztrrb",
+  FURC_AV_HAR = "Harnwulf",
+  FURC_AV_ADO = "Adosa Veralor",
+  FURC_AV_ENC = "enchanters",
+  FURC_AV_ALC = "alchemists",
+  FURC_AV_OUT = "Outlaw Refuge, Merchant",
+  FURC_AV_COO = "cooks",
+  FURC_AV_CLO = "clothiers",
+  FURC_AV_CAR = "carpenters",
+  FURC_AV_BSM = "blacksmiths",
+  FURC_AV_ARTAEUM = "Artaeum",
+  FURC_AV_CAPITAL = "any capital city",

-	-- Furniture Shopping List
-	SI_FURC_ONE_TO_SHOPPINGLIST = 				"Add 1 to shopping list",
-	SI_FURC_FIVE_TO_SHOPPINGLIST = 				"Add 5 to shopping list",
-	SI_FURC_TOGGLE_SHOPPINGLIST = 				" Toggle shopping list",
+  -- Furniture Shopping List
+  SI_FURC_ONE_TO_SHOPPINGLIST =         "Add 1 to shopping list",
+  SI_FURC_FIVE_TO_SHOPPINGLIST =        "Add 5 to shopping list",
+  SI_FURC_TOGGLE_SHOPPINGLIST =         " Toggle shopping list",

-	-- GUI and debug
-	SI_FURC_MENU_HEADER = 						"- |cD3B830Furniture|r:",
-	SI_FURC_REMOVE_FAVE = 						" Remove Favorite",
-	SI_FURC_ADD_FAVE = 							" Add Favorite",
-	SI_FURC_POST_ITEMSOURCE = 					" Post item source",
-	SI_FURC_POST_RECIPE = 						" Post recipe",
-	SI_FURC_POST_ITEM = 						" Post item",
-	SI_FURC_POST_MATERIAL = 					" Post material",
-	SI_FURC_DIALOGUE_RESET_DB_HEADER = 			"Really re-create furniture database?",
-	SI_FURC_DIALOGUE_RESET_DB_BODY = 			"This will re-create the FurnitureCatalogue database from scratch",
-	SI_FURC_TEXTBOX_FILTER_DEFAULT = 			"Filter by text search",
-	SI_FURC_DEBUG_CHARSCANCOMPLETE = 			"|c2266ffFurniture Catalogue|r|cffffff: Character scan complete...|r",
-	SI_FURC_VERBOSE_STARTUP = 					"|c2266ffFurniture Catalogue|r|cffffff: |cffffffIf you miss any recipes, please trigger a scan on your furniture crafter by clicking the refresh button in the UI.|r",
-	SI_FURC_VERBOSE_DB_UPTODATE = 				"|c2266ffFurniture Catalogue|r|cffffff: The database is up-to-date.|r",
-	SI_FURC_VERBOSE_SCANNING_DATA_FILE =		"|c2266ffFurniture Catalogue|r|cffffff: Scanning data files...|r",
-	SI_FURC_VERBOSE_SCANNING_CHARS =			"Not scanning files, scanning character knowledge now...",
-	SI_FURC_ITEMSOURCE_EMPTY =					"Item source unknown.\nTry to re-scan files (refresh button right click).\nIf still unknown after, please send a mail with the item link and -source to @manavortex",
-	SI_FURC_RUMOUR_SOURCE_RECIPE =				"This recipe has been datamined, but not seen in-game",
-	SI_FURC_RUMOUR_SOURCE_ITEM =				"This item has been datamined, but not seen in-game",
-	SI_FURC_STRING_CRAFTABLE_BY =				"Can be crafted by ",
-	SI_FURC_STRING_CANNOT_CRAFT =				"You cannot craft this yet",
-	SI_FURC_STRING_VENDOR = 					"sold by <<1>> in <<2>> (<<3>><<4>>)",
-	SI_FURC_STRING_AP =							" AP",
-	SI_FURC_STRING_ASSHOLE = 					"Zanil Theran",
-	SI_FURC_STRING_HC = 						"Hollow City",
-	SI_FURC_STRING_WASSOLDBY = 					"Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
-	SI_FURC_STRING_WEEKEND_AROUND = 			"(around <<1>>)",
-	SI_FURC_REQUIRES_QUEST                      = ", requires quest ",
-	SI_FURC_REQUIRES_ACHIEVEMENT                = ", requires ",
-	SI_FURC_PSIJIC_RANK                         = "Psijic Order Rank ",
-	SI_FURC_STRING_WRIT_VENDOR =				"Master Writ Vendor",
-	SI_FURC_STRING_WRIT_VENDOR_TT =				"Obtainable for Master Writs in your alliance's capital",
-	SI_FURC_STRING_Rolis = 					    "Sold by |cd68957Rolis Hlaalu|r <<1>>",
-	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r <<1>>",
-	SI_FURC_STRING_FOR_VOUCHERS =				"for <<1>> vouchers",
-	SI_FURC_FESTIVAL_DROP = 					"can be acquired during <<1>> (<<2>>)",
-	SI_FURC_STRING_RECIPELEARNED = 				"Recipe learned: <<1>> <<2>> <<3>>",
-	SI_FURC_STRING_RECIPESFORCHAR = 			"recipes for <<1>>",
-	SI_FURC_STRING_VOUCHER_VENDOR =				"Sold by either Rolis Hlaalu or Faustina Curio",
-    SI_FURC_QUESTREWARD =                       "Reward for a quest in ",
-    SI_FURC_GEYSIR =                            "Drops from geysir reward clams on Summerset",
-    SI_FURC_GIANT_CLAM =                        "Drops from giant clams and geysir reward clams on Summerset",
-	-- =============================== --
-	-- ============ MENU ============= --
-	-- =============================== --
+  -- GUI and debug
+  SI_FURC_MENU_HEADER =                 "- |cD3B830Furniture|r:",
+  SI_FURC_REMOVE_FAVE =                 " Remove Favorite",
+  SI_FURC_ADD_FAVE =                     " Add Favorite",
+  SI_FURC_POST_ITEMSOURCE =             " Post item source",
+  SI_FURC_POST_RECIPE =                 " Post recipe",
+  SI_FURC_POST_ITEM =                   " Post item",
+  SI_FURC_POST_MATERIAL =               " Post material",
+  SI_FURC_DIALOGUE_RESET_DB_HEADER =    "Really re-create furniture database?",
+  SI_FURC_DIALOGUE_RESET_DB_BODY =      "This will re-create the FurnitureCatalogue database from scratch",
+  SI_FURC_TEXTBOX_FILTER_DEFAULT =      "Filter by text search",
+  SI_FURC_DEBUG_CHARSCANCOMPLETE =      "|c2266ffFurniture Catalogue|r|cffffff: Character scan complete...|r",
+  SI_FURC_VERBOSE_STARTUP =             "|c2266ffFurniture Catalogue|r|cffffff: |cffffffIf you miss any recipes, please trigger a scan on your furniture crafter by clicking the refresh button in the UI.|r",
+  SI_FURC_VERBOSE_DB_UPTODATE =         "|c2266ffFurniture Catalogue|r|cffffff: The database is up-to-date.|r",
+  SI_FURC_VERBOSE_SCANNING_DATA_FILE =  "|c2266ffFurniture Catalogue|r|cffffff: Scanning data files...|r",
+  SI_FURC_VERBOSE_SCANNING_CHARS =      "Not scanning files, scanning character knowledge now...",
+  SI_FURC_ITEMSOURCE_EMPTY =            "Item source unknown.\nTry to re-scan files (refresh button right click).\nIf still unknown after, please send a mail with the item link and -source to @manavortex",
+  SI_FURC_RUMOUR_SOURCE_RECIPE =        "This recipe has been datamined, but not seen in-game",
+  SI_FURC_RUMOUR_SOURCE_ITEM =          "This item has been datamined, but not seen in-game",
+  SI_FURC_STRING_CRAFTABLE_BY =         "Can be crafted by ",
+  SI_FURC_STRING_CANNOT_CRAFT =         "You cannot craft this yet",
+  SI_FURC_STRING_VENDOR =               "sold by <<1>> in <<2>> (<<3>><<4>>)",
+  SI_FURC_STRING_AP =                   " AP",
+  SI_FURC_STRING_ASSHOLE =              "Zanil Theran",
+  SI_FURC_STRING_HC =                   "Hollow City",
+  SI_FURC_STRING_WASSOLDBY =            "Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
+  SI_FURC_STRING_WEEKEND_AROUND =       "(around <<1>>)",
+  SI_FURC_REQUIRES_QUEST =              ", requires quest ",
+  SI_FURC_REQUIRES_ACHIEVEMENT =        ", requires ",
+  SI_FURC_PSIJIC_RANK =                 "Psijic Order Rank ",
+  SI_FURC_STRING_WRIT_VENDOR =          "Master Writ Vendor",
+  SI_FURC_STRING_WRIT_VENDOR_TT =       "Obtainable for Master Writs in your alliance's capital",
+  SI_FURC_STRING_Rolis =                "Sold by |cd68957Rolis Hlaalu|r <<1>>",
+  SI_FURC_STRING_FAUSTINA =             "Sold by |cd68957Faustina Curio|r <<1>>",
+  SI_FURC_STRING_FOR_VOUCHERS =         "for <<1>> vouchers",
+  SI_FURC_FESTIVAL_DROP =               "can be acquired during <<1>> (<<2>>)",
+  SI_FURC_WW_DUNGEON_DROP =             "Drops in Monster Hunter Keep/March of the Sacrifices",
+  SI_FURC_STRING_RECIPELEARNED =        "Recipe learned: <<1>> <<2>> <<3>>",
+  SI_FURC_STRING_RECIPESFORCHAR =       "recipes for <<1>>",
+  SI_FURC_STRING_VOUCHER_VENDOR =       "Sold by either Rolis Hlaalu or Faustina Curio",
+  SI_FURC_QUESTREWARD =                 "Reward for a quest in ",
+  SI_FURC_GEYSIR =                      "Drops from geysir reward clams on Summerset",
+  SI_FURC_GIANT_CLAM =                  "Drops from giant clams and geysir reward clams on Summerset",
+  SI_FURC_ELF_PIC =                     "Drops extremely rarely from treasure chests on Summerset",
+  SI_FURC_LEVELUP =                     "Can be gained as levelup reward",
+  SI_FURC_SLAVES_PREQUEST =             "from Murkmire Prequest reward boxes",
+
+  -- =============================== --
+  -- ============ MENU ============= --
+  -- =============================== --

-	SI_FURC_STRING_MENU_DEBUG = 				"Enable debug output",
-	SI_FURC_STRING_MENU_RESET_DB_NAME = 		"|cFF0000Reset database|r",
-	SI_FURC_STRING_MENU_RESET_DB_TT = 			"This will reset the furniture database.",
-	SI_FURC_STRING_MENU_RESET_DB_WARNING =		"All your data will be reset. Only recipe knowledge for this character will be considered.",
-	SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME =  	"Re-scan Rumour recipes",
-	SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT = 		"Will update the rumour recipes against the updated list",
-	SI_FURC_STRING_MENU_SCAN_FILES_NAME =		"Scan files",
-	SI_FURC_STRING_MENU_SCAN_FILES_TT = 		"Will run a full scan of the data in Furniture Catalogue's files",
-	SI_FURC_STRING_MENU_SCAN_CHAR_NAME = 		"Scan character",
-	SI_FURC_STRING_MENU_SCAN_CHAR_TT = 			"Will run a full scan of your known furniture recipes and update the database accordingly",
-	SI_FURC_STRING_MENU_DELETE_CHAR_NAME =		"delete character",
-	SI_FURC_STRING_MENU_DELETE_CHAR_TT =		"Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
-	SI_FURC_STRING_MENU_DELETE_CHAR_WARNING =	"Character knowledge will be wiped immediately",
-	SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST =	"Enable integration?",
-	SI_FURC_STRING_MENU_SKIP_INITIALSCAN =		"Skip Initial Scan?",
-	SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT =	"Check this to not scan your character's recipes on login. \nThanks to votan's awesome LibAsync the lag is gone now in any case..",
-	SI_FURC_STRING_MENU_HEADER_ICONS =			"Inventory and bank icons",
-	SI_FURC_STRING_MENU_ADD_ITEMS_NAME = 		"Add items to known/unknown recipes?",
-	SI_FURC_STRING_MENU_ADD_ITEMS_TT = 			"You shouldn't notice any lag",
-	SI_FURC_STRING_MENU_IT_UNKNOWN_NAME = 		"Only mark unknown recipes?",
-	SI_FURC_STRING_MENU_IT_THIS_ONLY = 			"Only for this character?",
-	SI_FURC_STRING_MENU_IT_THIS_ONLY_TT = 		"Will be accountwide otherwise.",
-	SI_FURC_STRING_MENU_USETINY = 	 			"Use tiny interface?",
-	SI_FURC_STRING_MENU_USETINY_TT = 	 		"Use a smaller interface (Craft Store like). \nYou can toggle this from the UI by clicking the +/- button.",
+  SI_FURC_STRING_MENU_DEBUG =               "Enable debug output",
+  SI_FURC_STRING_MENU_RESET_DB_NAME =       "|cFF0000Reset database|r",
+  SI_FURC_STRING_MENU_RESET_DB_TT =         "This will reset the furniture database.",
+  SI_FURC_STRING_MENU_RESET_DB_WARNING =    "All your data will be reset. Only recipe knowledge for this character will be considered.",
+  SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME =  "Re-scan Rumour recipes",
+  SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT =    "Will update the rumour recipes against the updated list",
+  SI_FURC_STRING_MENU_SCAN_FILES_NAME =     "Scan files",
+  SI_FURC_STRING_MENU_SCAN_FILES_TT =       "Will run a full scan of the data in Furniture Catalogue's files",
+  SI_FURC_STRING_MENU_SCAN_CHAR_NAME =      "Scan character",
+  SI_FURC_STRING_MENU_SCAN_CHAR_TT =        "Will run a full scan of your known furniture recipes and update the database accordingly",
+  SI_FURC_STRING_MENU_DELETE_CHAR_NAME =    "delete character",
+  SI_FURC_STRING_MENU_DELETE_CHAR_TT =      "Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
+  SI_FURC_STRING_MENU_DELETE_CHAR_WARNING = "Character knowledge will be wiped immediately",
+  SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST = "Enable integration?",
+  SI_FURC_STRING_MENU_SKIP_INITIALSCAN =    "Skip Initial Scan?",
+  SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT = "Check this to not scan your character's recipes on login. \nThanks to votan's awesome LibAsync the lag is gone now in any case..",
+  SI_FURC_STRING_MENU_HEADER_ICONS =        "Inventory and bank icons",
+  SI_FURC_STRING_MENU_ADD_ITEMS_NAME =      "Add items to known/unknown recipes?",
+  SI_FURC_STRING_MENU_ADD_ITEMS_TT =        "You shouldn't notice any lag",
+  SI_FURC_STRING_MENU_IT_UNKNOWN_NAME =     "Only mark unknown recipes?",
+  SI_FURC_STRING_MENU_IT_THIS_ONLY =        "Only for this character?",
+  SI_FURC_STRING_MENU_IT_THIS_ONLY_TT =     "Will be accountwide otherwise.",
+  SI_FURC_STRING_MENU_USETINY =             "Use tiny interface?",
+  SI_FURC_STRING_MENU_USETINY_TT =          "Use a smaller interface (Craft Store like). \nYou can toggle this from the UI by clicking the +/- button.",

-	SI_FURC_STRING_MENU_STARTSILENT = 	 		"Start silently?",
-	SI_FURC_STRING_MENU_STARTSILENT_TT = 	 	"Suppress startup message",
-	SI_FURC_STRING_MENU_SHOWICONONLEFT = 		"Show Known/Unknown icon on left?",
-	SI_FURC_STRING_MENU_SHOWICONONLEFT_TT =		"Show Green Check/Red X icon on left or right of the inventory item (requires reloadui)",
-	SI_FURC_STRING_MENU_FONTSIZE = 	 			"Font size",
-	SI_FURC_STRING_MENU_FONTSIZE_TT = 	 		"adjust font size for FurnitureCatalogue here",
-	SI_FURC_STRING_MENU_DEFAULT_DD = 	 		"Default dropdown values",
-	SI_FURC_STRING_MENU_DEFAULT_DD_USE = 	 	"Will be set on initial launch",
-	SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT = 	"These will not reset if you open and close the UI",
-	SI_FURC_STRING_MENU_DEFAULT_DD_RESET = 		"Reset filters when closing UI?",
-	SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT = 	"If you check this, opening and closing will cause the filters to reset to whatever you set below.",
-	SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE = 	"default source filter",
-	SI_FURC_STRING_MENU_DEFAULT_DD_CHAR = 		"default character filter",
-	SI_FURC_STRING_MENU_DEFAULT_DD_VERSION = 	"default version filter",
-	SI_FURC_STRING_MENU_FILTERING = 			"Catalogue filtering",
-	SI_FURC_STRING_MENU_FILTER_BOOKS = 			"Mages guild books",
-	SI_FURC_STRING_MENU_FILTER_BOOKS_N = 		"Hide books?",
-	SI_FURC_STRING_MENU_FILTER_BOOKS_TT = 		"A real book lover knows where everything is by heart. Hide books from Furniture Catalogue?",
-	SI_FURC_STRING_MENU_LUXURY = 				"Luxury Furnishings",
-	SI_FURC_STRING_MENU_LUXURY_N = 				"Treat luxury items as purchaseables?",
-	SI_FURC_STRING_MENU_LUXURY_TT = 			"This will show everything that was sold by Zanil Theran under 'purchaseable' and deactvates the custom filter",
-	SI_FURC_STRING_MENU_LUXURY_WARN = 			"Hiding the dropdown entry requires UI reload (won't happen automatically for your convenience)",
-	SI_FURC_STRING_MENU_RUMOUR = 				"Rumour recipes",
-	SI_FURC_STRING_MENU_RUMOUR_DESC = 		 	"The furniture database contains a list of recipes that I have datamined.\nHowever, not all of those have been seen in-game.\nEnable this option to exclude them from the default filters.\nYou can still view them with their own filter, which you can disable below.",
-
-	SI_FURC_STRING_MENU_RUMOUR_N = 				"Hide rumour recipes?",
-	SI_FURC_STRING_MENU_CROWN = 				"Crown store items",
-	SI_FURC_STRING_MENU_CROWN_N = 				"Hide crown store items?",
-	SI_FURC_STRING_MENU_CROWN_DESC = 			"The furniture database will update whenever the tooltip shows a furniture item. \nSome items can only be acquired via crown store. \nCheck this box to exclude them from the default filters (disable crown store filter below).",
+  SI_FURC_STRING_MENU_STARTSILENT =         "Start silently?",
+  SI_FURC_STRING_MENU_STARTSILENT_TT =      "Suppress startup message",
+  SI_FURC_STRING_MENU_SHOWICONONLEFT =      "Show Known/Unknown icon on left?",
+  SI_FURC_STRING_MENU_SHOWICONONLEFT_TT =   "Show Green Check/Red X icon on left or right of the inventory item (requires reloadui)",
+  SI_FURC_STRING_MENU_FONTSIZE =            "Font size",
+  SI_FURC_STRING_MENU_FONTSIZE_TT =         "adjust font size for FurnitureCatalogue here",
+  SI_FURC_STRING_MENU_DEFAULT_DD =          "Default dropdown values",
+  SI_FURC_STRING_MENU_DEFAULT_DD_USE =      "Will be set on initial launch",
+  SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT =   "These will not reset if you open and close the UI",
+  SI_FURC_STRING_MENU_DEFAULT_DD_RESET =    "Reset filters when closing UI?",
+  SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT = "If you check this, opening and closing will cause the filters to reset to whatever you set below.",
+  SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE =   "default source filter",
+  SI_FURC_STRING_MENU_DEFAULT_DD_CHAR =     "default character filter",
+  SI_FURC_STRING_MENU_DEFAULT_DD_VERSION =  "default version filter",
+  SI_FURC_STRING_MENU_FILTERING =           "Catalogue filtering",
+  SI_FURC_STRING_MENU_FILTER_BOOKS =        "Mages guild books",
+  SI_FURC_STRING_MENU_FILTER_BOOKS_N =      "Hide books?",
+  SI_FURC_STRING_MENU_FILTER_BOOKS_TT =     "A real book lover knows where everything is by heart. Hide books from Furniture Catalogue?",
+  SI_FURC_STRING_MENU_LUXURY =              "Luxury Furnishings",
+  SI_FURC_STRING_MENU_LUXURY_N =            "Treat luxury items as purchaseables?",
+  SI_FURC_STRING_MENU_LUXURY_TT =           "This will show everything that was sold by Zanil Theran under 'purchaseable' and deactvates the custom filter",
+  SI_FURC_STRING_MENU_LUXURY_WARN =         "Hiding the dropdown entry requires UI reload (won't happen automatically for your convenience)",
+  SI_FURC_STRING_MENU_RUMOUR =              "Rumour recipes",
+  SI_FURC_STRING_MENU_RUMOUR_DESC =         "The furniture database contains a list of recipes that I have datamined.\nHowever, not all of those have been seen in-game.\nEnable this option to exclude them from the default filters.\nYou can still view them with their own filter, which you can disable below.",
+  SI_FURC_STRING_CONTEXTMENU_DIVIDER =      "Don't use divider in context menu?",
+  SI_FURC_STRING_CONTEXTMENU_DIVIDER_TT =   "Adds a divider to the context manu above the - Furniture entry. Check to disable",
+
+
+  SI_FURC_STRING_MENU_RUMOUR_N =            "Hide rumour recipes?",
+  SI_FURC_STRING_MENU_CROWN =               "Crown store items",
+  SI_FURC_STRING_MENU_CROWN_N =             "Hide crown store items?",
+  SI_FURC_STRING_MENU_CROWN_DESC =          "The furniture database will update whenever the tooltip shows a furniture item. \nSome items can only be acquired via crown store. \nCheck this box to exclude them from the default filters (disable crown store filter below).",

     -- Filter text search
-    SI_FURC_STRING_MENU_HEADER_F_ALL_ON_TEXT =  "Filter settings for text search",
-    SI_FURC_STRING_MENU_F_ALL_ON_TEXT =         "Configure this filter",
-    SI_FURC_STRING_MENU_HEADER_F_ALL_DESC =     "Configure filter settings for text search with disabled dropdowns. \nThese settings will only take effect when you have not set a source, character or version filter.",
+  SI_FURC_STRING_MENU_HEADER_F_ALL_ON_TEXT =  "Filter settings for text search",
+  SI_FURC_STRING_MENU_F_ALL_ON_TEXT =         "Configure this filter",
+  SI_FURC_STRING_MENU_HEADER_F_ALL_DESC =     "Configure filter settings for text search with disabled dropdowns. \nThese settings will only take effect when you have not set a source, character or version filter.",

-    SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT =    "Search filtered items when doing a text search with no dropdown filters set?",
-    SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT_TT = "When doing a text search without any dropdown ",
-    SI_FURC_STRING_MENU_FALL_HIDE_BOOKS =       "Hide books anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_BOOKS_TT =    "Even when filtering all items, still hide books?",
-    SI_FURC_STRING_MENU_FALL_HIDE_CROWN =       "Hide crown store items anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_CROWN_TT =    "Even when filtering all items, still hide crown store items?",
-    SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR =      "Hide rumour items anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR_TT =   "Even when filtering all items, still hide rumour items?",
+  SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT =    "Search filtered items when doing a text search with no dropdown filters set?",
+  SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT_TT = "When doing a text search without any dropdown ",
+  SI_FURC_STRING_MENU_FALL_HIDE_BOOKS =       "Hide books anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_BOOKS_TT =    "Even when filtering all items, still hide books?",
+  SI_FURC_STRING_MENU_FALL_HIDE_CROWN =       "Hide crown store items anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_CROWN_TT =    "Even when filtering all items, still hide crown store items?",
+  SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR =      "Hide rumour items anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR_TT =   "Even when filtering all items, still hide rumour items?",

     -- Hide menu entries
-	SI_FURC_STRING_MENU_HIDE_MENU = 				"Hide menu entries?",
-	SI_FURC_STRING_MENU_HIDE_MENU_TT = 				"Hides \"Crown store\" and \"Rumour recipes\" from the dropdown \nactivated for crown store by default, as there aren't any items yet",
-	SI_FURC_STRING_MENU_HIDE_MENU_RUMOUR = 			"Hide \"Rumour recipes\" drop down entry?",
-	SI_FURC_STRING_MENU_HIDE_MENU_CROWN = 			"Hide \"Crown Store\" drop down entry?",
-	SI_FURC_STRING_MENU_HIDE_MENU_TT =				"Requires UI reload (won't happen automatically for your convenience)",
-	SI_FURC_STRING_MENU_TOOLTIP =					"Enable tooltips?",
-	SI_FURC_STRING_MENU_TOOLTIP_COLOR =	 			"Colorize tooltips for clarity?",
-	SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT = 			"Will colour 'can' and 'cannot'",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN =  		"Hide if item is known",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT = 	"Hides 'can be crafted by...' from tooltip",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN =  	"Hide if item is unknown",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT =	"Hides 'you cannot craft this yet'",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE =  		"Hide item source?",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION =  	"Hide crafting station?",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL =  	"Hide material?",
+  SI_FURC_STRING_MENU_HIDE_MENU =               "Hide menu entries?",
+  SI_FURC_STRING_MENU_HIDE_MENU_TT =            "Hides \"Crown store\" and \"Rumour recipes\" from the dropdown \nactivated for crown store by default, as there aren't any items yet",
+  SI_FURC_STRING_MENU_HIDE_MENU_RUMOUR =        "Hide \"Rumour recipes\" drop down entry?",
+  SI_FURC_STRING_MENU_HIDE_MENU_CROWN =         "Hide \"Crown Store\" drop down entry?",
+  SI_FURC_STRING_MENU_HIDE_MENU_TT =            "Requires UI reload (won't happen automatically for your convenience)",
+  SI_FURC_STRING_MENU_TOOLTIP =                 "Enable tooltips?",
+  SI_FURC_STRING_MENU_TOOLTIP_COLOR =           "Colorize tooltips for clarity?",
+  SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT =        "Will colour 'can' and 'cannot'",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN =      "Hide if item is known",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT =   "Hides 'can be crafted by...' from tooltip",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN =    "Hide if item is unknown",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT = "Hides 'you cannot craft this yet'",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE =     "Hide item source?",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION =    "Hide crafting station?",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL =   "Hide material?",

-	-- =============================== --
-	-- ==== GUI: Dropdown entries ==== --
-	-- =============================== --
+  -- =============================== --
+  -- ==== GUI: Dropdown entries ==== --
+  -- =============================== --

-	SI_FURC_NONE 									= "Source filter: off",
-	SI_FURC_FAVE 									= "Favorites",
-	SI_FURC_CRAFTING								= "Craftable: All",
-	SI_FURC_CRAFTING_KNOWN							= "Craftable: Known",
-	SI_FURC_CRAFTING_UNKNOWN						= "Craftable: Unknown",
-	SI_FURC_VENDOR									= "Purchaseable (gold)",
-	SI_FURC_PVP										= "Purchaseable (AP)",
-	SI_FURC_CROWN									= "Crown Store",
-	SI_FURC_RUMOUR									= "Rumour items",
-	SI_FURC_LUXURY									= "Luxury items",
-	SI_FURC_RUMOUR									= "Rumour items",
-	SI_FURC_OTHER									= "Other",
+  SI_FURC_NONE =                "Source filter: off",
+  SI_FURC_FAVE =                "Favorites",
+  SI_FURC_CRAFTING =            "Craftable: All",
+  SI_FURC_CRAFTING_KNOWN =      "Craftable: Known",
+  SI_FURC_CRAFTING_UNKNOWN =    "Craftable: Unknown",
+  SI_FURC_VENDOR =              "Purchaseable (gold)",
+  SI_FURC_PVP =                 "Purchaseable (AP)",
+  SI_FURC_CROWN =               "Crown Store",
+  SI_FURC_RUMOUR =              "Rumour items",
+  SI_FURC_LUXURY =              "Luxury items",
+  SI_FURC_RUMOUR =              "Rumour items",
+  SI_FURC_OTHER =               "Other",

-	SI_FURC_FILTER_VERSION_OFF						= "Version filter: off",
-	SI_FURC_FILTER_VERSION_HS						= "Homestead",
-	SI_FURC_FILTER_VERSION_M						= "Morrowind",
-	SI_FURC_FILTER_VERSION_R						= "Horns of the Reach",
-	SI_FURC_FILTER_VERSION_CC						= "Clockwork City",
-	SI_FURC_FILTER_VERSION_DRAGON					= "Dragon Bones",
-	SI_FURC_FILTER_VERSION_ALTMER					= "Summerset",
-	SI_FURC_FILTER_VERSION_ALTMER_TT                = "",
+  SI_FURC_FILTER_VERSION_OFF =      "Version filter: off",
+  SI_FURC_FILTER_VERSION_HS =       "Homestead",
+  SI_FURC_FILTER_VERSION_M =        "Morrowind",
+  SI_FURC_FILTER_VERSION_R =        "Horns of the Reach",
+  SI_FURC_FILTER_VERSION_CC =       "Clockwork City",
+  SI_FURC_FILTER_VERSION_DRAGON =   "Dragon Bones",
+  SI_FURC_FILTER_VERSION_ALTMER =   "Summerset",
+  SI_FURC_FILTER_VERSION_WEREWOLF = "Wolfhunter",
+  SI_FURC_FILTER_VERSION_SLAVES =   "Murkmire",
+

-	-- =============================== --
-	-- = GUI: Dropdown entry tooltip = --
-	-- =============================== --
+  -- =============================== --
+  -- = GUI: Dropdown entry tooltip = --
+  -- =============================== --

-	SI_FURC_NONE_TT 								= "disables this filter",
-	SI_FURC_FAVE_TT 								= "Shows your favorites",
-	SI_FURC_CRAFTING_TT								= "Shows all craftable items",
-	SI_FURC_CRAFTING_KNOWN_TT						= "Shows only known craftable items",
-	SI_FURC_CRAFTING_UNKNOWN_TT						= "Shows only unknown craftable items",
-	SI_FURC_VENDOR_TT								= "Shows only items that cannot be crafted",
-	SI_FURC_PVP_TT									= "Items that are sold for alliance points",
-	SI_FURC_CROWN_TT								= "Shows items that can only be acquired from crown store",
-	SI_FURC_RUMOUR_TT								= "Items and recipes that have been datamined, but haven't been confirmed existing",
-	SI_FURC_LUXURY_TT								= "Items that at some point were sold by Zanil Theran, Cicero's General Goods, Coldharbour",
-	SI_FURC_OTHER_TT								= "Shows items that can be farmed/stolen/found",
-
-	SI_FURC_FILTER_VERSION_OFF_TT					= filterDisabled,
-	SI_FURC_FILTER_VERSION_HS_TT					= "Items released in Homestead update",
-	SI_FURC_FILTER_VERSION_M_TT						= "YOU N\'WAH!",
-	SI_FURC_FILTER_VERSION_R_TT						= "Because all we needed were more Reachmen",
-	SI_FURC_FILTER_VERSION_CC_TT					= "Where the flywheels churn and the brass is pretty",
-	SI_FURC_FILTER_VERSION_DRAGON_TT				= "If you got this from Narsis Dren, well...",
-
-
-	SI_FURC_FILTER_CHAR_OFF							= "Character filter: off",
-	SI_FURC_FILTER_CHAR_OFF_TT						= filterDisabled,
-
-	-- =============================== --
-	-- ========= GUI: Heading ======== --
-	-- =============================== --
-
-	SI_FURC_LABEL_ENTRIES							= " entries -",
+  SI_FURC_NONE_TT =             "disables this filter",
+  SI_FURC_FAVE_TT =             "Shows your favorites",
+  SI_FURC_CRAFTING_TT =         "Shows all craftable items",
+  SI_FURC_CRAFTING_KNOWN_TT =   "Shows only known craftable items",
+  SI_FURC_CRAFTING_UNKNOWN_TT = "Shows only unknown craftable items",
+  SI_FURC_VENDOR_TT =           "Shows only items that cannot be crafted",
+  SI_FURC_PVP_TT =              "Items that are sold for alliance points",
+  SI_FURC_CROWN_TT =            "Shows items that can only be acquired from crown store",
+  SI_FURC_RUMOUR_TT =           "Items and recipes that have been datamined, but haven't been confirmed existing",
+  SI_FURC_LUXURY_TT =           "Items that at some point were sold by Zanil Theran, Cicero's General Goods, Coldharbour",
+  SI_FURC_OTHER_TT =            "Shows items that can be farmed/stolen/found",
+
+  SI_FURC_FILTER_VERSION_OFF_TT =       filterDisabled,
+  SI_FURC_FILTER_VERSION_HS_TT =        "Items released in Homestead update",
+  SI_FURC_FILTER_VERSION_M_TT =         "YOU N\'WAH!",
+  SI_FURC_FILTER_VERSION_R_TT =         "Because all we needed were more Reachmen",
+  SI_FURC_FILTER_VERSION_CC_TT =        "Where the flywheels churn and the brass is pretty",
+  SI_FURC_FILTER_VERSION_DRAGON_TT =    "If you got this from Narsis Dren, well...",
+  SI_FURC_FILTER_VERSION_ALTMER_TT =    "Still think the Dunmer are bad?",
+  SI_FURC_FILTER_VERSION_WEREWOLF_TT =  "In Soviet Hunting Ground, werewolf hunt you",
+  SI_FURC_FILTER_VERSION_SLAVES_TT =    "What do Argonian kids learn at school? Hist-Tree.",
+
+  SI_FURC_FILTER_CHAR_OFF =     "Character filter: off",
+  SI_FURC_FILTER_CHAR_OFF_TT =  filterDisabled,
+
+  -- =============================== --
+  -- ========= GUI: Heading ======== --
+  -- =============================== --
+
+  SI_FURC_LABEL_ENTRIES =       " entries -",

     -- =============================== --
-	-- ========= Item Sources ======== --
-	-- =============================== --
-	SI_FURC_CANBEPICKED 					        = "can be pickpocketed",
-	SI_FURC_CANBESTOLEN 					        = "can be stolen",
-    SI_FURC_CROWNSTORESOURCE				        = "Crown Store ",
-    SI_FURC_CANBEFISHED				                = "can be fished",
-    SI_FURC_HARVEST				                    = "from harvesting nodes",
-    SI_FURC_WW				                        = "occasionally found in wood nodes",
-    SI_FURC_PLANTS						            = "from harvesting plants",
-    SI_FURC_SCAMBOX						            = "Crown Crates",
-    SI_FURC_HOUSE						            = "From a furnished purchase of <<1>>",
-    SI_FURC_AUTOMATON						        = "from automatons",
-    SI_FURC_TOMBS 						            = "Ancestor tombs and ruins on Vvardenfell",
-    SI_FURC_DAEDRA_SOURCE 						    = "from Daedra and Dolmen chests",
-    SI_FURC_DB					                    = "The Dark Brotherhood supplies vendor hands these out ",
-    SI_FURC_DB_POISON					            = "with poison",
-    SI_FURC_DB_STEALTH					            = "as a way to be less obtrusive",
-    SI_FURC_DAILY_ASHLANDERS			            = "Ashlander daily quest rewards",
-    SI_FURC_PLUNDERSKULL			                = "Drops from Plunder Skulls during Witches' Festival",
-    SI_FURC_DROP_CHEST_VVARDENFELL	                = "Extremely rarely from chests on Vvardenfell",
-    SI_FURC_DROP                                    = "This item is a drop ",
-    SI_FURC_DROP_ALTMER                             = "This item is a drop on Summerset",
-    SI_FURC_FLAME_ATRONACH	                        = "Flame Atronach",
-	SI_FURC_CHESTS                                  = "from treasure chests",
-	SI_FURC_VVARDENFELL_PAINTING                    = "extremely rarely from safeboxes",
-	SI_FURC_DRAGON_DUNGEON_DROP                     = "Fang Lair/Scalecaller Peak",
-	SI_FURC_ITEMSOURCE_UNKNOWN_YET                  = "This item has been found in the sources/recipes for Summerset! \nIts origin isn't known yet.",
-	SI_FURC_EXISITING_ITEMSOURCE_UNKNOWN_YET        = "This item has been confirmed existing, but its origin isn't known yet.",
-	SI_FURC_ITEMSOURCE_ITEMPACK                     = "This item is part of the Crown Store item pack ",
-
-	SI_FURC_SEEN_IN_GUILDSTORE                      = "Seen in Guild Store",
+  -- ========= Item Sources ======== --
+  -- =============================== --
+  SI_FURC_CANBEPICKED =           "can be pickpocketed",
+  SI_FURC_CANBESTOLEN =           "can be stolen",
+  SI_FURC_CROWNSTORESOURCE =      "Crown Store ",
+  SI_FURC_CANBEFISHED =           "can be fished",
+  SI_FURC_HARVEST =               "from harvesting nodes",
+  SI_FURC_WW =                    "occasionally found in wood nodes",
+  SI_FURC_PLANTS =                "from harvesting plants",
+  SI_FURC_SCAMBOX =               "Crown Crates",
+  SI_FURC_HOUSE =                 "From a furnished purchase of <<1>>",
+  SI_FURC_AUTOMATON =             "from automatons",
+  SI_FURC_TOMBS =                 "Ancestor tombs and ruins on Vvardenfell",
+  SI_FURC_DAEDRA_SOURCE =         "from Daedra and Dolmen chests",
+  SI_FURC_DB =                    "The Dark Brotherhood supplies vendor hands these out ",
+  SI_FURC_DB_POISON =             "with poison",
+  SI_FURC_DB_STEALTH =            "as a way to be less obtrusive",
+  SI_FURC_DAILY_ASH =             "Ashlander daily quest rewards",
+  SI_FURC_PLUNDERSKULL =          "Drops from Plunder Skulls during Witches' Festival",
+  SI_FURC_VV_PAINTING =           "Extremely rarely from chests or lockboxes on Vvardenfell",
+  SI_FURC_DROP =                  "This item is a drop ",
+  SI_FURC_DROP_ALTMER =           "This item is a drop on Summerset",
+  SI_FURC_FLAME_ATRONACH =        "Flame Atronach",
+  SI_FURC_DWEMER =                "Dwemer",
+  SI_FURC_REAPER =                "Reaper's Harvest",
+  SI_FURC_CHESTS =                "from treasure chests",
+  SI_FURC_VVARDENFELL_PAINTING =  "extremely rarely from safeboxes",
+  SI_FURC_CHEST_VV =              "Extremely rarely from chests on Vvardenfell",
+  SI_FURC_DRAGON_DUNGEON_DROP =   "Fang Lair/Scalecaller Peak",
+  SI_FURC_DATAMINED_UNCLEAR =     "This item has been found in the sources/recipes for Summerset! \nIts origin isn't known yet.",
+  SI_FURC_DATAMINED_UNCLEAR =     "This item has been confirmed existing, but its origin isn't known yet.",
+  SI_FURC_ITEMSOURCE_ITEMPACK =   "This item is part of the Crown Store item pack ",
+
+  SI_FURC_SEEN_IN_GUILDSTORE =    "Seen in Guild Store",
 }

+
 for stringId, stringValue in pairs(strings) do
-	ZO_CreateStringId(stringId, stringValue)
-	SafeAddVersion(stringId, 2)
-end
\ No newline at end of file
+  ZO_CreateStringId(stringId, stringValue)
+  SafeAddVersion(stringId, 1)
+end
diff --git a/locale/jp.lua b/locale/jp.lua
index d8dd22f..65a17cd 100644
--- a/locale/jp.lua
+++ b/locale/jp.lua
@@ -1,264 +1,278 @@
 local filterDisabled = "disables this filter"
 local strings = {

-	FURC_AV_RAZ									= "Razoufa",
-	FURC_AV_MUL									= "Mulvise Valyn",
+  FURC_AV_RAZ = "Razoufa",
+  FURC_AV_MUL = "Mulvise Valyn",

-	FURC_AV_NAR									= "Narwaawende",
-	FURC_AV_ALI									= "Alinor, Riverside Market",
-	FURC_AV_UNW									= "Unwotil",
-	FURC_AV_CUR									= "Curininwe",
-	FURC_AV_NAL									= "Nalirsewen",
-	FURC_AV_TAR									= "Tarmimn",
-	FURC_AV_LTS									= "Listens-To-Sea",
-	FURC_AV_HER									= "Heralda Garscroft",
-	FURC_AV_FRO									= "Frohilde Snow-Hair",
-	FURC_AV_LOT									= "Lozotusk",
-	FURC_AV_ROH									= "Rohzika",
-	FURC_AV_ATH									= "Athragor",
-	FURC_AV_MAL									= "Maladdiq",
-	FURC_AV_KRR									= "Krrztrrb",
-	FURC_AV_ENC									= "enchanters",
-	FURC_AV_ALC									= "alchemists",
-	FURC_AV_OUT									= "Outlaw Refuge, Merchant",
-	FURC_AV_COO									= "cooks",
-	FURC_AV_CLO									= "clothiers",
-	FURC_AV_CAR									= "carpenters",
-	FURC_AV_BSM									= "blacksmiths",
-	FURC_AV_ARTAEUM								= "Artaeum",
-    FURC_AV_CAPITAL                             = "any capital city",
+  FURC_AV_NAR = "Narwaawende",
+  FURC_AV_ALI = "Alinor, Riverside Market",
+  FURC_AV_UNW = "Unwotil",
+  FURC_AV_CUR = "Curininwe",
+  FURC_AV_NAL = "Nalirsewen",
+  FURC_AV_TAR = "Tarmimn",
+  FURC_AV_LTS = "Listens-To-Sea",
+  FURC_AV_HER = "Heralda Garscroft",
+  FURC_AV_FRO = "Frohilde Snow-Hair",
+  FURC_AV_LOT = "Lozotusk",
+  FURC_AV_ROH = "Rohzika",
+  FURC_AV_ATH = "Athragor",
+  FURC_AV_MAL = "Maladdiq",
+  FURC_AV_KRR = "Krrztrrb",
+  FURC_AV_HAR = "Harnwulf",
+  FURC_AV_ADO = "Adosa Veralor",
+  FURC_AV_ENC = "enchanters",
+  FURC_AV_ALC = "alchemists",
+  FURC_AV_OUT = "Outlaw Refuge, Merchant",
+  FURC_AV_COO = "cooks",
+  FURC_AV_CLO = "clothiers",
+  FURC_AV_CAR = "carpenters",
+  FURC_AV_BSM = "blacksmiths",
+  FURC_AV_ARTAEUM = "Artaeum",
+  FURC_AV_CAPITAL = "any capital city",

-	-- Furniture Shopping List
-	SI_FURC_ONE_TO_SHOPPINGLIST = 				"Add 1 to shopping list",
-	SI_FURC_FIVE_TO_SHOPPINGLIST = 				"Add 5 to shopping list",
-	SI_FURC_TOGGLE_SHOPPINGLIST = 				" Toggle shopping list",
+  -- Furniture Shopping List
+  SI_FURC_ONE_TO_SHOPPINGLIST =         "Add 1 to shopping list",
+  SI_FURC_FIVE_TO_SHOPPINGLIST =        "Add 5 to shopping list",
+  SI_FURC_TOGGLE_SHOPPINGLIST =         " Toggle shopping list",

-	-- GUI and debug
-	SI_FURC_MENU_HEADER = 						"- |cD3B830Furniture|r:",
-	SI_FURC_REMOVE_FAVE = 						" Remove Favorite",
-	SI_FURC_ADD_FAVE = 							" Add Favorite",
-	SI_FURC_POST_ITEMSOURCE = 					" Post item source",
-	SI_FURC_POST_RECIPE = 						" Post recipe",
-	SI_FURC_POST_ITEM = 						" Post item",
-	SI_FURC_POST_MATERIAL = 					" Post material",
-	SI_FURC_DIALOGUE_RESET_DB_HEADER = 			"Really re-create furniture database?",
-	SI_FURC_DIALOGUE_RESET_DB_BODY = 			"This will re-create the FurnitureCatalogue database from scratch",
-	SI_FURC_TEXTBOX_FILTER_DEFAULT = 			"Filter by text search",
-	SI_FURC_DEBUG_CHARSCANCOMPLETE = 			"|c2266ffFurniture Catalogue|r|cffffff: Character scan complete...|r",
-	SI_FURC_VERBOSE_STARTUP = 					"|c2266ffFurniture Catalogue|r|cffffff: |cffffffIf you miss any recipes, please trigger a scan on your furniture crafter by clicking the refresh button in the UI.|r",
-	SI_FURC_VERBOSE_DB_UPTODATE = 				"|c2266ffFurniture Catalogue|r|cffffff: The database is up-to-date.|r",
-	SI_FURC_VERBOSE_SCANNING_DATA_FILE =		"|c2266ffFurniture Catalogue|r|cffffff: Scanning data files...|r",
-	SI_FURC_VERBOSE_SCANNING_CHARS =			"Not scanning files, scanning character knowledge now...",
-	SI_FURC_ITEMSOURCE_EMPTY =					"Item source unknown.\nTry to re-scan files (refresh button right click).\nIf still unknown after, please send a mail with the item link and -source to @manavortex",
-	SI_FURC_RUMOUR_SOURCE_RECIPE =				"This recipe has been datamined, but not seen in-game",
-	SI_FURC_RUMOUR_SOURCE_ITEM =				"This item has been datamined, but not seen in-game",
-	SI_FURC_STRING_CRAFTABLE_BY =				"Can be crafted by ",
-	SI_FURC_STRING_CANNOT_CRAFT =				"You cannot craft this yet",
-	SI_FURC_STRING_VENDOR = 					"sold by <<1>> in <<2>> (<<3>><<4>>)",
-	SI_FURC_STRING_AP =							" AP",
-	SI_FURC_STRING_ASSHOLE = 					"Zanil Theran",
-	SI_FURC_STRING_HC = 						"Hollow City",
-	SI_FURC_STRING_WASSOLDBY = 					"Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
-	SI_FURC_STRING_WEEKEND_AROUND = 			"(around <<1>>)",
-	SI_FURC_REQUIRES_QUEST                      = ", requires quest ",
-	SI_FURC_REQUIRES_ACHIEVEMENT                = ", requires ",
-	SI_FURC_PSIJIC_RANK                         = "Psijic Order Rank ",
-	SI_FURC_STRING_WRIT_VENDOR =				"Master Writ Vendor",
-	SI_FURC_STRING_WRIT_VENDOR_TT =				"Obtainable for Master Writs in your alliance's capital",
-	SI_FURC_STRING_Rolis = 					    "Sold by |cd68957Rolis Hlaalu|r <<1>>",
-	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r <<1>>",
-	SI_FURC_STRING_FOR_VOUCHERS =				"for <<1>> vouchers",
-	SI_FURC_FESTIVAL_DROP = 					"can be acquired during <<1>> (<<2>>)",
-	SI_FURC_STRING_RECIPELEARNED = 				"Recipe learned: <<1>> <<2>> <<3>>",
-	SI_FURC_STRING_RECIPESFORCHAR = 			"recipes for <<1>>",
-	SI_FURC_STRING_VOUCHER_VENDOR =				"Sold by either Rolis Hlaalu or Faustina Curio",
-    SI_FURC_QUESTREWARD =                       "Reward for a quest in ",
-    SI_FURC_GEYSIR =                            "Drops from geysir reward clams on Summerset",
-    SI_FURC_GIANT_CLAM =                        "Drops from giant clams and geysir reward clams on Summerset",
-	-- =============================== --
-	-- ============ MENU ============= --
-	-- =============================== --
+  -- GUI and debug
+  SI_FURC_MENU_HEADER =                 "- |cD3B830Furniture|r:",
+  SI_FURC_REMOVE_FAVE =                 " Remove Favorite",
+  SI_FURC_ADD_FAVE =                     " Add Favorite",
+  SI_FURC_POST_ITEMSOURCE =             " Post item source",
+  SI_FURC_POST_RECIPE =                 " Post recipe",
+  SI_FURC_POST_ITEM =                   " Post item",
+  SI_FURC_POST_MATERIAL =               " Post material",
+  SI_FURC_DIALOGUE_RESET_DB_HEADER =    "Really re-create furniture database?",
+  SI_FURC_DIALOGUE_RESET_DB_BODY =      "This will re-create the FurnitureCatalogue database from scratch",
+  SI_FURC_TEXTBOX_FILTER_DEFAULT =      "Filter by text search",
+  SI_FURC_DEBUG_CHARSCANCOMPLETE =      "|c2266ffFurniture Catalogue|r|cffffff: Character scan complete...|r",
+  SI_FURC_VERBOSE_STARTUP =             "|c2266ffFurniture Catalogue|r|cffffff: |cffffffIf you miss any recipes, please trigger a scan on your furniture crafter by clicking the refresh button in the UI.|r",
+  SI_FURC_VERBOSE_DB_UPTODATE =         "|c2266ffFurniture Catalogue|r|cffffff: The database is up-to-date.|r",
+  SI_FURC_VERBOSE_SCANNING_DATA_FILE =  "|c2266ffFurniture Catalogue|r|cffffff: Scanning data files...|r",
+  SI_FURC_VERBOSE_SCANNING_CHARS =      "Not scanning files, scanning character knowledge now...",
+  SI_FURC_ITEMSOURCE_EMPTY =            "Item source unknown.\nTry to re-scan files (refresh button right click).\nIf still unknown after, please send a mail with the item link and -source to @manavortex",
+  SI_FURC_RUMOUR_SOURCE_RECIPE =        "This recipe has been datamined, but not seen in-game",
+  SI_FURC_RUMOUR_SOURCE_ITEM =          "This item has been datamined, but not seen in-game",
+  SI_FURC_STRING_CRAFTABLE_BY =         "Can be crafted by ",
+  SI_FURC_STRING_CANNOT_CRAFT =         "You cannot craft this yet",
+  SI_FURC_STRING_VENDOR =               "sold by <<1>> in <<2>> (<<3>><<4>>)",
+  SI_FURC_STRING_AP =                   " AP",
+  SI_FURC_STRING_ASSHOLE =              "Zanil Theran",
+  SI_FURC_STRING_HC =                   "Hollow City",
+  SI_FURC_STRING_WASSOLDBY =            "Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
+  SI_FURC_STRING_WEEKEND_AROUND =       "(around <<1>>)",
+  SI_FURC_REQUIRES_QUEST =              ", requires quest ",
+  SI_FURC_REQUIRES_ACHIEVEMENT =        ", requires ",
+  SI_FURC_PSIJIC_RANK =                 "Psijic Order Rank ",
+  SI_FURC_STRING_WRIT_VENDOR =          "Master Writ Vendor",
+  SI_FURC_STRING_WRIT_VENDOR_TT =       "Obtainable for Master Writs in your alliance's capital",
+  SI_FURC_STRING_Rolis =                "Sold by |cd68957Rolis Hlaalu|r <<1>>",
+  SI_FURC_STRING_FAUSTINA =             "Sold by |cd68957Faustina Curio|r <<1>>",
+  SI_FURC_STRING_FOR_VOUCHERS =         "for <<1>> vouchers",
+  SI_FURC_FESTIVAL_DROP =               "can be acquired during <<1>> (<<2>>)",
+  SI_FURC_WW_DUNGEON_DROP =             "Drops in Monster Hunter Keep/March of the Sacrifices",
+  SI_FURC_STRING_RECIPELEARNED =        "Recipe learned: <<1>> <<2>> <<3>>",
+  SI_FURC_STRING_RECIPESFORCHAR =       "recipes for <<1>>",
+  SI_FURC_STRING_VOUCHER_VENDOR =       "Sold by either Rolis Hlaalu or Faustina Curio",
+  SI_FURC_QUESTREWARD =                 "Reward for a quest in ",
+  SI_FURC_GEYSIR =                      "Drops from geysir reward clams on Summerset",
+  SI_FURC_GIANT_CLAM =                  "Drops from giant clams and geysir reward clams on Summerset",
+  SI_FURC_ELF_PIC =                     "Drops extremely rarely from treasure chests on Summerset",
+  -- =============================== --
+  -- ============ MENU ============= --
+  -- =============================== --

-	SI_FURC_STRING_MENU_DEBUG = 				"Enable debug output",
-	SI_FURC_STRING_MENU_RESET_DB_NAME = 		"|cFF0000Reset database|r",
-	SI_FURC_STRING_MENU_RESET_DB_TT = 			"This will reset the furniture database.",
-	SI_FURC_STRING_MENU_RESET_DB_WARNING =		"All your data will be reset. Only recipe knowledge for this character will be considered.",
-	SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME =  	"Re-scan Rumour recipes",
-	SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT = 		"Will update the rumour recipes against the updated list",
-	SI_FURC_STRING_MENU_SCAN_FILES_NAME =		"Scan files",
-	SI_FURC_STRING_MENU_SCAN_FILES_TT = 		"Will run a full scan of the data in Furniture Catalogue's files",
-	SI_FURC_STRING_MENU_SCAN_CHAR_NAME = 		"Scan character",
-	SI_FURC_STRING_MENU_SCAN_CHAR_TT = 			"Will run a full scan of your known furniture recipes and update the database accordingly",
-	SI_FURC_STRING_MENU_DELETE_CHAR_NAME =		"delete character",
-	SI_FURC_STRING_MENU_DELETE_CHAR_TT =		"Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
-	SI_FURC_STRING_MENU_DELETE_CHAR_WARNING =	"Character knowledge will be wiped immediately",
-	SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST =	"Enable integration?",
-	SI_FURC_STRING_MENU_SKIP_INITIALSCAN =		"Skip Initial Scan?",
-	SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT =	"Check this to not scan your character's recipes on login. \nThanks to votan's awesome LibAsync the lag is gone now in any case..",
-	SI_FURC_STRING_MENU_HEADER_ICONS =			"Inventory and bank icons",
-	SI_FURC_STRING_MENU_ADD_ITEMS_NAME = 		"Add items to known/unknown recipes?",
-	SI_FURC_STRING_MENU_ADD_ITEMS_TT = 			"You shouldn't notice any lag",
-	SI_FURC_STRING_MENU_IT_UNKNOWN_NAME = 		"Only mark unknown recipes?",
-	SI_FURC_STRING_MENU_IT_THIS_ONLY = 			"Only for this character?",
-	SI_FURC_STRING_MENU_IT_THIS_ONLY_TT = 		"Will be accountwide otherwise.",
-	SI_FURC_STRING_MENU_USETINY = 	 			"Use tiny interface?",
-	SI_FURC_STRING_MENU_USETINY_TT = 	 		"Use a smaller interface (Craft Store like). \nYou can toggle this from the UI by clicking the +/- button.",
+  SI_FURC_STRING_MENU_DEBUG =               "Enable debug output",
+  SI_FURC_STRING_MENU_RESET_DB_NAME =       "|cFF0000Reset database|r",
+  SI_FURC_STRING_MENU_RESET_DB_TT =         "This will reset the furniture database.",
+  SI_FURC_STRING_MENU_RESET_DB_WARNING =    "All your data will be reset. Only recipe knowledge for this character will be considered.",
+  SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME =  "Re-scan Rumour recipes",
+  SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT =    "Will update the rumour recipes against the updated list",
+  SI_FURC_STRING_MENU_SCAN_FILES_NAME =     "Scan files",
+  SI_FURC_STRING_MENU_SCAN_FILES_TT =       "Will run a full scan of the data in Furniture Catalogue's files",
+  SI_FURC_STRING_MENU_SCAN_CHAR_NAME =      "Scan character",
+  SI_FURC_STRING_MENU_SCAN_CHAR_TT =        "Will run a full scan of your known furniture recipes and update the database accordingly",
+  SI_FURC_STRING_MENU_DELETE_CHAR_NAME =    "delete character",
+  SI_FURC_STRING_MENU_DELETE_CHAR_TT =      "Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
+  SI_FURC_STRING_MENU_DELETE_CHAR_WARNING = "Character knowledge will be wiped immediately",
+  SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST = "Enable integration?",
+  SI_FURC_STRING_MENU_SKIP_INITIALSCAN =    "Skip Initial Scan?",
+  SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT = "Check this to not scan your character's recipes on login. \nThanks to votan's awesome LibAsync the lag is gone now in any case..",
+  SI_FURC_STRING_MENU_HEADER_ICONS =        "Inventory and bank icons",
+  SI_FURC_STRING_MENU_ADD_ITEMS_NAME =      "Add items to known/unknown recipes?",
+  SI_FURC_STRING_MENU_ADD_ITEMS_TT =        "You shouldn't notice any lag",
+  SI_FURC_STRING_MENU_IT_UNKNOWN_NAME =     "Only mark unknown recipes?",
+  SI_FURC_STRING_MENU_IT_THIS_ONLY =        "Only for this character?",
+  SI_FURC_STRING_MENU_IT_THIS_ONLY_TT =     "Will be accountwide otherwise.",
+  SI_FURC_STRING_MENU_USETINY =             "Use tiny interface?",
+  SI_FURC_STRING_MENU_USETINY_TT =          "Use a smaller interface (Craft Store like). \nYou can toggle this from the UI by clicking the +/- button.",

-	SI_FURC_STRING_MENU_STARTSILENT = 	 		"Start silently?",
-	SI_FURC_STRING_MENU_STARTSILENT_TT = 	 	"Suppress startup message",
-	SI_FURC_STRING_MENU_SHOWICONONLEFT = 		"Show Known/Unknown icon on left?",
-	SI_FURC_STRING_MENU_SHOWICONONLEFT_TT =		"Show Green Check/Red X icon on left or right of the inventory item (requires reloadui)",
-	SI_FURC_STRING_MENU_FONTSIZE = 	 			"Font size",
-	SI_FURC_STRING_MENU_FONTSIZE_TT = 	 		"adjust font size for FurnitureCatalogue here",
-	SI_FURC_STRING_MENU_DEFAULT_DD = 	 		"Default dropdown values",
-	SI_FURC_STRING_MENU_DEFAULT_DD_USE = 	 	"Will be set on initial launch",
-	SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT = 	"These will not reset if you open and close the UI",
-	SI_FURC_STRING_MENU_DEFAULT_DD_RESET = 		"Reset filters when closing UI?",
-	SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT = 	"If you check this, opening and closing will cause the filters to reset to whatever you set below.",
-	SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE = 	"default source filter",
-	SI_FURC_STRING_MENU_DEFAULT_DD_CHAR = 		"default character filter",
-	SI_FURC_STRING_MENU_DEFAULT_DD_VERSION = 	"default version filter",
-	SI_FURC_STRING_MENU_FILTERING = 			"Catalogue filtering",
-	SI_FURC_STRING_MENU_FILTER_BOOKS = 			"Mages guild books",
-	SI_FURC_STRING_MENU_FILTER_BOOKS_N = 		"Hide books?",
-	SI_FURC_STRING_MENU_FILTER_BOOKS_TT = 		"A real book lover knows where everything is by heart. Hide books from Furniture Catalogue?",
-	SI_FURC_STRING_MENU_LUXURY = 				"Luxury Furnishings",
-	SI_FURC_STRING_MENU_LUXURY_N = 				"Treat luxury items as purchaseables?",
-	SI_FURC_STRING_MENU_LUXURY_TT = 			"This will show everything that was sold by Zanil Theran under 'purchaseable' and deactvates the custom filter",
-	SI_FURC_STRING_MENU_LUXURY_WARN = 			"Hiding the dropdown entry requires UI reload (won't happen automatically for your convenience)",
-	SI_FURC_STRING_MENU_RUMOUR = 				"Rumour recipes",
-	SI_FURC_STRING_MENU_RUMOUR_DESC = 		 	"The furniture database contains a list of recipes that I have datamined.\nHowever, not all of those have been seen in-game.\nEnable this option to exclude them from the default filters.\nYou can still view them with their own filter, which you can disable below.",
-
-	SI_FURC_STRING_MENU_RUMOUR_N = 				"Hide rumour recipes?",
-	SI_FURC_STRING_MENU_CROWN = 				"Crown store items",
-	SI_FURC_STRING_MENU_CROWN_N = 				"Hide crown store items?",
-	SI_FURC_STRING_MENU_CROWN_DESC = 			"The furniture database will update whenever the tooltip shows a furniture item. \nSome items can only be acquired via crown store. \nCheck this box to exclude them from the default filters (disable crown store filter below).",
+  SI_FURC_STRING_MENU_STARTSILENT =         "Start silently?",
+  SI_FURC_STRING_MENU_STARTSILENT_TT =      "Suppress startup message",
+  SI_FURC_STRING_MENU_SHOWICONONLEFT =      "Show Known/Unknown icon on left?",
+  SI_FURC_STRING_MENU_SHOWICONONLEFT_TT =   "Show Green Check/Red X icon on left or right of the inventory item (requires reloadui)",
+  SI_FURC_STRING_MENU_FONTSIZE =            "Font size",
+  SI_FURC_STRING_MENU_FONTSIZE_TT =         "adjust font size for FurnitureCatalogue here",
+  SI_FURC_STRING_MENU_DEFAULT_DD =          "Default dropdown values",
+  SI_FURC_STRING_MENU_DEFAULT_DD_USE =      "Will be set on initial launch",
+  SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT =   "These will not reset if you open and close the UI",
+  SI_FURC_STRING_MENU_DEFAULT_DD_RESET =    "Reset filters when closing UI?",
+  SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT = "If you check this, opening and closing will cause the filters to reset to whatever you set below.",
+  SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE =   "default source filter",
+  SI_FURC_STRING_MENU_DEFAULT_DD_CHAR =     "default character filter",
+  SI_FURC_STRING_MENU_DEFAULT_DD_VERSION =  "default version filter",
+  SI_FURC_STRING_MENU_FILTERING =           "Catalogue filtering",
+  SI_FURC_STRING_MENU_FILTER_BOOKS =        "Mages guild books",
+  SI_FURC_STRING_MENU_FILTER_BOOKS_N =      "Hide books?",
+  SI_FURC_STRING_MENU_FILTER_BOOKS_TT =     "A real book lover knows where everything is by heart. Hide books from Furniture Catalogue?",
+  SI_FURC_STRING_MENU_LUXURY =              "Luxury Furnishings",
+  SI_FURC_STRING_MENU_LUXURY_N =            "Treat luxury items as purchaseables?",
+  SI_FURC_STRING_MENU_LUXURY_TT =           "This will show everything that was sold by Zanil Theran under 'purchaseable' and deactvates the custom filter",
+  SI_FURC_STRING_MENU_LUXURY_WARN =         "Hiding the dropdown entry requires UI reload (won't happen automatically for your convenience)",
+  SI_FURC_STRING_MENU_RUMOUR =              "Rumour recipes",
+  SI_FURC_STRING_MENU_RUMOUR_DESC =         "The furniture database contains a list of recipes that I have datamined.\nHowever, not all of those have been seen in-game.\nEnable this option to exclude them from the default filters.\nYou can still view them with their own filter, which you can disable below.",
+  SI_FURC_STRING_CONTEXTMENU_DIVIDER =      "Don't use divider in context menu?",
+  SI_FURC_STRING_CONTEXTMENU_DIVIDER_TT =   "Adds a divider to the context manu above the - Furniture entry. Check to disable",
+
+
+  SI_FURC_STRING_MENU_RUMOUR_N =            "Hide rumour recipes?",
+  SI_FURC_STRING_MENU_CROWN =               "Crown store items",
+  SI_FURC_STRING_MENU_CROWN_N =             "Hide crown store items?",
+  SI_FURC_STRING_MENU_CROWN_DESC =          "The furniture database will update whenever the tooltip shows a furniture item. \nSome items can only be acquired via crown store. \nCheck this box to exclude them from the default filters (disable crown store filter below).",

     -- Filter text search
-    SI_FURC_STRING_MENU_HEADER_F_ALL_ON_TEXT =  "Filter settings for text search",
-    SI_FURC_STRING_MENU_F_ALL_ON_TEXT =         "Configure this filter",
-    SI_FURC_STRING_MENU_HEADER_F_ALL_DESC =     "Configure filter settings for text search with disabled dropdowns. \nThese settings will only take effect when you have not set a source, character or version filter.",
+  SI_FURC_STRING_MENU_HEADER_F_ALL_ON_TEXT =  "Filter settings for text search",
+  SI_FURC_STRING_MENU_F_ALL_ON_TEXT =         "Configure this filter",
+  SI_FURC_STRING_MENU_HEADER_F_ALL_DESC =     "Configure filter settings for text search with disabled dropdowns. \nThese settings will only take effect when you have not set a source, character or version filter.",

-    SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT =    "Search filtered items when doing a text search with no dropdown filters set?",
-    SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT_TT = "When doing a text search without any dropdown ",
-    SI_FURC_STRING_MENU_FALL_HIDE_BOOKS =       "Hide books anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_BOOKS_TT =    "Even when filtering all items, still hide books?",
-    SI_FURC_STRING_MENU_FALL_HIDE_CROWN =       "Hide crown store items anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_CROWN_TT =    "Even when filtering all items, still hide crown store items?",
-    SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR =      "Hide rumour items anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR_TT =   "Even when filtering all items, still hide rumour items?",
+  SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT =    "Search filtered items when doing a text search with no dropdown filters set?",
+  SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT_TT = "When doing a text search without any dropdown ",
+  SI_FURC_STRING_MENU_FALL_HIDE_BOOKS =       "Hide books anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_BOOKS_TT =    "Even when filtering all items, still hide books?",
+  SI_FURC_STRING_MENU_FALL_HIDE_CROWN =       "Hide crown store items anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_CROWN_TT =    "Even when filtering all items, still hide crown store items?",
+  SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR =      "Hide rumour items anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR_TT =   "Even when filtering all items, still hide rumour items?",

     -- Hide menu entries
-	SI_FURC_STRING_MENU_HIDE_MENU = 				"Hide menu entries?",
-	SI_FURC_STRING_MENU_HIDE_MENU_TT = 				"Hides \"Crown store\" and \"Rumour recipes\" from the dropdown \nactivated for crown store by default, as there aren't any items yet",
-	SI_FURC_STRING_MENU_HIDE_MENU_RUMOUR = 			"Hide \"Rumour recipes\" drop down entry?",
-	SI_FURC_STRING_MENU_HIDE_MENU_CROWN = 			"Hide \"Crown Store\" drop down entry?",
-	SI_FURC_STRING_MENU_HIDE_MENU_TT =				"Requires UI reload (won't happen automatically for your convenience)",
-	SI_FURC_STRING_MENU_TOOLTIP =					"Enable tooltips?",
-	SI_FURC_STRING_MENU_TOOLTIP_COLOR =	 			"Colorize tooltips for clarity?",
-	SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT = 			"Will colour 'can' and 'cannot'",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN =  		"Hide if item is known",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT = 	"Hides 'can be crafted by...' from tooltip",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN =  	"Hide if item is unknown",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT =	"Hides 'you cannot craft this yet'",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE =  		"Hide item source?",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION =  	"Hide crafting station?",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL =  	"Hide material?",
+  SI_FURC_STRING_MENU_HIDE_MENU =               "Hide menu entries?",
+  SI_FURC_STRING_MENU_HIDE_MENU_TT =            "Hides \"Crown store\" and \"Rumour recipes\" from the dropdown \nactivated for crown store by default, as there aren't any items yet",
+  SI_FURC_STRING_MENU_HIDE_MENU_RUMOUR =        "Hide \"Rumour recipes\" drop down entry?",
+  SI_FURC_STRING_MENU_HIDE_MENU_CROWN =         "Hide \"Crown Store\" drop down entry?",
+  SI_FURC_STRING_MENU_HIDE_MENU_TT =            "Requires UI reload (won't happen automatically for your convenience)",
+  SI_FURC_STRING_MENU_TOOLTIP =                 "Enable tooltips?",
+  SI_FURC_STRING_MENU_TOOLTIP_COLOR =           "Colorize tooltips for clarity?",
+  SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT =        "Will colour 'can' and 'cannot'",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN =      "Hide if item is known",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT =   "Hides 'can be crafted by...' from tooltip",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN =    "Hide if item is unknown",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT = "Hides 'you cannot craft this yet'",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE =     "Hide item source?",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION =    "Hide crafting station?",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL =   "Hide material?",

-	-- =============================== --
-	-- ==== GUI: Dropdown entries ==== --
-	-- =============================== --
+  -- =============================== --
+  -- ==== GUI: Dropdown entries ==== --
+  -- =============================== --

-	SI_FURC_NONE 									= "Source filter: off",
-	SI_FURC_FAVE 									= "Favorites",
-	SI_FURC_CRAFTING								= "Craftable: All",
-	SI_FURC_CRAFTING_KNOWN							= "Craftable: Known",
-	SI_FURC_CRAFTING_UNKNOWN						= "Craftable: Unknown",
-	SI_FURC_VENDOR									= "Purchaseable (gold)",
-	SI_FURC_PVP										= "Purchaseable (AP)",
-	SI_FURC_CROWN									= "Crown Store",
-	SI_FURC_RUMOUR									= "Rumour items",
-	SI_FURC_LUXURY									= "Luxury items",
-	SI_FURC_RUMOUR									= "Rumour items",
-	SI_FURC_OTHER									= "Other",
+  SI_FURC_NONE =                "Source filter: off",
+  SI_FURC_FAVE =                "Favorites",
+  SI_FURC_CRAFTING =            "Craftable: All",
+  SI_FURC_CRAFTING_KNOWN =      "Craftable: Known",
+  SI_FURC_CRAFTING_UNKNOWN =    "Craftable: Unknown",
+  SI_FURC_VENDOR =              "Purchaseable (gold)",
+  SI_FURC_PVP =                 "Purchaseable (AP)",
+  SI_FURC_CROWN =               "Crown Store",
+  SI_FURC_RUMOUR =              "Rumour items",
+  SI_FURC_LUXURY =              "Luxury items",
+  SI_FURC_RUMOUR =              "Rumour items",
+  SI_FURC_OTHER =               "Other",

-	SI_FURC_FILTER_VERSION_OFF						= "Version filter: off",
-	SI_FURC_FILTER_VERSION_HS						= "Homestead",
-	SI_FURC_FILTER_VERSION_M						= "Morrowind",
-	SI_FURC_FILTER_VERSION_R						= "Horns of the Reach",
-	SI_FURC_FILTER_VERSION_CC						= "Clockwork City",
-	SI_FURC_FILTER_VERSION_DRAGON					= "Dragon Bones",
-	SI_FURC_FILTER_VERSION_ALTMER					= "Summerset",
-	SI_FURC_FILTER_VERSION_ALTMER_TT                = "",
+  SI_FURC_FILTER_VERSION_OFF =      "Version filter: off",
+  SI_FURC_FILTER_VERSION_HS =       "Homestead",
+  SI_FURC_FILTER_VERSION_M =        "Morrowind",
+  SI_FURC_FILTER_VERSION_R =        "Horns of the Reach",
+  SI_FURC_FILTER_VERSION_CC =       "Clockwork City",
+  SI_FURC_FILTER_VERSION_DRAGON =   "Dragon Bones",
+  SI_FURC_FILTER_VERSION_ALTMER =   "Summerset",
+  SI_FURC_FILTER_VERSION_WEREWOLF = "Wolfhunter",
+  SI_FURC_FILTER_VERSION_SLAVES =   "Murkmire",
+

-	-- =============================== --
-	-- = GUI: Dropdown entry tooltip = --
-	-- =============================== --
+  -- =============================== --
+  -- = GUI: Dropdown entry tooltip = --
+  -- =============================== --

-	SI_FURC_NONE_TT 								= "disables this filter",
-	SI_FURC_FAVE_TT 								= "Shows your favorites",
-	SI_FURC_CRAFTING_TT								= "Shows all craftable items",
-	SI_FURC_CRAFTING_KNOWN_TT						= "Shows only known craftable items",
-	SI_FURC_CRAFTING_UNKNOWN_TT						= "Shows only unknown craftable items",
-	SI_FURC_VENDOR_TT								= "Shows only items that cannot be crafted",
-	SI_FURC_PVP_TT									= "Items that are sold for alliance points",
-	SI_FURC_CROWN_TT								= "Shows items that can only be acquired from crown store",
-	SI_FURC_RUMOUR_TT								= "Items and recipes that have been datamined, but haven't been confirmed existing",
-	SI_FURC_LUXURY_TT								= "Items that at some point were sold by Zanil Theran, Cicero's General Goods, Coldharbour",
-	SI_FURC_OTHER_TT								= "Shows items that can be farmed/stolen/found",
-
-	SI_FURC_FILTER_VERSION_OFF_TT					= filterDisabled,
-	SI_FURC_FILTER_VERSION_HS_TT					= "Items released in Homestead update",
-	SI_FURC_FILTER_VERSION_M_TT						= "YOU N\'WAH!",
-	SI_FURC_FILTER_VERSION_R_TT						= "Because all we needed were more Reachmen",
-	SI_FURC_FILTER_VERSION_CC_TT					= "Where the flywheels churn and the brass is pretty",
-	SI_FURC_FILTER_VERSION_DRAGON_TT				= "If you got this from Narsis Dren, well...",
-
-
-	SI_FURC_FILTER_CHAR_OFF							= "Character filter: off",
-	SI_FURC_FILTER_CHAR_OFF_TT						= filterDisabled,
-
-	-- =============================== --
-	-- ========= GUI: Heading ======== --
-	-- =============================== --
-
-	SI_FURC_LABEL_ENTRIES							= " entries -",
+  SI_FURC_NONE_TT =             "disables this filter",
+  SI_FURC_FAVE_TT =             "Shows your favorites",
+  SI_FURC_CRAFTING_TT =         "Shows all craftable items",
+  SI_FURC_CRAFTING_KNOWN_TT =   "Shows only known craftable items",
+  SI_FURC_CRAFTING_UNKNOWN_TT = "Shows only unknown craftable items",
+  SI_FURC_VENDOR_TT =           "Shows only items that cannot be crafted",
+  SI_FURC_PVP_TT =              "Items that are sold for alliance points",
+  SI_FURC_CROWN_TT =            "Shows items that can only be acquired from crown store",
+  SI_FURC_RUMOUR_TT =           "Items and recipes that have been datamined, but haven't been confirmed existing",
+  SI_FURC_LUXURY_TT =           "Items that at some point were sold by Zanil Theran, Cicero's General Goods, Coldharbour",
+  SI_FURC_OTHER_TT =            "Shows items that can be farmed/stolen/found",
+
+  SI_FURC_FILTER_VERSION_OFF_TT =       filterDisabled,
+  SI_FURC_FILTER_VERSION_HS_TT =        "Items released in Homestead update",
+  SI_FURC_FILTER_VERSION_M_TT =         "YOU N\'WAH!",
+  SI_FURC_FILTER_VERSION_R_TT =         "Because all we needed were more Reachmen",
+  SI_FURC_FILTER_VERSION_CC_TT =        "Where the flywheels churn and the brass is pretty",
+  SI_FURC_FILTER_VERSION_DRAGON_TT =    "If you got this from Narsis Dren, well...",
+  SI_FURC_FILTER_VERSION_ALTMER_TT =    "Still think the Dunmer are bad?",
+  SI_FURC_FILTER_VERSION_WEREWOLF_TT =  "In Soviet Hunting Ground, werewolf hunt you",
+  SI_FURC_FILTER_VERSION_SLAVES_TT =    "ToDo: Think of horrible pun about Argonians",
+
+  SI_FURC_FILTER_CHAR_OFF =     "Character filter: off",
+  SI_FURC_FILTER_CHAR_OFF_TT =  filterDisabled,
+
+  -- =============================== --
+  -- ========= GUI: Heading ======== --
+  -- =============================== --
+
+  SI_FURC_LABEL_ENTRIES =       " entries -",

     -- =============================== --
-	-- ========= Item Sources ======== --
-	-- =============================== --
-	SI_FURC_CANBEPICKED 					        = "can be pickpocketed",
-	SI_FURC_CANBESTOLEN 					        = "can be stolen",
-    SI_FURC_CROWNSTORESOURCE				        = "Crown Store ",
-    SI_FURC_CANBEFISHED				                = "can be fished",
-    SI_FURC_HARVEST				                    = "from harvesting nodes",
-    SI_FURC_WW				                        = "occasionally found in wood nodes",
-    SI_FURC_PLANTS						            = "from harvesting plants",
-    SI_FURC_SCAMBOX						            = "Crown Crates",
-    SI_FURC_HOUSE						            = "From a furnished purchase of <<1>>",
-    SI_FURC_AUTOMATON						        = "from automatons",
-    SI_FURC_TOMBS 						            = "Ancestor tombs and ruins on Vvardenfell",
-    SI_FURC_DAEDRA_SOURCE 						    = "from Daedra and Dolmen chests",
-    SI_FURC_DB					                    = "The Dark Brotherhood supplies vendor hands these out ",
-    SI_FURC_DB_POISON					            = "with poison",
-    SI_FURC_DB_STEALTH					            = "as a way to be less obtrusive",
-    SI_FURC_DAILY_ASHLANDERS			            = "Ashlander daily quest rewards",
-    SI_FURC_PLUNDERSKULL			                = "Drops from Plunder Skulls during Witches' Festival",
-    SI_FURC_DROP_CHEST_VVARDENFELL	                = "Extremely rarely from chests on Vvardenfell",
-    SI_FURC_DROP                                    = "This item is a drop ",
-    SI_FURC_DROP_ALTMER                             = "This item is a drop on Summerset",
-    SI_FURC_FLAME_ATRONACH	                        = "Flame Atronach",
-	SI_FURC_CHESTS                                  = "from treasure chests",
-	SI_FURC_VVARDENFELL_PAINTING                    = "extremely rarely from safeboxes",
-	SI_FURC_DRAGON_DUNGEON_DROP                     = "Fang Lair/Scalecaller Peak",
-	SI_FURC_ITEMSOURCE_UNKNOWN_YET                  = "This item has been found in the sources/recipes for Summerset! \nIts origin isn't known yet.",
-	SI_FURC_EXISITING_ITEMSOURCE_UNKNOWN_YET        = "This item has been confirmed existing, but its origin isn't known yet.",
-	SI_FURC_ITEMSOURCE_ITEMPACK                     = "This item is part of the Crown Store item pack ",
-
-	SI_FURC_SEEN_IN_GUILDSTORE                      = "Seen in Guild Store",
+  -- ========= Item Sources ======== --
+  -- =============================== --
+  SI_FURC_CANBEPICKED =           "can be pickpocketed",
+  SI_FURC_CANBESTOLEN =           "can be stolen",
+  SI_FURC_CROWNSTORESOURCE =      "Crown Store ",
+  SI_FURC_CANBEFISHED =           "can be fished",
+  SI_FURC_HARVEST =               "from harvesting nodes",
+  SI_FURC_WW =                    "occasionally found in wood nodes",
+  SI_FURC_PLANTS =                "from harvesting plants",
+  SI_FURC_SCAMBOX =               "Crown Crates",
+  SI_FURC_HOUSE =                 "From a furnished purchase of <<1>>",
+  SI_FURC_AUTOMATON =             "from automatons",
+  SI_FURC_TOMBS =                 "Ancestor tombs and ruins on Vvardenfell",
+  SI_FURC_DAEDRA_SOURCE =         "from Daedra and Dolmen chests",
+  SI_FURC_DB =                    "The Dark Brotherhood supplies vendor hands these out ",
+  SI_FURC_DB_POISON =             "with poison",
+  SI_FURC_DB_STEALTH =            "as a way to be less obtrusive",
+  SI_FURC_DAILY_ASH =             "Ashlander daily quest rewards",
+  SI_FURC_PLUNDERSKULL =          "Drops from Plunder Skulls during Witches' Festival",
+  SI_FURC_VV_PAINTING =           "Extremely rarely from chests or lockboxes on Vvardenfell",
+  SI_FURC_DROP =                  "This item is a drop ",
+  SI_FURC_DROP_ALTMER =           "This item is a drop on Summerset",
+  SI_FURC_FLAME_ATRONACH =        "Flame Atronach",
+  SI_FURC_DWEMER =                "Dwemer",
+  SI_FURC_CHESTS =                "from treasure chests",
+  SI_FURC_VVARDENFELL_PAINTING =  "extremely rarely from safeboxes",
+  SI_FURC_CHEST_VV =              "Extremely rarely from chests on Vvardenfell",
+  SI_FURC_DRAGON_DUNGEON_DROP =   "Fang Lair/Scalecaller Peak",
+  SI_FURC_DATAMINED_UNCLEAR =     "This item has been found in the sources/recipes for Summerset! \nIts origin isn't known yet.",
+  SI_FURC_DATAMINED_UNCLEAR =     "This item has been confirmed existing, but its origin isn't known yet.",
+  SI_FURC_ITEMSOURCE_ITEMPACK =   "This item is part of the Crown Store item pack ",
+
+  SI_FURC_SEEN_IN_GUILDSTORE =    "Seen in Guild Store",
 }

+
 for stringId, stringValue in pairs(strings) do
-	ZO_CreateStringId(stringId, stringValue)
-	SafeAddVersion(stringId, 2)
+  ZO_CreateStringId(stringId, stringValue)
+  SafeAddVersion(stringId, 1)
 end
\ No newline at end of file
diff --git a/locale/ru.lua b/locale/ru.lua
index d8dd22f..65a17cd 100644
--- a/locale/ru.lua
+++ b/locale/ru.lua
@@ -1,264 +1,278 @@
 local filterDisabled = "disables this filter"
 local strings = {

-	FURC_AV_RAZ									= "Razoufa",
-	FURC_AV_MUL									= "Mulvise Valyn",
+  FURC_AV_RAZ = "Razoufa",
+  FURC_AV_MUL = "Mulvise Valyn",

-	FURC_AV_NAR									= "Narwaawende",
-	FURC_AV_ALI									= "Alinor, Riverside Market",
-	FURC_AV_UNW									= "Unwotil",
-	FURC_AV_CUR									= "Curininwe",
-	FURC_AV_NAL									= "Nalirsewen",
-	FURC_AV_TAR									= "Tarmimn",
-	FURC_AV_LTS									= "Listens-To-Sea",
-	FURC_AV_HER									= "Heralda Garscroft",
-	FURC_AV_FRO									= "Frohilde Snow-Hair",
-	FURC_AV_LOT									= "Lozotusk",
-	FURC_AV_ROH									= "Rohzika",
-	FURC_AV_ATH									= "Athragor",
-	FURC_AV_MAL									= "Maladdiq",
-	FURC_AV_KRR									= "Krrztrrb",
-	FURC_AV_ENC									= "enchanters",
-	FURC_AV_ALC									= "alchemists",
-	FURC_AV_OUT									= "Outlaw Refuge, Merchant",
-	FURC_AV_COO									= "cooks",
-	FURC_AV_CLO									= "clothiers",
-	FURC_AV_CAR									= "carpenters",
-	FURC_AV_BSM									= "blacksmiths",
-	FURC_AV_ARTAEUM								= "Artaeum",
-    FURC_AV_CAPITAL                             = "any capital city",
+  FURC_AV_NAR = "Narwaawende",
+  FURC_AV_ALI = "Alinor, Riverside Market",
+  FURC_AV_UNW = "Unwotil",
+  FURC_AV_CUR = "Curininwe",
+  FURC_AV_NAL = "Nalirsewen",
+  FURC_AV_TAR = "Tarmimn",
+  FURC_AV_LTS = "Listens-To-Sea",
+  FURC_AV_HER = "Heralda Garscroft",
+  FURC_AV_FRO = "Frohilde Snow-Hair",
+  FURC_AV_LOT = "Lozotusk",
+  FURC_AV_ROH = "Rohzika",
+  FURC_AV_ATH = "Athragor",
+  FURC_AV_MAL = "Maladdiq",
+  FURC_AV_KRR = "Krrztrrb",
+  FURC_AV_HAR = "Harnwulf",
+  FURC_AV_ADO = "Adosa Veralor",
+  FURC_AV_ENC = "enchanters",
+  FURC_AV_ALC = "alchemists",
+  FURC_AV_OUT = "Outlaw Refuge, Merchant",
+  FURC_AV_COO = "cooks",
+  FURC_AV_CLO = "clothiers",
+  FURC_AV_CAR = "carpenters",
+  FURC_AV_BSM = "blacksmiths",
+  FURC_AV_ARTAEUM = "Artaeum",
+  FURC_AV_CAPITAL = "any capital city",

-	-- Furniture Shopping List
-	SI_FURC_ONE_TO_SHOPPINGLIST = 				"Add 1 to shopping list",
-	SI_FURC_FIVE_TO_SHOPPINGLIST = 				"Add 5 to shopping list",
-	SI_FURC_TOGGLE_SHOPPINGLIST = 				" Toggle shopping list",
+  -- Furniture Shopping List
+  SI_FURC_ONE_TO_SHOPPINGLIST =         "Add 1 to shopping list",
+  SI_FURC_FIVE_TO_SHOPPINGLIST =        "Add 5 to shopping list",
+  SI_FURC_TOGGLE_SHOPPINGLIST =         " Toggle shopping list",

-	-- GUI and debug
-	SI_FURC_MENU_HEADER = 						"- |cD3B830Furniture|r:",
-	SI_FURC_REMOVE_FAVE = 						" Remove Favorite",
-	SI_FURC_ADD_FAVE = 							" Add Favorite",
-	SI_FURC_POST_ITEMSOURCE = 					" Post item source",
-	SI_FURC_POST_RECIPE = 						" Post recipe",
-	SI_FURC_POST_ITEM = 						" Post item",
-	SI_FURC_POST_MATERIAL = 					" Post material",
-	SI_FURC_DIALOGUE_RESET_DB_HEADER = 			"Really re-create furniture database?",
-	SI_FURC_DIALOGUE_RESET_DB_BODY = 			"This will re-create the FurnitureCatalogue database from scratch",
-	SI_FURC_TEXTBOX_FILTER_DEFAULT = 			"Filter by text search",
-	SI_FURC_DEBUG_CHARSCANCOMPLETE = 			"|c2266ffFurniture Catalogue|r|cffffff: Character scan complete...|r",
-	SI_FURC_VERBOSE_STARTUP = 					"|c2266ffFurniture Catalogue|r|cffffff: |cffffffIf you miss any recipes, please trigger a scan on your furniture crafter by clicking the refresh button in the UI.|r",
-	SI_FURC_VERBOSE_DB_UPTODATE = 				"|c2266ffFurniture Catalogue|r|cffffff: The database is up-to-date.|r",
-	SI_FURC_VERBOSE_SCANNING_DATA_FILE =		"|c2266ffFurniture Catalogue|r|cffffff: Scanning data files...|r",
-	SI_FURC_VERBOSE_SCANNING_CHARS =			"Not scanning files, scanning character knowledge now...",
-	SI_FURC_ITEMSOURCE_EMPTY =					"Item source unknown.\nTry to re-scan files (refresh button right click).\nIf still unknown after, please send a mail with the item link and -source to @manavortex",
-	SI_FURC_RUMOUR_SOURCE_RECIPE =				"This recipe has been datamined, but not seen in-game",
-	SI_FURC_RUMOUR_SOURCE_ITEM =				"This item has been datamined, but not seen in-game",
-	SI_FURC_STRING_CRAFTABLE_BY =				"Can be crafted by ",
-	SI_FURC_STRING_CANNOT_CRAFT =				"You cannot craft this yet",
-	SI_FURC_STRING_VENDOR = 					"sold by <<1>> in <<2>> (<<3>><<4>>)",
-	SI_FURC_STRING_AP =							" AP",
-	SI_FURC_STRING_ASSHOLE = 					"Zanil Theran",
-	SI_FURC_STRING_HC = 						"Hollow City",
-	SI_FURC_STRING_WASSOLDBY = 					"Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
-	SI_FURC_STRING_WEEKEND_AROUND = 			"(around <<1>>)",
-	SI_FURC_REQUIRES_QUEST                      = ", requires quest ",
-	SI_FURC_REQUIRES_ACHIEVEMENT                = ", requires ",
-	SI_FURC_PSIJIC_RANK                         = "Psijic Order Rank ",
-	SI_FURC_STRING_WRIT_VENDOR =				"Master Writ Vendor",
-	SI_FURC_STRING_WRIT_VENDOR_TT =				"Obtainable for Master Writs in your alliance's capital",
-	SI_FURC_STRING_Rolis = 					    "Sold by |cd68957Rolis Hlaalu|r <<1>>",
-	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r <<1>>",
-	SI_FURC_STRING_FOR_VOUCHERS =				"for <<1>> vouchers",
-	SI_FURC_FESTIVAL_DROP = 					"can be acquired during <<1>> (<<2>>)",
-	SI_FURC_STRING_RECIPELEARNED = 				"Recipe learned: <<1>> <<2>> <<3>>",
-	SI_FURC_STRING_RECIPESFORCHAR = 			"recipes for <<1>>",
-	SI_FURC_STRING_VOUCHER_VENDOR =				"Sold by either Rolis Hlaalu or Faustina Curio",
-    SI_FURC_QUESTREWARD =                       "Reward for a quest in ",
-    SI_FURC_GEYSIR =                            "Drops from geysir reward clams on Summerset",
-    SI_FURC_GIANT_CLAM =                        "Drops from giant clams and geysir reward clams on Summerset",
-	-- =============================== --
-	-- ============ MENU ============= --
-	-- =============================== --
+  -- GUI and debug
+  SI_FURC_MENU_HEADER =                 "- |cD3B830Furniture|r:",
+  SI_FURC_REMOVE_FAVE =                 " Remove Favorite",
+  SI_FURC_ADD_FAVE =                     " Add Favorite",
+  SI_FURC_POST_ITEMSOURCE =             " Post item source",
+  SI_FURC_POST_RECIPE =                 " Post recipe",
+  SI_FURC_POST_ITEM =                   " Post item",
+  SI_FURC_POST_MATERIAL =               " Post material",
+  SI_FURC_DIALOGUE_RESET_DB_HEADER =    "Really re-create furniture database?",
+  SI_FURC_DIALOGUE_RESET_DB_BODY =      "This will re-create the FurnitureCatalogue database from scratch",
+  SI_FURC_TEXTBOX_FILTER_DEFAULT =      "Filter by text search",
+  SI_FURC_DEBUG_CHARSCANCOMPLETE =      "|c2266ffFurniture Catalogue|r|cffffff: Character scan complete...|r",
+  SI_FURC_VERBOSE_STARTUP =             "|c2266ffFurniture Catalogue|r|cffffff: |cffffffIf you miss any recipes, please trigger a scan on your furniture crafter by clicking the refresh button in the UI.|r",
+  SI_FURC_VERBOSE_DB_UPTODATE =         "|c2266ffFurniture Catalogue|r|cffffff: The database is up-to-date.|r",
+  SI_FURC_VERBOSE_SCANNING_DATA_FILE =  "|c2266ffFurniture Catalogue|r|cffffff: Scanning data files...|r",
+  SI_FURC_VERBOSE_SCANNING_CHARS =      "Not scanning files, scanning character knowledge now...",
+  SI_FURC_ITEMSOURCE_EMPTY =            "Item source unknown.\nTry to re-scan files (refresh button right click).\nIf still unknown after, please send a mail with the item link and -source to @manavortex",
+  SI_FURC_RUMOUR_SOURCE_RECIPE =        "This recipe has been datamined, but not seen in-game",
+  SI_FURC_RUMOUR_SOURCE_ITEM =          "This item has been datamined, but not seen in-game",
+  SI_FURC_STRING_CRAFTABLE_BY =         "Can be crafted by ",
+  SI_FURC_STRING_CANNOT_CRAFT =         "You cannot craft this yet",
+  SI_FURC_STRING_VENDOR =               "sold by <<1>> in <<2>> (<<3>><<4>>)",
+  SI_FURC_STRING_AP =                   " AP",
+  SI_FURC_STRING_ASSHOLE =              "Zanil Theran",
+  SI_FURC_STRING_HC =                   "Hollow City",
+  SI_FURC_STRING_WASSOLDBY =            "Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
+  SI_FURC_STRING_WEEKEND_AROUND =       "(around <<1>>)",
+  SI_FURC_REQUIRES_QUEST =              ", requires quest ",
+  SI_FURC_REQUIRES_ACHIEVEMENT =        ", requires ",
+  SI_FURC_PSIJIC_RANK =                 "Psijic Order Rank ",
+  SI_FURC_STRING_WRIT_VENDOR =          "Master Writ Vendor",
+  SI_FURC_STRING_WRIT_VENDOR_TT =       "Obtainable for Master Writs in your alliance's capital",
+  SI_FURC_STRING_Rolis =                "Sold by |cd68957Rolis Hlaalu|r <<1>>",
+  SI_FURC_STRING_FAUSTINA =             "Sold by |cd68957Faustina Curio|r <<1>>",
+  SI_FURC_STRING_FOR_VOUCHERS =         "for <<1>> vouchers",
+  SI_FURC_FESTIVAL_DROP =               "can be acquired during <<1>> (<<2>>)",
+  SI_FURC_WW_DUNGEON_DROP =             "Drops in Monster Hunter Keep/March of the Sacrifices",
+  SI_FURC_STRING_RECIPELEARNED =        "Recipe learned: <<1>> <<2>> <<3>>",
+  SI_FURC_STRING_RECIPESFORCHAR =       "recipes for <<1>>",
+  SI_FURC_STRING_VOUCHER_VENDOR =       "Sold by either Rolis Hlaalu or Faustina Curio",
+  SI_FURC_QUESTREWARD =                 "Reward for a quest in ",
+  SI_FURC_GEYSIR =                      "Drops from geysir reward clams on Summerset",
+  SI_FURC_GIANT_CLAM =                  "Drops from giant clams and geysir reward clams on Summerset",
+  SI_FURC_ELF_PIC =                     "Drops extremely rarely from treasure chests on Summerset",
+  -- =============================== --
+  -- ============ MENU ============= --
+  -- =============================== --

-	SI_FURC_STRING_MENU_DEBUG = 				"Enable debug output",
-	SI_FURC_STRING_MENU_RESET_DB_NAME = 		"|cFF0000Reset database|r",
-	SI_FURC_STRING_MENU_RESET_DB_TT = 			"This will reset the furniture database.",
-	SI_FURC_STRING_MENU_RESET_DB_WARNING =		"All your data will be reset. Only recipe knowledge for this character will be considered.",
-	SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME =  	"Re-scan Rumour recipes",
-	SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT = 		"Will update the rumour recipes against the updated list",
-	SI_FURC_STRING_MENU_SCAN_FILES_NAME =		"Scan files",
-	SI_FURC_STRING_MENU_SCAN_FILES_TT = 		"Will run a full scan of the data in Furniture Catalogue's files",
-	SI_FURC_STRING_MENU_SCAN_CHAR_NAME = 		"Scan character",
-	SI_FURC_STRING_MENU_SCAN_CHAR_TT = 			"Will run a full scan of your known furniture recipes and update the database accordingly",
-	SI_FURC_STRING_MENU_DELETE_CHAR_NAME =		"delete character",
-	SI_FURC_STRING_MENU_DELETE_CHAR_TT =		"Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
-	SI_FURC_STRING_MENU_DELETE_CHAR_WARNING =	"Character knowledge will be wiped immediately",
-	SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST =	"Enable integration?",
-	SI_FURC_STRING_MENU_SKIP_INITIALSCAN =		"Skip Initial Scan?",
-	SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT =	"Check this to not scan your character's recipes on login. \nThanks to votan's awesome LibAsync the lag is gone now in any case..",
-	SI_FURC_STRING_MENU_HEADER_ICONS =			"Inventory and bank icons",
-	SI_FURC_STRING_MENU_ADD_ITEMS_NAME = 		"Add items to known/unknown recipes?",
-	SI_FURC_STRING_MENU_ADD_ITEMS_TT = 			"You shouldn't notice any lag",
-	SI_FURC_STRING_MENU_IT_UNKNOWN_NAME = 		"Only mark unknown recipes?",
-	SI_FURC_STRING_MENU_IT_THIS_ONLY = 			"Only for this character?",
-	SI_FURC_STRING_MENU_IT_THIS_ONLY_TT = 		"Will be accountwide otherwise.",
-	SI_FURC_STRING_MENU_USETINY = 	 			"Use tiny interface?",
-	SI_FURC_STRING_MENU_USETINY_TT = 	 		"Use a smaller interface (Craft Store like). \nYou can toggle this from the UI by clicking the +/- button.",
+  SI_FURC_STRING_MENU_DEBUG =               "Enable debug output",
+  SI_FURC_STRING_MENU_RESET_DB_NAME =       "|cFF0000Reset database|r",
+  SI_FURC_STRING_MENU_RESET_DB_TT =         "This will reset the furniture database.",
+  SI_FURC_STRING_MENU_RESET_DB_WARNING =    "All your data will be reset. Only recipe knowledge for this character will be considered.",
+  SI_FURC_STRING_MENU_RESCAN_RUMOUR_NAME =  "Re-scan Rumour recipes",
+  SI_FURC_STRING_MENU_RESCAN_RUMOUR_TT =    "Will update the rumour recipes against the updated list",
+  SI_FURC_STRING_MENU_SCAN_FILES_NAME =     "Scan files",
+  SI_FURC_STRING_MENU_SCAN_FILES_TT =       "Will run a full scan of the data in Furniture Catalogue's files",
+  SI_FURC_STRING_MENU_SCAN_CHAR_NAME =      "Scan character",
+  SI_FURC_STRING_MENU_SCAN_CHAR_TT =        "Will run a full scan of your known furniture recipes and update the database accordingly",
+  SI_FURC_STRING_MENU_DELETE_CHAR_NAME =    "delete character",
+  SI_FURC_STRING_MENU_DELETE_CHAR_TT =      "Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
+  SI_FURC_STRING_MENU_DELETE_CHAR_WARNING = "Character knowledge will be wiped immediately",
+  SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST = "Enable integration?",
+  SI_FURC_STRING_MENU_SKIP_INITIALSCAN =    "Skip Initial Scan?",
+  SI_FURC_STRING_MENU_SKIP_INITIALSCAN_TT = "Check this to not scan your character's recipes on login. \nThanks to votan's awesome LibAsync the lag is gone now in any case..",
+  SI_FURC_STRING_MENU_HEADER_ICONS =        "Inventory and bank icons",
+  SI_FURC_STRING_MENU_ADD_ITEMS_NAME =      "Add items to known/unknown recipes?",
+  SI_FURC_STRING_MENU_ADD_ITEMS_TT =        "You shouldn't notice any lag",
+  SI_FURC_STRING_MENU_IT_UNKNOWN_NAME =     "Only mark unknown recipes?",
+  SI_FURC_STRING_MENU_IT_THIS_ONLY =        "Only for this character?",
+  SI_FURC_STRING_MENU_IT_THIS_ONLY_TT =     "Will be accountwide otherwise.",
+  SI_FURC_STRING_MENU_USETINY =             "Use tiny interface?",
+  SI_FURC_STRING_MENU_USETINY_TT =          "Use a smaller interface (Craft Store like). \nYou can toggle this from the UI by clicking the +/- button.",

-	SI_FURC_STRING_MENU_STARTSILENT = 	 		"Start silently?",
-	SI_FURC_STRING_MENU_STARTSILENT_TT = 	 	"Suppress startup message",
-	SI_FURC_STRING_MENU_SHOWICONONLEFT = 		"Show Known/Unknown icon on left?",
-	SI_FURC_STRING_MENU_SHOWICONONLEFT_TT =		"Show Green Check/Red X icon on left or right of the inventory item (requires reloadui)",
-	SI_FURC_STRING_MENU_FONTSIZE = 	 			"Font size",
-	SI_FURC_STRING_MENU_FONTSIZE_TT = 	 		"adjust font size for FurnitureCatalogue here",
-	SI_FURC_STRING_MENU_DEFAULT_DD = 	 		"Default dropdown values",
-	SI_FURC_STRING_MENU_DEFAULT_DD_USE = 	 	"Will be set on initial launch",
-	SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT = 	"These will not reset if you open and close the UI",
-	SI_FURC_STRING_MENU_DEFAULT_DD_RESET = 		"Reset filters when closing UI?",
-	SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT = 	"If you check this, opening and closing will cause the filters to reset to whatever you set below.",
-	SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE = 	"default source filter",
-	SI_FURC_STRING_MENU_DEFAULT_DD_CHAR = 		"default character filter",
-	SI_FURC_STRING_MENU_DEFAULT_DD_VERSION = 	"default version filter",
-	SI_FURC_STRING_MENU_FILTERING = 			"Catalogue filtering",
-	SI_FURC_STRING_MENU_FILTER_BOOKS = 			"Mages guild books",
-	SI_FURC_STRING_MENU_FILTER_BOOKS_N = 		"Hide books?",
-	SI_FURC_STRING_MENU_FILTER_BOOKS_TT = 		"A real book lover knows where everything is by heart. Hide books from Furniture Catalogue?",
-	SI_FURC_STRING_MENU_LUXURY = 				"Luxury Furnishings",
-	SI_FURC_STRING_MENU_LUXURY_N = 				"Treat luxury items as purchaseables?",
-	SI_FURC_STRING_MENU_LUXURY_TT = 			"This will show everything that was sold by Zanil Theran under 'purchaseable' and deactvates the custom filter",
-	SI_FURC_STRING_MENU_LUXURY_WARN = 			"Hiding the dropdown entry requires UI reload (won't happen automatically for your convenience)",
-	SI_FURC_STRING_MENU_RUMOUR = 				"Rumour recipes",
-	SI_FURC_STRING_MENU_RUMOUR_DESC = 		 	"The furniture database contains a list of recipes that I have datamined.\nHowever, not all of those have been seen in-game.\nEnable this option to exclude them from the default filters.\nYou can still view them with their own filter, which you can disable below.",
-
-	SI_FURC_STRING_MENU_RUMOUR_N = 				"Hide rumour recipes?",
-	SI_FURC_STRING_MENU_CROWN = 				"Crown store items",
-	SI_FURC_STRING_MENU_CROWN_N = 				"Hide crown store items?",
-	SI_FURC_STRING_MENU_CROWN_DESC = 			"The furniture database will update whenever the tooltip shows a furniture item. \nSome items can only be acquired via crown store. \nCheck this box to exclude them from the default filters (disable crown store filter below).",
+  SI_FURC_STRING_MENU_STARTSILENT =         "Start silently?",
+  SI_FURC_STRING_MENU_STARTSILENT_TT =      "Suppress startup message",
+  SI_FURC_STRING_MENU_SHOWICONONLEFT =      "Show Known/Unknown icon on left?",
+  SI_FURC_STRING_MENU_SHOWICONONLEFT_TT =   "Show Green Check/Red X icon on left or right of the inventory item (requires reloadui)",
+  SI_FURC_STRING_MENU_FONTSIZE =            "Font size",
+  SI_FURC_STRING_MENU_FONTSIZE_TT =         "adjust font size for FurnitureCatalogue here",
+  SI_FURC_STRING_MENU_DEFAULT_DD =          "Default dropdown values",
+  SI_FURC_STRING_MENU_DEFAULT_DD_USE =      "Will be set on initial launch",
+  SI_FURC_STRING_MENU_DEFAULT_DD_USE_TT =   "These will not reset if you open and close the UI",
+  SI_FURC_STRING_MENU_DEFAULT_DD_RESET =    "Reset filters when closing UI?",
+  SI_FURC_STRING_MENU_DEFAULT_DD_RESET_TT = "If you check this, opening and closing will cause the filters to reset to whatever you set below.",
+  SI_FURC_STRING_MENU_DEFAULT_DD_SOURCE =   "default source filter",
+  SI_FURC_STRING_MENU_DEFAULT_DD_CHAR =     "default character filter",
+  SI_FURC_STRING_MENU_DEFAULT_DD_VERSION =  "default version filter",
+  SI_FURC_STRING_MENU_FILTERING =           "Catalogue filtering",
+  SI_FURC_STRING_MENU_FILTER_BOOKS =        "Mages guild books",
+  SI_FURC_STRING_MENU_FILTER_BOOKS_N =      "Hide books?",
+  SI_FURC_STRING_MENU_FILTER_BOOKS_TT =     "A real book lover knows where everything is by heart. Hide books from Furniture Catalogue?",
+  SI_FURC_STRING_MENU_LUXURY =              "Luxury Furnishings",
+  SI_FURC_STRING_MENU_LUXURY_N =            "Treat luxury items as purchaseables?",
+  SI_FURC_STRING_MENU_LUXURY_TT =           "This will show everything that was sold by Zanil Theran under 'purchaseable' and deactvates the custom filter",
+  SI_FURC_STRING_MENU_LUXURY_WARN =         "Hiding the dropdown entry requires UI reload (won't happen automatically for your convenience)",
+  SI_FURC_STRING_MENU_RUMOUR =              "Rumour recipes",
+  SI_FURC_STRING_MENU_RUMOUR_DESC =         "The furniture database contains a list of recipes that I have datamined.\nHowever, not all of those have been seen in-game.\nEnable this option to exclude them from the default filters.\nYou can still view them with their own filter, which you can disable below.",
+  SI_FURC_STRING_CONTEXTMENU_DIVIDER =      "Don't use divider in context menu?",
+  SI_FURC_STRING_CONTEXTMENU_DIVIDER_TT =   "Adds a divider to the context manu above the - Furniture entry. Check to disable",
+
+
+  SI_FURC_STRING_MENU_RUMOUR_N =            "Hide rumour recipes?",
+  SI_FURC_STRING_MENU_CROWN =               "Crown store items",
+  SI_FURC_STRING_MENU_CROWN_N =             "Hide crown store items?",
+  SI_FURC_STRING_MENU_CROWN_DESC =          "The furniture database will update whenever the tooltip shows a furniture item. \nSome items can only be acquired via crown store. \nCheck this box to exclude them from the default filters (disable crown store filter below).",

     -- Filter text search
-    SI_FURC_STRING_MENU_HEADER_F_ALL_ON_TEXT =  "Filter settings for text search",
-    SI_FURC_STRING_MENU_F_ALL_ON_TEXT =         "Configure this filter",
-    SI_FURC_STRING_MENU_HEADER_F_ALL_DESC =     "Configure filter settings for text search with disabled dropdowns. \nThese settings will only take effect when you have not set a source, character or version filter.",
+  SI_FURC_STRING_MENU_HEADER_F_ALL_ON_TEXT =  "Filter settings for text search",
+  SI_FURC_STRING_MENU_F_ALL_ON_TEXT =         "Configure this filter",
+  SI_FURC_STRING_MENU_HEADER_F_ALL_DESC =     "Configure filter settings for text search with disabled dropdowns. \nThese settings will only take effect when you have not set a source, character or version filter.",

-    SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT =    "Search filtered items when doing a text search with no dropdown filters set?",
-    SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT_TT = "When doing a text search without any dropdown ",
-    SI_FURC_STRING_MENU_FALL_HIDE_BOOKS =       "Hide books anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_BOOKS_TT =    "Even when filtering all items, still hide books?",
-    SI_FURC_STRING_MENU_FALL_HIDE_CROWN =       "Hide crown store items anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_CROWN_TT =    "Even when filtering all items, still hide crown store items?",
-    SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR =      "Hide rumour items anyway",
-    SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR_TT =   "Even when filtering all items, still hide rumour items?",
+  SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT =    "Search filtered items when doing a text search with no dropdown filters set?",
+  SI_FURC_STRING_MENU_FILTER_ALL_ON_TEXT_TT = "When doing a text search without any dropdown ",
+  SI_FURC_STRING_MENU_FALL_HIDE_BOOKS =       "Hide books anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_BOOKS_TT =    "Even when filtering all items, still hide books?",
+  SI_FURC_STRING_MENU_FALL_HIDE_CROWN =       "Hide crown store items anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_CROWN_TT =    "Even when filtering all items, still hide crown store items?",
+  SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR =      "Hide rumour items anyway",
+  SI_FURC_STRING_MENU_FALL_HIDE_RUMOUR_TT =   "Even when filtering all items, still hide rumour items?",

     -- Hide menu entries
-	SI_FURC_STRING_MENU_HIDE_MENU = 				"Hide menu entries?",
-	SI_FURC_STRING_MENU_HIDE_MENU_TT = 				"Hides \"Crown store\" and \"Rumour recipes\" from the dropdown \nactivated for crown store by default, as there aren't any items yet",
-	SI_FURC_STRING_MENU_HIDE_MENU_RUMOUR = 			"Hide \"Rumour recipes\" drop down entry?",
-	SI_FURC_STRING_MENU_HIDE_MENU_CROWN = 			"Hide \"Crown Store\" drop down entry?",
-	SI_FURC_STRING_MENU_HIDE_MENU_TT =				"Requires UI reload (won't happen automatically for your convenience)",
-	SI_FURC_STRING_MENU_TOOLTIP =					"Enable tooltips?",
-	SI_FURC_STRING_MENU_TOOLTIP_COLOR =	 			"Colorize tooltips for clarity?",
-	SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT = 			"Will colour 'can' and 'cannot'",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN =  		"Hide if item is known",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT = 	"Hides 'can be crafted by...' from tooltip",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN =  	"Hide if item is unknown",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT =	"Hides 'you cannot craft this yet'",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE =  		"Hide item source?",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION =  	"Hide crafting station?",
-	SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL =  	"Hide material?",
+  SI_FURC_STRING_MENU_HIDE_MENU =               "Hide menu entries?",
+  SI_FURC_STRING_MENU_HIDE_MENU_TT =            "Hides \"Crown store\" and \"Rumour recipes\" from the dropdown \nactivated for crown store by default, as there aren't any items yet",
+  SI_FURC_STRING_MENU_HIDE_MENU_RUMOUR =        "Hide \"Rumour recipes\" drop down entry?",
+  SI_FURC_STRING_MENU_HIDE_MENU_CROWN =         "Hide \"Crown Store\" drop down entry?",
+  SI_FURC_STRING_MENU_HIDE_MENU_TT =            "Requires UI reload (won't happen automatically for your convenience)",
+  SI_FURC_STRING_MENU_TOOLTIP =                 "Enable tooltips?",
+  SI_FURC_STRING_MENU_TOOLTIP_COLOR =           "Colorize tooltips for clarity?",
+  SI_FURC_STRING_MENU_TOOLTIP_COLOR_TT =        "Will colour 'can' and 'cannot'",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN =      "Hide if item is known",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_KNOWN_TT =   "Hides 'can be crafted by...' from tooltip",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN =    "Hide if item is unknown",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_UNKNOWN_TT = "Hides 'you cannot craft this yet'",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_SOURCE =     "Hide item source?",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_STATION =    "Hide crafting station?",
+  SI_FURC_STRING_MENU_TOOLTIP_HIDE_MATERIAL =   "Hide material?",

-	-- =============================== --
-	-- ==== GUI: Dropdown entries ==== --
-	-- =============================== --
+  -- =============================== --
+  -- ==== GUI: Dropdown entries ==== --
+  -- =============================== --

-	SI_FURC_NONE 									= "Source filter: off",
-	SI_FURC_FAVE 									= "Favorites",
-	SI_FURC_CRAFTING								= "Craftable: All",
-	SI_FURC_CRAFTING_KNOWN							= "Craftable: Known",
-	SI_FURC_CRAFTING_UNKNOWN						= "Craftable: Unknown",
-	SI_FURC_VENDOR									= "Purchaseable (gold)",
-	SI_FURC_PVP										= "Purchaseable (AP)",
-	SI_FURC_CROWN									= "Crown Store",
-	SI_FURC_RUMOUR									= "Rumour items",
-	SI_FURC_LUXURY									= "Luxury items",
-	SI_FURC_RUMOUR									= "Rumour items",
-	SI_FURC_OTHER									= "Other",
+  SI_FURC_NONE =                "Source filter: off",
+  SI_FURC_FAVE =                "Favorites",
+  SI_FURC_CRAFTING =            "Craftable: All",
+  SI_FURC_CRAFTING_KNOWN =      "Craftable: Known",
+  SI_FURC_CRAFTING_UNKNOWN =    "Craftable: Unknown",
+  SI_FURC_VENDOR =              "Purchaseable (gold)",
+  SI_FURC_PVP =                 "Purchaseable (AP)",
+  SI_FURC_CROWN =               "Crown Store",
+  SI_FURC_RUMOUR =              "Rumour items",
+  SI_FURC_LUXURY =              "Luxury items",
+  SI_FURC_RUMOUR =              "Rumour items",
+  SI_FURC_OTHER =               "Other",

-	SI_FURC_FILTER_VERSION_OFF						= "Version filter: off",
-	SI_FURC_FILTER_VERSION_HS						= "Homestead",
-	SI_FURC_FILTER_VERSION_M						= "Morrowind",
-	SI_FURC_FILTER_VERSION_R						= "Horns of the Reach",
-	SI_FURC_FILTER_VERSION_CC						= "Clockwork City",
-	SI_FURC_FILTER_VERSION_DRAGON					= "Dragon Bones",
-	SI_FURC_FILTER_VERSION_ALTMER					= "Summerset",
-	SI_FURC_FILTER_VERSION_ALTMER_TT                = "",
+  SI_FURC_FILTER_VERSION_OFF =      "Version filter: off",
+  SI_FURC_FILTER_VERSION_HS =       "Homestead",
+  SI_FURC_FILTER_VERSION_M =        "Morrowind",
+  SI_FURC_FILTER_VERSION_R =        "Horns of the Reach",
+  SI_FURC_FILTER_VERSION_CC =       "Clockwork City",
+  SI_FURC_FILTER_VERSION_DRAGON =   "Dragon Bones",
+  SI_FURC_FILTER_VERSION_ALTMER =   "Summerset",
+  SI_FURC_FILTER_VERSION_WEREWOLF = "Wolfhunter",
+  SI_FURC_FILTER_VERSION_SLAVES =   "Murkmire",
+

-	-- =============================== --
-	-- = GUI: Dropdown entry tooltip = --
-	-- =============================== --
+  -- =============================== --
+  -- = GUI: Dropdown entry tooltip = --
+  -- =============================== --

-	SI_FURC_NONE_TT 								= "disables this filter",
-	SI_FURC_FAVE_TT 								= "Shows your favorites",
-	SI_FURC_CRAFTING_TT								= "Shows all craftable items",
-	SI_FURC_CRAFTING_KNOWN_TT						= "Shows only known craftable items",
-	SI_FURC_CRAFTING_UNKNOWN_TT						= "Shows only unknown craftable items",
-	SI_FURC_VENDOR_TT								= "Shows only items that cannot be crafted",
-	SI_FURC_PVP_TT									= "Items that are sold for alliance points",
-	SI_FURC_CROWN_TT								= "Shows items that can only be acquired from crown store",
-	SI_FURC_RUMOUR_TT								= "Items and recipes that have been datamined, but haven't been confirmed existing",
-	SI_FURC_LUXURY_TT								= "Items that at some point were sold by Zanil Theran, Cicero's General Goods, Coldharbour",
-	SI_FURC_OTHER_TT								= "Shows items that can be farmed/stolen/found",
-
-	SI_FURC_FILTER_VERSION_OFF_TT					= filterDisabled,
-	SI_FURC_FILTER_VERSION_HS_TT					= "Items released in Homestead update",
-	SI_FURC_FILTER_VERSION_M_TT						= "YOU N\'WAH!",
-	SI_FURC_FILTER_VERSION_R_TT						= "Because all we needed were more Reachmen",
-	SI_FURC_FILTER_VERSION_CC_TT					= "Where the flywheels churn and the brass is pretty",
-	SI_FURC_FILTER_VERSION_DRAGON_TT				= "If you got this from Narsis Dren, well...",
-
-
-	SI_FURC_FILTER_CHAR_OFF							= "Character filter: off",
-	SI_FURC_FILTER_CHAR_OFF_TT						= filterDisabled,
-
-	-- =============================== --
-	-- ========= GUI: Heading ======== --
-	-- =============================== --
-
-	SI_FURC_LABEL_ENTRIES							= " entries -",
+  SI_FURC_NONE_TT =             "disables this filter",
+  SI_FURC_FAVE_TT =             "Shows your favorites",
+  SI_FURC_CRAFTING_TT =         "Shows all craftable items",
+  SI_FURC_CRAFTING_KNOWN_TT =   "Shows only known craftable items",
+  SI_FURC_CRAFTING_UNKNOWN_TT = "Shows only unknown craftable items",
+  SI_FURC_VENDOR_TT =           "Shows only items that cannot be crafted",
+  SI_FURC_PVP_TT =              "Items that are sold for alliance points",
+  SI_FURC_CROWN_TT =            "Shows items that can only be acquired from crown store",
+  SI_FURC_RUMOUR_TT =           "Items and recipes that have been datamined, but haven't been confirmed existing",
+  SI_FURC_LUXURY_TT =           "Items that at some point were sold by Zanil Theran, Cicero's General Goods, Coldharbour",
+  SI_FURC_OTHER_TT =            "Shows items that can be farmed/stolen/found",
+
+  SI_FURC_FILTER_VERSION_OFF_TT =       filterDisabled,
+  SI_FURC_FILTER_VERSION_HS_TT =        "Items released in Homestead update",
+  SI_FURC_FILTER_VERSION_M_TT =         "YOU N\'WAH!",
+  SI_FURC_FILTER_VERSION_R_TT =         "Because all we needed were more Reachmen",
+  SI_FURC_FILTER_VERSION_CC_TT =        "Where the flywheels churn and the brass is pretty",
+  SI_FURC_FILTER_VERSION_DRAGON_TT =    "If you got this from Narsis Dren, well...",
+  SI_FURC_FILTER_VERSION_ALTMER_TT =    "Still think the Dunmer are bad?",
+  SI_FURC_FILTER_VERSION_WEREWOLF_TT =  "In Soviet Hunting Ground, werewolf hunt you",
+  SI_FURC_FILTER_VERSION_SLAVES_TT =    "ToDo: Think of horrible pun about Argonians",
+
+  SI_FURC_FILTER_CHAR_OFF =     "Character filter: off",
+  SI_FURC_FILTER_CHAR_OFF_TT =  filterDisabled,
+
+  -- =============================== --
+  -- ========= GUI: Heading ======== --
+  -- =============================== --
+
+  SI_FURC_LABEL_ENTRIES =       " entries -",

     -- =============================== --
-	-- ========= Item Sources ======== --
-	-- =============================== --
-	SI_FURC_CANBEPICKED 					        = "can be pickpocketed",
-	SI_FURC_CANBESTOLEN 					        = "can be stolen",
-    SI_FURC_CROWNSTORESOURCE				        = "Crown Store ",
-    SI_FURC_CANBEFISHED				                = "can be fished",
-    SI_FURC_HARVEST				                    = "from harvesting nodes",
-    SI_FURC_WW				                        = "occasionally found in wood nodes",
-    SI_FURC_PLANTS						            = "from harvesting plants",
-    SI_FURC_SCAMBOX						            = "Crown Crates",
-    SI_FURC_HOUSE						            = "From a furnished purchase of <<1>>",
-    SI_FURC_AUTOMATON						        = "from automatons",
-    SI_FURC_TOMBS 						            = "Ancestor tombs and ruins on Vvardenfell",
-    SI_FURC_DAEDRA_SOURCE 						    = "from Daedra and Dolmen chests",
-    SI_FURC_DB					                    = "The Dark Brotherhood supplies vendor hands these out ",
-    SI_FURC_DB_POISON					            = "with poison",
-    SI_FURC_DB_STEALTH					            = "as a way to be less obtrusive",
-    SI_FURC_DAILY_ASHLANDERS			            = "Ashlander daily quest rewards",
-    SI_FURC_PLUNDERSKULL			                = "Drops from Plunder Skulls during Witches' Festival",
-    SI_FURC_DROP_CHEST_VVARDENFELL	                = "Extremely rarely from chests on Vvardenfell",
-    SI_FURC_DROP                                    = "This item is a drop ",
-    SI_FURC_DROP_ALTMER                             = "This item is a drop on Summerset",
-    SI_FURC_FLAME_ATRONACH	                        = "Flame Atronach",
-	SI_FURC_CHESTS                                  = "from treasure chests",
-	SI_FURC_VVARDENFELL_PAINTING                    = "extremely rarely from safeboxes",
-	SI_FURC_DRAGON_DUNGEON_DROP                     = "Fang Lair/Scalecaller Peak",
-	SI_FURC_ITEMSOURCE_UNKNOWN_YET                  = "This item has been found in the sources/recipes for Summerset! \nIts origin isn't known yet.",
-	SI_FURC_EXISITING_ITEMSOURCE_UNKNOWN_YET        = "This item has been confirmed existing, but its origin isn't known yet.",
-	SI_FURC_ITEMSOURCE_ITEMPACK                     = "This item is part of the Crown Store item pack ",
-
-	SI_FURC_SEEN_IN_GUILDSTORE                      = "Seen in Guild Store",
+  -- ========= Item Sources ======== --
+  -- =============================== --
+  SI_FURC_CANBEPICKED =           "can be pickpocketed",
+  SI_FURC_CANBESTOLEN =           "can be stolen",
+  SI_FURC_CROWNSTORESOURCE =      "Crown Store ",
+  SI_FURC_CANBEFISHED =           "can be fished",
+  SI_FURC_HARVEST =               "from harvesting nodes",
+  SI_FURC_WW =                    "occasionally found in wood nodes",
+  SI_FURC_PLANTS =                "from harvesting plants",
+  SI_FURC_SCAMBOX =               "Crown Crates",
+  SI_FURC_HOUSE =                 "From a furnished purchase of <<1>>",
+  SI_FURC_AUTOMATON =             "from automatons",
+  SI_FURC_TOMBS =                 "Ancestor tombs and ruins on Vvardenfell",
+  SI_FURC_DAEDRA_SOURCE =         "from Daedra and Dolmen chests",
+  SI_FURC_DB =                    "The Dark Brotherhood supplies vendor hands these out ",
+  SI_FURC_DB_POISON =             "with poison",
+  SI_FURC_DB_STEALTH =            "as a way to be less obtrusive",
+  SI_FURC_DAILY_ASH =             "Ashlander daily quest rewards",
+  SI_FURC_PLUNDERSKULL =          "Drops from Plunder Skulls during Witches' Festival",
+  SI_FURC_VV_PAINTING =           "Extremely rarely from chests or lockboxes on Vvardenfell",
+  SI_FURC_DROP =                  "This item is a drop ",
+  SI_FURC_DROP_ALTMER =           "This item is a drop on Summerset",
+  SI_FURC_FLAME_ATRONACH =        "Flame Atronach",
+  SI_FURC_DWEMER =                "Dwemer",
+  SI_FURC_CHESTS =                "from treasure chests",
+  SI_FURC_VVARDENFELL_PAINTING =  "extremely rarely from safeboxes",
+  SI_FURC_CHEST_VV =              "Extremely rarely from chests on Vvardenfell",
+  SI_FURC_DRAGON_DUNGEON_DROP =   "Fang Lair/Scalecaller Peak",
+  SI_FURC_DATAMINED_UNCLEAR =     "This item has been found in the sources/recipes for Summerset! \nIts origin isn't known yet.",
+  SI_FURC_DATAMINED_UNCLEAR =     "This item has been confirmed existing, but its origin isn't known yet.",
+  SI_FURC_ITEMSOURCE_ITEMPACK =   "This item is part of the Crown Store item pack ",
+
+  SI_FURC_SEEN_IN_GUILDSTORE =    "Seen in Guild Store",
 }

+
 for stringId, stringValue in pairs(strings) do
-	ZO_CreateStringId(stringId, stringValue)
-	SafeAddVersion(stringId, 2)
+  ZO_CreateStringId(stringId, stringValue)
+  SafeAddVersion(stringId, 1)
 end
\ No newline at end of file
diff --git a/startup.lua b/startup.lua
index 64f18cd..8d59ab0 100644
--- a/startup.lua
+++ b/startup.lua
@@ -1,295 +1,296 @@
-FurnitureCatalogue                = {}
-FurnitureCatalogue.name           = "FurnitureCatalogue"
-FurnitureCatalogue.author			    = "manavortex"
-FurnitureCatalogue.version        = 2.7
-FurnitureCatalogue.CharacterName	= nil
-FurnitureCatalogue.settings			  = {}
-
-FurC 								     = FurnitureCatalogue
-
-FurC.AchievementVendors   = {}
-FurC.LuxuryFurnisher      = {}
-FurC.Recipes              = {}
-FurC.Rolis                = {}
-FurC.Faustina             = {}
-FurC.RolisRecipes					= {}
-FurC.FaustinaRecipes      = {}
-FurC.Books                = {}
-FurC.EventItems						= {}
-FurC.PVP                  = {}
-FurC.MiscItemSources      = {}
-
--- for search so it doesn't lag
-FurC.FilterTask =  LibStub("LibAsync"):Create("FurnitureCatalogue_FilterOnTextSearch")
-
--- versioning
-FURC_HOMESTEAD    = 2
-FURC_MORROWIND    = 3
-FURC_REACH        = 4
-FURC_CLOCKWORK    = 5
-FURC_DRAGONS      = 6
-FURC_ALTMER       = 7
-FURC_WEREWOLF     = 8
-FURC_SLAVES       = 9
-
-FurC.Const                          = {
-    vendorColor     = "d68957",
-    goldColor 	    = "e5da40",
-    apColor         = "25C31E",
-    tvColor         = "5EA4FF",
-    voucherColor    = "82BCFF",
-}
-
-local defaults 						= {
-
-	hideMats						   = true,
-	dontScanTradingHouse   = false,
-	enableDebug            = false,
-
-	data                   = {},
-	filterCraftingType     = {},
-	filterQuality          = {},
-
-	resetDropdownChoice    = false,
-	useTinyUi              = true,
-	useInventoryIcons      = true,
-	fontSize               = 18,
-
-	gui								= {
-		lastX						= 100,
-		lastY						= 100,
-		width						= 650,
-		height          = 550,
-	},
-
-	dropdownDefaults		= {
-		Source						= 1,
-		Character					= 1,
-		Version						= 1,
-	},
-
-	accountCharacters		= {},
-
-	version 						= 2.0,
-
-	-- tooltips
-	disableTooltips			= false,
-	coloredTooltips 		= true,
-	hideKnowledge				= false,
-
-	hideBooks						= true,
-	hideDoubtfuls				= true,
-	hideCrownstore			= true,
-	hideRumourEntry			= false,
-	wipeDatabase				= false,
-	startupSilently			= true,
-
-}
-
-FURC_NONE             = 1
-FURC_FAVE             = FURC_NONE +1
-FURC_CRAFTING         = FURC_FAVE +1
-FURC_CRAFTING_KNOWN		= FURC_CRAFTING +1
-FURC_CRAFTING_UNKNOWN	= FURC_CRAFTING_KNOWN +1
-FURC_VENDOR           = FURC_CRAFTING_UNKNOWN +1
-FURC_PVP              = FURC_VENDOR +1
-FURC_CROWN            = FURC_PVP +1
-FURC_RUMOUR           = FURC_CROWN +1
-FURC_LUXURY           = FURC_RUMOUR +1
-FURC_OTHER            = FURC_LUXURY +1
-FURC_ROLIS            = FURC_OTHER +1
-FURC_DROP             = FURC_ROLIS +1
-FURC_WRIT_VENDOR      = FURC_DROP +1
-FURC_JUSTICE          = FURC_WRIT_VENDOR +1
-FURC_FISHING          = FURC_JUSTICE +1
-FURC_GUILDSTORE       = FURC_FISHING +1
-FURC_FESTIVAL_DROP 		= FURC_GUILDSTORE +1
-FURC_EMPTY_STRING 		= ""
-
-local sourceIndicesKeys = {}
-local function getSourceIndicesKeys()
-	sourceIndicesKeys[FURC_NONE]             = "off"
-	sourceIndicesKeys[FURC_FAVE]             = "favorites"
-	sourceIndicesKeys[FURC_CRAFTING]         = "craft_all"
-	sourceIndicesKeys[FURC_CRAFTING_KNOWN]   = "craft_known"
-	sourceIndicesKeys[FURC_CRAFTING_UNKNOWN] = "craft_unknown"
-	sourceIndicesKeys[FURC_VENDOR]           = "purch_gold"
-	sourceIndicesKeys[FURC_PVP]              = "purch_ap"
-	sourceIndicesKeys[FURC_CROWN]            = "crownstore"
-  sourceIndicesKeys[FURC_RUMOUR]           = "rumour"
-  sourceIndicesKeys[FURC_LUXURY] 					 = "luxury"
-	sourceIndicesKeys[FURC_OTHER]            = "other"
-	sourceIndicesKeys[FURC_WRIT_VENDOR]      = "writ_vendor"
-	return sourceIndicesKeys
-end
-FurC.GetSourceIndicesKeys = getSourceIndicesKeys
-
-local choicesSource = {}
-local function getChoicesSource()
-	choicesSource[FURC_NONE]             = GetString(SI_FURC_NONE)
-	choicesSource[FURC_FAVE]             = GetString(SI_FURC_FAVE)
-	choicesSource[FURC_CRAFTING]         = GetString(SI_FURC_CRAFTING)
-	choicesSource[FURC_CRAFTING_KNOWN]   = GetString(SI_FURC_CRAFTING_KNOWN)
-	choicesSource[FURC_CRAFTING_UNKNOWN] = GetString(SI_FURC_CRAFTING_UNKNOWN)
-	choicesSource[FURC_VENDOR]           = GetString(SI_FURC_VENDOR)
-	choicesSource[FURC_PVP]              = GetString(SI_FURC_PVP)
-	choicesSource[FURC_WRIT_VENDOR]      = GetString(SI_FURC_STRING_WRIT_VENDOR)
-	choicesSource[FURC_CROWN]            = GetString(SI_FURC_CROWN)
-	choicesSource[FURC_RUMOUR]           = GetString(SI_FURC_RUMOUR)
-  choicesSource[FURC_LUXURY]           = GetString(SI_FURC_LUXURY)
-	choicesSource[FURC_OTHER]            = GetString(SI_FURC_OTHER)
-
-	return choicesSource
-end
-FurC.GetChoicesSource = getChoicesSource
-
-local tooltipsSource = {}
-local function getTooltipsSource()
-	tooltipsSource[FURC_NONE]              = GetString(SI_FURC_NONE_TT)
-	tooltipsSource[FURC_FAVE]              = GetString(SI_FURC_FAVE_TT)
-	tooltipsSource[FURC_CRAFTING]          = GetString(SI_FURC_CRAFTING_TT)
-	tooltipsSource[FURC_CRAFTING_KNOWN]    = GetString(SI_FURC_CRAFTING_KNOWN_TT)
-	tooltipsSource[FURC_CRAFTING_UNKNOWN]  = GetString(SI_FURC_CRAFTING_UNKNOWN_TT)
-	tooltipsSource[FURC_VENDOR]            = GetString(SI_FURC_VENDOR_TT)
-	tooltipsSource[FURC_PVP]               = GetString(SI_FURC_PVP_TT)
-  tooltipsSource[FURC_CROWN]             = GetString(SI_FURC_CROWN_TT)
-	tooltipsSource[FURC_WRIT_VENDOR] 			 = GetString(SI_FURC_STRING_WRIT_VENDOR_TT)
-  tooltipsSource[FURC_RUMOUR] 				   = GetString(SI_FURC_RUMOUR_TT)
-  tooltipsSource[FURC_LUXURY] 				   = GetString(SI_FURC_LUXURY_TT)
-	tooltipsSource[FURC_OTHER] 				     = GetString(SI_FURC_OTHER_TT)
-
-return tooltipsSource
-end
-
-FurnitureCatalogue.DropdownData = {
-
-	ChoicesVersion	= {
-		[1] 				      = GetString(SI_FURC_FILTER_VERSION_OFF),
-		[FURC_HOMESTEAD] 	= GetString(SI_FURC_FILTER_VERSION_HS	),
-		[FURC_MORROWIND] 	= GetString(SI_FURC_FILTER_VERSION_M	),
-		[FURC_REACH] 		  = GetString(SI_FURC_FILTER_VERSION_R	),
-		[FURC_CLOCKWORK] 	= GetString(SI_FURC_FILTER_VERSION_CC	),
-		[FURC_DRAGONS] 		= GetString(SI_FURC_FILTER_VERSION_DRAGON),
-		[FURC_ALTMER] 		= GetString(SI_FURC_FILTER_VERSION_ALTMER),
-		[FURC_WEREWOLF] 	= GetString(SI_FURC_FILTER_VERSION_WEREWOLF),
-		[FURC_SLAVES] 		= GetString(SI_FURC_FILTER_VERSION_SLAVES),
-	},
-	TooltipsVersion	= {
-		[1] 				      = GetString(SI_FURC_FILTER_VERSION_OFF_TT),
-		[FURC_HOMESTEAD] 	= GetString(SI_FURC_FILTER_VERSION_HS_TT),
-		[FURC_MORROWIND] 	= GetString(SI_FURC_FILTER_VERSION_M_TT),
-		[FURC_REACH] 		  = GetString(SI_FURC_FILTER_VERSION_R_TT),
-		[FURC_CLOCKWORK] 	= GetString(SI_FURC_FILTER_VERSION_CC_TT),
-		[FURC_DRAGONS] 		= GetString(SI_FURC_FILTER_VERSION_DRAGON_TT),
-		[FURC_ALTMER] 		= GetString(SI_FURC_FILTER_VERSION_ALTMER_TT),
-		[FURC_WEREWOLF] 	= GetString(SI_FURC_FILTER_VERSION_WEREWOLF_TT),
-		[FURC_SLAVES] 		= GetString(SI_FURC_FILTER_VERSION_SLAVES_TT),
-	},
-	ChoicesCharacter  = {
-		[1]	= GetString(SI_FURC_FILTER_CHAR_OFF),
-	},
-	TooltipsCharacter = {
-		[1]	= GetString(SI_FURC_FILTER_CHAR_OFF_TT),
-	},
-
-	-- will be set in setupSourceDropdown
-	ChoicesSource	= {},
-	TooltipsSource 	= {},
-}
-if GetAPIVersion() == 100024 then
-    FurnitureCatalogue.DropdownData.ChoicesVersion[FURC_WEREWOLF] = GetString(SI_FURC_FILTER_VERSION_WEREWOLF)
-    FurnitureCatalogue.DropdownData.TooltipsVersion[FURC_WEREWOLF] = GetString(SI_FURC_FILTER_VERSION_WEREWOLF_TT)
-end
-
-local function updateDropdownData()
-	FurnitureCatalogue.DropdownData.ChoicesSource  = getChoicesSource()
-	FurnitureCatalogue.DropdownData.TooltipsSource = getTooltipsSource()
-end
-FurnitureCatalogue.updateDropdownData = updateDropdownData
-
-local function setupSourceDropdown()
-	updateDropdownData()
-	sourceIndices = {}
-
-	for idx, key in ipairs(getSourceIndicesKeys()) do
-		sourceIndices[key] = idx
-	end
-	FurC.SourceIndices = sourceIndices
-end
-
-function FurnitureCatalogue.DebugOut(output, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
-	if not FurC.GetEnableDebug() then return end
-	if a10 then
-		d(zo_strformat(output, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10))
-	elseif a9 then
-		d(zo_strformat(output, a1, a2, a3, a4, a5, a6, a7, a8, a9))
-	elseif a8 then
-		d(zo_strformat(output, a1, a2, a3, a4, a5, a6, a7, a8))
-	elseif a7 then
-		d(zo_strformat(output, a1, a2, a3, a4, a5, a6, a7))
-	elseif a6 then
-		d(zo_strformat(output, a1, a2, a3, a4, a5, a6))
-	elseif a5 then
-		d(zo_strformat(output, a1, a2, a3, a4, a5))
-	elseif a4 then
-		d(zo_strformat(output, a1, a2, a3, a4))
-	elseif a3 then
-		d(zo_strformat(output, a1, a2, a3))
-	elseif a2 then
-		d(zo_strformat(output, a1, a2))
-	elseif a1 then
-		d(zo_strformat(output, a1))
-	elseif output then
-		d(zo_strformat(output))
-	else
-		d("\n")
-	end
-end
-
-local function p(...)
-	FurC.DebugOut(...)
-end
-
-function whoami()
-	return FurnitureCatalogue.CharacterName
-end
-
-
--- initialization stuff
-function FurnitureCatalogue_Initialize(eventCode, addOnName)
-	if (addOnName ~= FurnitureCatalogue.name) then return end
-
-	FurnitureCatalogue.settings 	= ZO_SavedVars:NewAccountWide("FurnitureCatalogue_Settings", 2, nil, defaults)
-
-	-- setup the "source" dropdown for the menu
-	setupSourceDropdown()
-
-	FurnitureCatalogue.CreateSettings(FurnitureCatalogue.settings, defaults, FurnitureCatalogue)
-
-	FurnitureCatalogue.CharacterName = zo_strformat(GetUnitName('player'))
-
-	FurC.RegisterEvents()
-
-	FurC.InitGui()
-
	FurnitureCatalogue.CreateTooltips()
-	FurC.InitRightclickMenu()
-
-	FurC.SetupInventoryRecipeIcons()
-
-	local scanFiles = false
-	if FurC.settings.version 		< FurC.version then
-		FurC.settings.version 		= FurC.version
-		scanFiles = true
-	end
-
-	FurnitureCatalogue.ScanRecipes(scanFiles, not FurC.GetSkipInitialScan())
-	FurC.settings.databaseVersion 	= FurC.version
-	SLASH_COMMANDS["/fur"] 			= FurnitureCatalogue_Toggle
-
-	EVENT_MANAGER:UnregisterForEvent("FurnitureCatalogue", EVENT_ADD_ON_LOADED)
-
-end
-
-ZO_CreateStringId("SI_BINDING_NAME_TOGGLE_FURNITURE_CATALOGUE", "Toggle Furniture Catalogue")
-EVENT_MANAGER:RegisterForEvent("FurnitureCatalogue", EVENT_ADD_ON_LOADED, FurnitureCatalogue_Initialize)
-
+FurnitureCatalogue                = {}
+FurnitureCatalogue.name           = "FurnitureCatalogue"
+FurnitureCatalogue.author         = "manavortex"
+FurnitureCatalogue.version        = 3.1
+FurnitureCatalogue.CharacterName  = nil
+FurnitureCatalogue.settings       = {}
+
+FurC                               = FurnitureCatalogue
+
+FurC.AchievementVendors           = {}
+FurC.LuxuryFurnisher              = {}
+FurC.Recipes                      = {}
+FurC.Rolis                        = {}
+FurC.Faustina                     = {}
+FurC.RolisRecipes                 = {}
+FurC.FaustinaRecipes              = {}
+FurC.Books                        = {}
+FurC.EventItems                   = {}
+FurC.PVP                          = {}
+FurC.MiscItemSources              = {}
+
+-- versioning
+FURC_HOMESTEAD            = 2
+FURC_MORROWIND            = 3
+FURC_REACH                = 4
+FURC_CLOCKWORK            = 5
+FURC_DRAGONS              = 6
+FURC_ALTMER               = 7
+FURC_WEREWOLF             = 8
+FURC_SLAVES               = 9
+FURC_WOTL                 = 10
+
+FurC.Const                          = {
+    vendorColor   = "d68957",
+    goldColor     = "e5da40",
+    apColor       = "25C31E",
+    tvColor       = "5EA4FF",
+    voucherColor  = "82BCFF",
+}
+
+local defaults             = {
+
+  hideMats              = true,
+  dontScanTradingHouse  = false,
+  enableDebug           = false,
+
+  data                 = {},
+  filterCraftingType   = {},
+  filterQuality        = {},
+
+  resetDropdownChoice  = false,
+  useTinyUi            = false,
+  useInventoryIcons    = true,
+  fontSize             = 18,
+
+  gui                 = {
+    lastX             = 100,
+    lastY             = 100,
+    width             = 650,
+    height            = 550,
+  },
+
+  dropdownDefaults    = {
+    Source            = 1,
+    Character         = 1,
+    Version           = 1,
+  },
+
+  accountCharacters    = {},
+
+  version              = 2.0,
+
+  -- tooltips
+  disableTooltips      = false,
+  coloredTooltips      = true,
+  hideKnowledge        = false,
+
+  hideBooks            = true,
+  hideDoubtfuls        = true,
+  hideCrownstore       = true,
+  hideRumourEntry      = false,
+  hideCrownStoreEntry  = false,
+  wipeDatabase         = false,
+  startupSilently      = true,
+
+}
+
+FURC_NONE        = 1
+FURC_FAVE         = FURC_NONE +1
+FURC_CRAFTING      = FURC_FAVE +1
+FURC_CRAFTING_KNOWN    = FURC_CRAFTING +1
+FURC_CRAFTING_UNKNOWN  = FURC_CRAFTING_KNOWN +1
+FURC_VENDOR       = FURC_CRAFTING_UNKNOWN +1
+FURC_PVP         = FURC_VENDOR +1
+FURC_CROWN         = FURC_PVP +1
+FURC_RUMOUR       = FURC_CROWN +1
+FURC_LUXURY       = FURC_RUMOUR +1
+FURC_OTHER         = FURC_LUXURY +1
+FURC_ROLIS           = FURC_OTHER +1
+FURC_DROP         = FURC_ROLIS +1
+FURC_WRIT_VENDOR     = FURC_DROP +1
+FURC_JUSTICE       = FURC_WRIT_VENDOR +1
+FURC_FISHING       = FURC_JUSTICE +1
+FURC_GUILDSTORE     = FURC_FISHING +1
+FURC_FESTIVAL_DROP     = FURC_GUILDSTORE +1
+FURC_EMPTY_STRING     = ""
+
+local sourceIndicesKeys = {}
+local function getSourceIndicesKeys()
+  sourceIndicesKeys[FURC_NONE]             = "off"
+  sourceIndicesKeys[FURC_FAVE]             = "favorites"
+  sourceIndicesKeys[FURC_CRAFTING]           = "craft_all"
+  sourceIndicesKeys[FURC_CRAFTING_KNOWN]         = "craft_known"
+  sourceIndicesKeys[FURC_CRAFTING_UNKNOWN]       = "craft_unknown"
+  sourceIndicesKeys[FURC_VENDOR]             = "purch_gold"
+  sourceIndicesKeys[FURC_PVP]             = "purch_ap"
+  sourceIndicesKeys[FURC_CROWN]               = "crownstore"
+  sourceIndicesKeys[FURC_RUMOUR]               = "rumour"
+  sourceIndicesKeys[FURC_LUXURY]               = "luxury"
+  sourceIndicesKeys[FURC_OTHER]             = "other"
+  sourceIndicesKeys[FURC_WRIT_VENDOR]         = "writ_vendor"
+  return sourceIndicesKeys
+end
+FurC.GetSourceIndicesKeys = getSourceIndicesKeys
+
+local choicesSource = {}
+local function getChoicesSource()
+  choicesSource[FURC_NONE]            = GetString(SI_FURC_NONE)
+  choicesSource[FURC_FAVE]             = GetString(SI_FURC_FAVE)
+  choicesSource[FURC_CRAFTING]           = GetString(SI_FURC_CRAFTING)
+  choicesSource[FURC_CRAFTING_KNOWN]         = GetString(SI_FURC_CRAFTING_KNOWN)
+  choicesSource[FURC_CRAFTING_UNKNOWN]       = GetString(SI_FURC_CRAFTING_UNKNOWN)
+  choicesSource[FURC_VENDOR]             = GetString(SI_FURC_VENDOR)
+  choicesSource[FURC_PVP]             = GetString(SI_FURC_PVP)
+  choicesSource[FURC_WRIT_VENDOR]         = GetString(SI_FURC_STRING_WRIT_VENDOR)
+  choicesSource[FURC_CROWN]               = GetString(SI_FURC_CROWN)
+  choicesSource[FURC_RUMOUR]               = GetString(SI_FURC_RUMOUR)
+  choicesSource[FURC_LUXURY]               = GetString(SI_FURC_LUXURY)
+  choicesSource[FURC_OTHER]                 = GetString(SI_FURC_OTHER)
+
+  return choicesSource
+end
+FurC.GetChoicesSource = getChoicesSource
+
+local tooltipsSource = {}
+local function getTooltipsSource()
+  tooltipsSource[FURC_NONE]            = GetString(SI_FURC_NONE_TT)
+  tooltipsSource[FURC_FAVE]             = GetString(SI_FURC_FAVE_TT)
+  tooltipsSource[FURC_CRAFTING]           = GetString(SI_FURC_CRAFTING_TT)
+  tooltipsSource[FURC_CRAFTING_KNOWN]       = GetString(SI_FURC_CRAFTING_KNOWN_TT)
+  tooltipsSource[FURC_CRAFTING_UNKNOWN]       = GetString(SI_FURC_CRAFTING_UNKNOWN_TT)
+  tooltipsSource[FURC_VENDOR]           = GetString(SI_FURC_VENDOR_TT)
+  tooltipsSource[FURC_PVP]             = GetString(SI_FURC_PVP_TT)
+    tooltipsSource[FURC_CROWN]               = GetString(SI_FURC_CROWN_TT)
+  tooltipsSource[FURC_WRIT_VENDOR]         = GetString(SI_FURC_STRING_WRIT_VENDOR_TT)
+    tooltipsSource[FURC_RUMOUR]             = GetString(SI_FURC_RUMOUR_TT)
+    tooltipsSource[FURC_LUXURY]             = GetString(SI_FURC_LUXURY_TT)
+  tooltipsSource[FURC_OTHER]                 = GetString(SI_FURC_OTHER_TT)
+
+  return tooltipsSource
+end
+
+FurnitureCatalogue.DropdownData = {
+  ChoicesVersion  = {
+    [1] = GetString(SI_FURC_FILTER_VERSION_OFF),
+    [2] = GetString(SI_FURC_FILTER_VERSION_HS  ),
+    [3] = GetString(SI_FURC_FILTER_VERSION_M  ),
+    [4] = GetString(SI_FURC_FILTER_VERSION_R  ),
+    [5] = GetString(SI_FURC_FILTER_VERSION_CC  ),
+    [6] = GetString(SI_FURC_FILTER_VERSION_DRAGON),
+    [7] = GetString(SI_FURC_FILTER_VERSION_ALTMER),
+    [8] = GetString(SI_FURC_FILTER_VERSION_SLAVES),
+    [9] = GetString(SI_FURC_FILTER_VERSION_WEREWOLF),
+  },
+  TooltipsVersion  = {
+    [1] =  GetString(SI_FURC_FILTER_VERSION_OFF_TT),
+    [2] =  GetString(SI_FURC_FILTER_VERSION_HS_TT),
+    [3] =  GetString(SI_FURC_FILTER_VERSION_M_TT),
+    [4] =  GetString(SI_FURC_FILTER_VERSION_R_TT),
+    [5] =  GetString(SI_FURC_FILTER_VERSION_CC_TT),
+    [6] =  GetString(SI_FURC_FILTER_VERSION_DRAGON_TT),
+    [7] = GetString(SI_FURC_FILTER_VERSION_ALTMER_TT),
+    [8] = GetString(SI_FURC_FILTER_VERSION_SLAVES_TT),
+    [9] = GetString(SI_FURC_FILTER_VERSION_WEREWOLF_TT),
+  },
+  ChoicesCharacter  = {
+    [1]  = GetString(SI_FURC_FILTER_CHAR_OFF),
+  },
+  TooltipsCharacter = {
+    [1]  = GetString(SI_FURC_FILTER_CHAR_OFF_TT),
+  },
+
+  -- will be set in setupSourceDropdown
+  ChoicesSource  = {},
+  TooltipsSource   = {},
+}
+if GetAPIVersion() == 100026 then
+    FurnitureCatalogue.DropdownData.ChoicesVersion[FURC_WOTL] = GetString(SI_FURC_FILTER_VERSION_WOTL)
+    FurnitureCatalogue.DropdownData.TooltipsVersion[FURC_WOTL] = GetString(SI_FURC_FILTER_VERSION_WOTL_TT)
+end
+
+local function updateDropdownData()
+  FurnitureCatalogue.DropdownData.ChoicesSource  = getChoicesSource()
+  FurnitureCatalogue.DropdownData.TooltipsSource = getTooltipsSource()
+end
+FurnitureCatalogue.updateDropdownData = updateDropdownData
+
+local function setupSourceDropdown()
+  updateDropdownData()
+  sourceIndices = {}
+
+  for idx, key in ipairs(getSourceIndicesKeys()) do
+    sourceIndices[key] = idx
+  end
+  FurC.SourceIndices = sourceIndices
+end
+
+function FurnitureCatalogue.DebugOut(output, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+  if not FurC.GetEnableDebug() then return end
+  if a10 then
+    d(zo_strformat(output, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10))
+  elseif a9 then
+    d(zo_strformat(output, a1, a2, a3, a4, a5, a6, a7, a8, a9))
+  elseif a8 then
+    d(zo_strformat(output, a1, a2, a3, a4, a5, a6, a7, a8))
+  elseif a7 then
+    d(zo_strformat(output, a1, a2, a3, a4, a5, a6, a7))
+  elseif a6 then
+    d(zo_strformat(output, a1, a2, a3, a4, a5, a6))
+  elseif a5 then
+    d(zo_strformat(output, a1, a2, a3, a4, a5))
+  elseif a4 then
+    d(zo_strformat(output, a1, a2, a3, a4))
+  elseif a3 then
+    d(zo_strformat(output, a1, a2, a3))
+  elseif a2 then
+    d(zo_strformat(output, a1, a2))
+  elseif a1 then
+    d(zo_strformat(output, a1))
+  elseif output then
+    d(zo_strformat(output))
+  else
+    d("\n")
+  end
+end
+
+local function p(...)
+  FurC.DebugOut(...)
+end
+
+function whoami()
+  return FurnitureCatalogue.CharacterName
+end
+
+
+-- initialization stuff
+function FurnitureCatalogue_Initialize(eventCode, addOnName)
+  if (addOnName ~= FurnitureCatalogue.name) then return end
+
+  FurnitureCatalogue.settings   = ZO_SavedVars:NewAccountWide("FurnitureCatalogue_Settings", 2, nil, defaults)
+
+  -- setup the "source" dropdown for the menu
+  setupSourceDropdown()
+
+  FurnitureCatalogue.CreateSettings(FurnitureCatalogue.settings, defaults, FurnitureCatalogue)
+
+  FurnitureCatalogue.CharacterName = zo_strformat(GetUnitName('player'))
+
+  FurC.RegisterEvents()
+
+  FurC.InitGui()
+
+  FurnitureCatalogue.CreateTooltips()
+  FurC.InitRightclickMenu()
+
+  FurC.SetupInventoryRecipeIcons()
+
+  local scanFiles = false
+  if FurC.settings.version     < FurC.version then
+      FurC.settings.version     = FurC.version
+    scanFiles = true
+  end
+
+  FurnitureCatalogue.ScanRecipes(scanFiles, not FurC.GetSkipInitialScan())
+  FurC.settings.databaseVersion   = FurC.version
+  SLASH_COMMANDS["/fur"]       = FurnitureCatalogue_Toggle
+
+  FurC.SetFilter(true)
+
+  EVENT_MANAGER:UnregisterForEvent("FurnitureCatalogue", EVENT_ADD_ON_LOADED)
+
+end
+
+ZO_CreateStringId("SI_BINDING_NAME_TOGGLE_FURNITURE_CATALOGUE", "Toggle Furniture Catalogue")
+EVENT_MANAGER:RegisterForEvent("FurnitureCatalogue", EVENT_ADD_ON_LOADED, FurnitureCatalogue_Initialize)
+
diff --git a/xml/Bindings.xml b/xml/Bindings.xml
index 5e8856b..898bda4 100644
--- a/xml/Bindings.xml
+++ b/xml/Bindings.xml
@@ -3,8 +3,8 @@
         <Category name="Furniture Catalogue">
             <Action name="TOGGLE_FURNITURE_CATALOGUE">
                 <Down>
-					FurnitureCatalogue_Toggle()
-				</Down>
+          FurnitureCatalogue_Toggle()
+        </Down>
             </Action>
         </Category>
     </Layer>
diff --git a/xml/FurnitureCatalogue.xml b/xml/FurnitureCatalogue.xml
index de384c3..b555e6e 100644
--- a/xml/FurnitureCatalogue.xml
+++ b/xml/FurnitureCatalogue.xml
@@ -1,365 +1,365 @@
 <GuiXml>
-	<Controls>
-		<TopLevelControl name="FurCGui" clampedToScreen="true"  movable="true" mouseEnabled="true" hidden="true" resizeHandleSize="10">
-			<DimensionConstraints x="800" y="500" minX="850" minY="200" maxY="2000"/>
-			<Anchor point="TOPRIGHT" relativeTo="GUI_ROOT" relativePoint="TOPRIGHT" offsetX="-25" offsetY="40" />
-			<OnMoveStop>FurC.SaveFrameInfo("onMoveStop")</OnMoveStop>
-
-			<OnResizeStop>FurC.SaveFrameInfo("onResizeStop")</OnResizeStop>
-			<Controls>
-				<Backdrop name="$(parent)_BG" inherits="ZO_DefaultBackdrop" >
-					<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
-					<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT"/>
-				</Backdrop>
-
-				<Control name="$(parent)_Header" resizeToFitDescendents="true" >
-					<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
-					<Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT"/>
-
-					<Controls>
-						<Control name="$(parent)_Bar1">
-							<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
-							<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetY="50"/>
-							<Controls>
-								<Button name="$(parent)_Feedback">
-									<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="20" offsetY="10"/>
-									<OnMouseEnter>FurC.GuiShowTooltip(self, "Click to say thank you:\nLeft: 2k\nRight: 10k\nMiddle: 25k\nYour feedback and/or donation is appreciated!")</OnMouseEnter>
-									<OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
-									<OnMouseUp>FurC.Donate(self, button)</OnMouseUp>
-									<Dimensions x="40" y="40" />
-									<Textures
-										normal		="esoui/art/mail/mail_tabicon_compose_up.dds"
-										pressed		="esoui/art/mail/mail_tabicon_compose_down.dds"
-										mouseOver	="esoui/art/mail/mail_tabicon_compose_over.dds"
-									/>
-								</Button>
-								<Control name ="FurC_Label" resizeToFitDescendents="true">
-								<Anchor point="TOP" relativeTo="$(parent)" relativePoint="TOP" offsetX="0" offsetY="10" />
-								<Dimensions y="54"/>
-									<Controls>
-										<Label name="$(parent)_1" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="-Furniture Catalogue: " >
-											<Anchor point="LEFT" relativeTo="$(parent)" relativePoint="LEFT" offsetX="-40"/>
-										</Label>
-										<Label name="FurC_RecipeCount" font="$(STONE_TABLET_FONT)|24|soft-shadow-thick" mouseEnabled="true" resizeToFitDescendents="true">
-											<Anchor point="LEFT" 	relativeTo="$(parent)_1" relativePoint="RIGHT" offsetX="10" offsetY="1"/>
-											<OnMouseEnter>	FurC.GuiShowTooltip(self, "number of recipes below")</OnMouseEnter>
-											<OnMouseExit>	FurC.GuiHideTooltip(self)</OnMouseExit>
-											<OnMouseUp>FurC.RefreshCounter()</OnMouseUp>
-										</Label>
-										<Label name="$(parent)_2" font="$(STONE_TABLET_FONT)|26|soft-shadow-thick" text=" entries -" >
-											<Anchor point="LEFT" relativeTo="FurC_RecipeCount" relativePoint="RIGHT" offsetY="-1"  />
-										</Label>
-									</Controls>
-								</Control>
-								<Button name="$(parent)_Hide">
-									<Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="-15" offsetY="15"/>
-									<OnMouseEnter>FurC.GuiShowTooltip(self, "Hide window")</OnMouseEnter>
-									<OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
-									<OnMouseUp>FurnitureCatalogue_Toggle()</OnMouseUp>
-									<Dimensions x="25" y="25" />
-									<Textures
-										normal		="/esoui/art/buttons/decline_up.dds"
-										pressed		="/esoui/art/buttons/decline_down.dds"
-										mouseOver	="/esoui/art/buttons/decline_over.dds"
-									/>
-								</Button>
-
-								<Button name="$(parent)_Reload">
-									<Anchor point="TOPRIGHT" relativeTo="$(parent)_Hide" relativePoint="TOPLEFT" offsetX="-25" offsetY="-5"/>
-									<OnMouseEnter>FurC.GuiShowTooltip(self, "Click: Scan character knowledge to database\n\nRight-click: Re-scans data files\n\nMiddle-click: Re-create database (will ask you first)")</OnMouseEnter>
-									<OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
-									<OnMouseUp>FurC.GUIButtonRefreshOnMouseUp(self, button)</OnMouseUp>
-
-
-									<Dimensions x="35" y="35" />
-									<Textures
-										normal		="/esoui/art/help/help_tabicon_feedback_up.dds"
-										pressed		="/esoui/art/help/help_tabicon_feedback_down.dds "
-										mouseOver	="/esoui/art/help/help_tabicon_feedback_over.dds"
-									/>
-								</Button>
-								<Button name="$(parent)_TemplateTiny">
-									<Anchor point="TOPRIGHT" relativeTo="$(parent)_Reload" relativePoint="TOPLEFT" offsetX="-15" offsetY="-2"/>
-									<OnMouseEnter>FurC.GuiShowTooltip(self, "change template")</OnMouseEnter>
-									<OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
-									<OnMouseUp>FurC.ChangeTemplateFromButton(true)</OnMouseUp>
-
-									<Dimensions x="35" y="35" />
-									<Textures
-										normal		="/esoui/art/buttons/minus_up.dds"
-										pressed		="/esoui/art/buttons/minus_down.dds"
-										mouseOver	="/esoui/art/buttons/minus_over.dds"
-									/>
-								</Button>
-
-								<Button name="$(parent)_TemplateLarge" hidden="true">
-									<Anchor point="TOPRIGHT" relativeTo="$(parent)_Reload" relativePoint="TOPLEFT" offsetX="-15" offsetY="-2"/>
-
-									<OnMouseEnter>FurC.GuiShowTooltip(self, "change template")</OnMouseEnter>
-									<OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
-									<OnMouseUp>FurC.ChangeTemplateFromButton(false)</OnMouseUp>
-
-									<Dimensions x="35" y="35" />
-									<Textures
-										normal		="/esoui/art/buttons/plus_up.dds"
-										pressed		="/esoui/art/buttons/plus_down.dds"
-										mouseOver	="/esoui/art/buttons/plus_over.dds"
-									/>
-								</Button>
-
-							</Controls>
-						</Control>
-						<Control name="$(parent)_Bar2">
-							<Anchor point="TOPLEFT" relativeTo="$(parent)_Bar1" relativePoint="BOTTOMLEFT" offsetX="20"/>
-							<Anchor point="TOPRIGHT" relativeTo="$(parent)_Bar1" relativePoint="BOTTOMRIGHT" offsetX="-20" />
-							<Dimensions y="35" />
-
-							<Controls>
-								<Control name="FurC_DropdownSource" inherits="ZO_ComboBox" mouseEnabled="true" >
-									<Anchor point="TOPLEFT" 	relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="9" offsetY="10"/>
-									<Dimensions x="230" y="28" />
-									<OnShow>		FurC.GuiSetupDropdown(self)</OnShow>
-									<OnMouseEnter>	FurC.GuiShowTooltip(self, "Filter: Knowledge and source", true)</OnMouseEnter>
-									<OnMouseExit>	FurC.GuiHideTooltip(self)</OnMouseExit>
-								</Control>
-
-								<Control name="FurC_QualityFilter" mouseEnabled="true">
-									<Anchor point="TOPLEFT" 	relativeTo="FurC_DropdownSource" relativePoint="TOPRIGHT" offsetX = "38" offsetY="3"/>
-									<Anchor point="BOTTOMRIGHT" relativeTo="FurC_DropdownSource"  relativePoint="BOTTOMRIGHT" offsetX = "300" />
-								</Control>
-
-								<Control name="FurC_DropdownVersion" inherits="ZO_ComboBox" mouseEnabled="true" >
-									<Anchor point="TOPLEFT" 	relativeTo="FurC_QualityFilter" relativePoint="TOPRIGHT" offsetX="10"/>
-									<Dimensions x="235" y="28" />
-									<OnShow>		FurC.GuiSetupDropdown(self)</OnShow>
-									<OnMouseEnter>	FurC.GuiShowTooltip(self, "Filter: game version", true)</OnMouseEnter>
-									<OnMouseExit>	FurC.GuiHideTooltip(self)</OnMouseExit>
-								</Control>
-							</Controls>
-						</Control>
-						<!-- 3rd bar -->
-						<Control name="$(parent)_Bar3" mouseEnabled="true">
-
-							<Dimensions y="55" />
-							<Anchor point="TOPLEFT" relativeTo="$(parent)_Bar2" relativePoint="BOTTOMLEFT" offsetY="10"/>
-							<Anchor point="TOPRIGHT" relativeTo="$(parent)_Bar2" relativePoint="BOTTOMRIGHT"/>
-							<Dimensions y="45" />
-							<Controls>
-								<!-- control above: FurC_DropdownSource -->
-								<Control name="FurC_DropdownCharacter" inherits="ZO_ComboBox" mouseEnabled="true" >
-									<Anchor point="TOPLEFT" 	relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="9" offsetY="10"/>
-									<Dimensions x="230" y="28" />
-									<OnShow>		FurC.GuiSetupDropdown(self)</OnShow>
-									<OnMouseEnter>	FurC.GuiShowTooltip(self, "Filter: Character", true)</OnMouseEnter>
-									<OnMouseExit>	FurC.GuiHideTooltip(self)</OnMouseExit>
-								</Control>
-
-								<!-- Crafting type filter -->
-								<Control name="FurC_TypeFilter" mouseEnabled="true" resizeToFitDescendents="true">
-									<Anchor point="TOPLEFT" relativeTo="FurC_DropdownCharacter" relativePoint="TOPRIGHT" offsetX="17" offsetY="-5" />
-									<Anchor point="BOTTOMRIGHT" relativeTo="FurC_DropdownCharacter" relativePoint="BOTTOMRIGHT" offsetX="340"/>
-
-								</Control>
-
-								<!-- control above: FurC_DropdownVersion -->
-								<Control name="FurC_Search" mouseEnabled="true">
-
-									<Anchor point="TOPLEFT" 	relativeTo="FurC_TypeFilter" relativePoint="TOPRIGHT" offsetX="9" offsetY="10"/>
-									<Anchor point="BOTTOMLEFT" 	relativeTo="FurC_TypeFilter" relativePoint="BOTTOMRIGHT" offsetX="9" />
-									<Dimensions x="215" />
-									<Controls>
-
-										<EditBox name="$(parent)Box"  inherits="ZO_InventorySearchBox" >
-
-											<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-40" offsetY="-10"/>
-											<Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="-20" offsetY="0"/>
-
-											<OnTextChanged> FurC.GuiSetSearchboxTextFrom(self) </OnTextChanged>
-											<OnMouseUp> FurC.GuiOnSearchBoxClick(self, button) </OnMouseUp>
-											<OnMouseDoubleClick> FurC.GuiOnSearchBoxClick(self, nil, true) </OnMouseDoubleClick>
-											<OnFocusLost> FurC.GuiOnSearchBoxFocusOut(self) </OnFocusLost>
-
-										</EditBox>
-									</Controls>
-								</Control>
-
-
-
-
-
-							</Controls>
-						</Control>
-
-
-						<!-- #4, sorts the list holder -->
-						<Control name="$(parent)_SortBar" mouseEnabled="true">
-
-							<Anchor point="TOPLEFT" relativeTo="$(parent)_Bar3" relativePoint="BOTTOMLEFT" offsetX="25" offsetY="20"/>
-							<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)_Bar3" relativePoint="BOTTOMRIGHT" offsetY="40"/>
-							<Dimensions y="20" />
-
-							<Controls>
-								<Label name="$(parent)_Name" mouseEnabled="true" font="ZoFontGameSmall" text="Name" >
-									<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" />
-									<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMLEFT" offsetX="330"/>
-									<OnMouseUp>FurC.GuiOnSort("itemName")</OnMouseUp>
-									<Controls>
-										<Button name="$(parent)_Button" verticalAlignment="LEFT"  mouseEnabled="true">
-											<Dimensions y="20"  x="20"/>
-											<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-25" />
-											<Textures
-												normal="esoui/art/miscellaneous/list_sortheader_icon_neutral.dds"
-												mouseOver="esoui/art/miscellaneous/list_sortheader_icon_over.dds"
-											/>
-											</Button>
-									</Controls>
-								</Label>
-
-								<Label name="$(parent)_Quality" mouseEnabled="true" font="ZoFontGameSmall" text="Quality" >
-									<Anchor point="TOPLEFT" relativeTo="$(parent)_Name" relativePoint="TOPRIGHT" />
-									<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT"/>
-									<OnMouseUp>FurC.GuiOnSort("itemQuality")</OnMouseUp>
-									<Controls>
-										<Button name="$(parent)_Button" verticalAlignment="LEFT"  mouseEnabled="true">
-											<Dimensions y="20"  x="20"/>
-											<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-25" />
-											<Textures
-												normal="esoui/art/miscellaneous/list_sortheader_icon_neutral.dds"
-												mouseOver="esoui/art/miscellaneous/list_sortheader_icon_over.dds"
-											/>
-										</Button>
-									</Controls>
-								</Label>
-
-
-							</Controls>
-
-						</Control>
-
-					</Controls>
-				<!-- $(parent)_Header -->
-				</Control>
-
-				<Label name="$(parent)_Wait" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="Please wait... loading data" >
-					<Anchor point="TOP" 	relativeTo="$(parent)_Header" 	relativePoint="BOTTOM" 	offsetY="35" />
-				</Label>
-				<Label name="$(parent)_Empty" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="No results, please check filter" hidden="true" >
-					<Anchor point="TOP" 	relativeTo="$(parent)_Header" 	relativePoint="BOTTOM" 	offsetY="35" />
-				</Label>
-
-				<Control name="$(parent)_ListHolder" mouseEnabled="true">
-
-					<DimensionConstraints  minY="52"/>
-					<Anchor point="TOPLEFT" 	relativeTo="$(parent)_Header" 	relativePoint="BOTTOMLEFT" 	offsetX="25" />
-					<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" 			relativePoint="BOTTOMRIGHT" offsetX="-35" offsetY="-20"/>
-
-					<OnMouseWheel>FurC.GuiOnScroll(self, delta)</OnMouseWheel>
-
-					<Controls>
-						<Slider name="$(parent)_Slider" mouseEnabled="true" step="1" inherits="ZO_VerticalScrollbarBase">
-							<Anchor point="TOPRIGHT" 	relativeTo="$(parent)" 	relativePoint="TOPRIGHT" 	offsetX="20"	/>
-							<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" 	relativePoint="BOTTOMRIGHT" offsetX="20" offsetY="-25"	/>
-
-							<OnMouseDown>self.locked = false</OnMouseDown>
-							<OnMouseUp>self.locked = true</OnMouseUp>
-							<OnValueChanged>FurC.GuiOnSliderUpdate(self, value)</OnValueChanged>
-						</Slider>
-					</Controls>
-
-				</Control>
-			</Controls>
-
-		</TopLevelControl>
-
-		<Button name="FurC_QualityFilterButton" virtual="true">
-			<Dimensions x="35" y="35" />
-			<OnMouseEnter>	FurC.GuiVirtualMouseOver(self)	</OnMouseEnter>
-			<OnMouseExit>	FurC.GuiVirtualMouseOut(self)	</OnMouseExit>
-			<OnMouseUp>		FurC.GuiQualityMouseUp(self, button)	</OnMouseUp>
-		</Button>
-		<Button name="FurC_CraftingTypeFilterButton" virtual="true">
-			<Dimensions x="40" y="40" />
-			<OnMouseEnter>	FurC.GuiVirtualMouseOver(self)	</OnMouseEnter>
-			<OnMouseExit>	FurC.GuiVirtualMouseOut(self)	</OnMouseExit>
-			<OnMouseUp>		FurC.GuiCraftingTypeMouseUp(self)	</OnMouseUp>
-		</Button>
-
-		<Control name="FurC_SlotTemplate" inherits="ZO_ListInventorySlotBehavior" virtual="true" mouseEnabled="true">
-			<Dimensions x="300"/>
-			<OnMouseEnter>			FurC.GuiLineOnMouseEnter(self)				</OnMouseEnter>
-			<OnMouseExit>			FurC.GuiLineOnMouseExit(self)				</OnMouseExit>
-			<OnMouseUp>				FurC.OnControlMouseUp(self, button)			</OnMouseUp>
-			<OnMouseDoubleClick>	FurC.OnControlDoubleClick(self) 			</OnMouseDoubleClick>
-
-			<Controls>
-				<Texture name="$(parent)Bg" textureFile="EsoUI/Art/Miscellaneous/listItem_backdrop.dds" alpha="0.4">
-					<AnchorFill />
-					<TextureCoords left="0" right="1" top="0" bottom=".8125" />
-				</Texture>
-
-				<Button name="$(parent)Button" inherits="ZO_InventorySlotNoMouseover" hidden="false">
-					<Dimensions x="40" y="40" />
-					<Anchor point="TOPLEFT" relativePoint="TOPLEFT" offsetX="-10" offsetY="3" />
-				</Button>
-
-				<Label name="$(parent)Name" font="ZoFontGameShadow" wrapMode="ELLIPSIS" verticalAlignment="CENTER">
-					<Dimensions y="50"  x="280"/>
-					<Anchor point="TOPLEFT" 	relativeTo="$(parent)Button" relativePoint="TOPRIGHT" 		offsetX="18"/>
-					<Anchor point="BOTTOMLEFT" 	relativeTo="$(parent)Button" relativePoint="BOTTOMRIGHT" 	offsetX="0"/>
-				</Label>
-				<Label name="$(parent)Mats" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="LEFT">
-					<Dimensions y="50" />
-					<Anchor point="TOPLEFT" relativeTo="$(parent)Name" relativePoint="TOPRIGHT" offsetX="18"/>
-					<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="0" offsetY="-10"/>
-				</Label>
-
-			</Controls>
-		</Control>
-
-		<Control name="FurC_SlotTemplateTiny" inherits="ZO_ListInventorySlotBehavior" virtual="true" mouseEnabled="true">
-			<Dimensions x="300" />
-			<OnMouseEnter>			FurC.GuiLineOnMouseEnter(self)				</OnMouseEnter>
-			<OnMouseExit>			FurC.GuiLineOnMouseExit(self)				</OnMouseExit>
-			<OnMouseUp>				FurC.OnControlMouseUp(self, button)			</OnMouseUp>
-			<OnMouseDoubleClick>	FurC.OnControlDoubleClick(self) 			</OnMouseDoubleClick>
-
-			<Controls>
-				<Texture name="$(parent)Bg" textureFile="EsoUI/Art/Miscellaneous/listItem_backdrop.dds" alpha="0.4">
-					<AnchorFill />
-					<TextureCoords left="0" right="1" top="0" bottom=".8125" />
-				</Texture>
-
-				<Button name="$(parent)Button" inherits="ZO_InventorySlotNoMouseover" hidden="true">
-					<Dimensions x="1"/>
-					<Anchor point="TOPLEFT" relativePoint="TOPLEFT" offsetX="0" offsetY="3" />
-				</Button>
-				<Label name="$(parent)Name" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="CENTER">
-					<Dimensions y="50"  x="230"/>
-					<Anchor point="TOPLEFT" 	relativeTo="$(parent)Button" relativePoint="TOPRIGHT" />
-					<Anchor point="BOTTOMLEFT" 	relativeTo="$(parent)Button" relativePoint="BOTTOMRIGHT" />
-				</Label>
-				<Label name="$(parent)Mats" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="LEFT">
-					<Dimensions y="50"  />
-					<Anchor point="TOPLEFT" 	relativeTo="$(parent)Name" relativePoint="TOPRIGHT" offsetX="18"/>
-					<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="0" offsetY="-10"/>
-				</Label>
-
-			</Controls>
-		</Control>
-
-		<Texture name="FurC_SlotIconKnownNo" color="FF0000" mouseEnabled="true" textureFile="esoui/art/buttons/decline_up.dds" virtual="true">
-			<Dimensions x="24" y="24" />
-		</Texture>
-		<Texture name="FurC_SlotIconKnownYes" color="00FF00" mouseEnabled="true" textureFile="esoui/art/cadwell/check.dds" virtual="true">
-			<Dimensions x="24" y="24" />
-		</Texture>
+  <Controls>
+    <TopLevelControl name="FurCGui" clampedToScreen="true"  movable="true" mouseEnabled="true" hidden="true" resizeHandleSize="10">
+      <DimensionConstraints x="800" y="500" minX="850" minY="200" maxY="2000"/>
+      <Anchor point="TOPRIGHT" relativeTo="GUI_ROOT" relativePoint="TOPRIGHT" offsetX="-25" offsetY="40" />
+      <OnMoveStop>FurC.SaveFrameInfo("onMoveStop")</OnMoveStop>
+
+      <OnResizeStop>FurC.SaveFrameInfo("onResizeStop")</OnResizeStop>
+      <Controls>
+        <Backdrop name="$(parent)_BG" inherits="ZO_DefaultBackdrop" >
+          <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT"/>
+        </Backdrop>
+
+        <Control name="$(parent)_Header" resizeToFitDescendents="true" >
+          <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
+          <Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT"/>
+
+          <Controls>
+            <Control name="$(parent)_Bar1">
+              <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
+              <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetY="50"/>
+              <Controls>
+                <Button name="$(parent)_Feedback">
+                  <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="20" offsetY="10"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "Click to say thank you:\nLeft: 2k\nRight: 10k\nMiddle: 25k\nYour feedback and/or donation is appreciated!")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.Donate(self, button)</OnMouseUp>
+                  <Dimensions x="40" y="40" />
+                  <Textures
+                    normal    ="esoui/art/mail/mail_tabicon_compose_up.dds"
+                    pressed    ="esoui/art/mail/mail_tabicon_compose_down.dds"
+                    mouseOver  ="esoui/art/mail/mail_tabicon_compose_over.dds"
+                  />
+                </Button>
+                <Control name ="FurC_Label" resizeToFitDescendents="true">
+                <Anchor point="TOP" relativeTo="$(parent)" relativePoint="TOP" offsetX="0" offsetY="10" />
+                <Dimensions y="54"/>
+                  <Controls>
+                    <Label name="$(parent)_1" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="-Furniture Catalogue: " >
+                      <Anchor point="LEFT" relativeTo="$(parent)" relativePoint="LEFT" offsetX="-40"/>
+                    </Label>
+                    <Label name="FurC_RecipeCount" font="$(STONE_TABLET_FONT)|24|soft-shadow-thick" mouseEnabled="true" resizeToFitDescendents="true">
+                      <Anchor point="LEFT"   relativeTo="$(parent)_1" relativePoint="RIGHT" offsetX="10" offsetY="1"/>
+                      <OnMouseEnter>  FurC.GuiShowTooltip(self, "number of recipes below")</OnMouseEnter>
+                      <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                      <OnMouseUp>FurC.RefreshCounter()</OnMouseUp>
+                    </Label>
+                    <Label name="$(parent)_2" font="$(STONE_TABLET_FONT)|26|soft-shadow-thick" text=" entries -" >
+                      <Anchor point="LEFT" relativeTo="FurC_RecipeCount" relativePoint="RIGHT" offsetY="-1"  />
+                    </Label>
+                  </Controls>
+                </Control>
+                <Button name="$(parent)_Hide">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="-15" offsetY="15"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "Hide window")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurnitureCatalogue_Toggle()</OnMouseUp>
+                  <Dimensions x="25" y="25" />
+                  <Textures
+                    normal    ="/esoui/art/buttons/decline_up.dds"
+                    pressed    ="/esoui/art/buttons/decline_down.dds"
+                    mouseOver  ="/esoui/art/buttons/decline_over.dds"
+                  />
+                </Button>
+
+                <Button name="$(parent)_Reload">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)_Hide" relativePoint="TOPLEFT" offsetX="-25" offsetY="-5"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "Click: Scan character knowledge to database\n\nRight-click: Re-scans data files\n\nMiddle-click: Re-create database (will ask you first)")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.GUIButtonRefreshOnMouseUp(self, button)</OnMouseUp>
+
+
+                  <Dimensions x="35" y="35" />
+                  <Textures
+                    normal    ="/esoui/art/help/help_tabicon_feedback_up.dds"
+                    pressed    ="/esoui/art/help/help_tabicon_feedback_down.dds "
+                    mouseOver  ="/esoui/art/help/help_tabicon_feedback_over.dds"
+                  />
+                </Button>
+                <Button name="$(parent)_TemplateTiny">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)_Reload" relativePoint="TOPLEFT" offsetX="-15" offsetY="-2"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "change template")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.ChangeTemplateFromButton(true)</OnMouseUp>
+
+                  <Dimensions x="35" y="35" />
+                  <Textures
+                    normal    ="/esoui/art/buttons/minus_up.dds"
+                    pressed    ="/esoui/art/buttons/minus_down.dds"
+                    mouseOver  ="/esoui/art/buttons/minus_over.dds"
+                  />
+                </Button>
+
+                <Button name="$(parent)_TemplateLarge" hidden="true">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)_Reload" relativePoint="TOPLEFT" offsetX="-15" offsetY="-2"/>
+
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "change template")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.ChangeTemplateFromButton(false)</OnMouseUp>
+
+                  <Dimensions x="35" y="35" />
+                  <Textures
+                    normal    ="/esoui/art/buttons/plus_up.dds"
+                    pressed    ="/esoui/art/buttons/plus_down.dds"
+                    mouseOver  ="/esoui/art/buttons/plus_over.dds"
+                  />
+                </Button>
+
+              </Controls>
+            </Control>
+            <Control name="$(parent)_Bar2">
+              <Anchor point="TOPLEFT" relativeTo="$(parent)_Bar1" relativePoint="BOTTOMLEFT" offsetX="20"/>
+              <Anchor point="TOPRIGHT" relativeTo="$(parent)_Bar1" relativePoint="BOTTOMRIGHT" offsetX="-20" />
+              <Dimensions y="35" />
+
+              <Controls>
+                <Control name="FurC_DropdownSource" inherits="ZO_ComboBox" mouseEnabled="true" >
+                  <Anchor point="TOPLEFT"   relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="9" offsetY="10"/>
+                  <Dimensions x="230" y="28" />
+                  <OnShow>    FurC.GuiSetupDropdown(self)</OnShow>
+                  <OnMouseEnter>  FurC.GuiShowTooltip(self, "Filter: Knowledge and source", true)</OnMouseEnter>
+                  <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                </Control>
+
+                <Control name="FurC_QualityFilter" mouseEnabled="true">
+                  <Anchor point="TOPLEFT"   relativeTo="FurC_DropdownSource" relativePoint="TOPRIGHT" offsetX = "38" offsetY="3"/>
+                  <Anchor point="BOTTOMRIGHT" relativeTo="FurC_DropdownSource"  relativePoint="BOTTOMRIGHT" offsetX = "300" />
+                </Control>
+
+                <Control name="FurC_DropdownVersion" inherits="ZO_ComboBox" mouseEnabled="true" >
+                  <Anchor point="TOPLEFT"   relativeTo="FurC_QualityFilter" relativePoint="TOPRIGHT" offsetX="10"/>
+                  <Dimensions x="235" y="28" />
+                  <OnShow>    FurC.GuiSetupDropdown(self)</OnShow>
+                  <OnMouseEnter>  FurC.GuiShowTooltip(self, "Filter: game version", true)</OnMouseEnter>
+                  <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                </Control>
+              </Controls>
+            </Control>
+            <!-- 3rd bar -->
+            <Control name="$(parent)_Bar3" mouseEnabled="true">
+
+              <Dimensions y="55" />
+              <Anchor point="TOPLEFT" relativeTo="$(parent)_Bar2" relativePoint="BOTTOMLEFT" offsetY="10"/>
+              <Anchor point="TOPRIGHT" relativeTo="$(parent)_Bar2" relativePoint="BOTTOMRIGHT"/>
+              <Dimensions y="45" />
+              <Controls>
+                <!-- control above: FurC_DropdownSource -->
+                <Control name="FurC_DropdownCharacter" inherits="ZO_ComboBox" mouseEnabled="true" >
+                  <Anchor point="TOPLEFT"   relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="9" offsetY="10"/>
+                  <Dimensions x="230" y="28" />
+                  <OnShow>    FurC.GuiSetupDropdown(self)</OnShow>
+                  <OnMouseEnter>  FurC.GuiShowTooltip(self, "Filter: Character", true)</OnMouseEnter>
+                  <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                </Control>
+
+                <!-- Crafting type filter -->
+                <Control name="FurC_TypeFilter" mouseEnabled="true" resizeToFitDescendents="true">
+                  <Anchor point="TOPLEFT" relativeTo="FurC_DropdownCharacter" relativePoint="TOPRIGHT" offsetX="17" offsetY="-5" />
+                  <Anchor point="BOTTOMRIGHT" relativeTo="FurC_DropdownCharacter" relativePoint="BOTTOMRIGHT" offsetX="340"/>
+
+                </Control>
+
+                <!-- control above: FurC_DropdownVersion -->
+                <Control name="FurC_Search" mouseEnabled="true">
+
+                  <Anchor point="TOPLEFT"   relativeTo="FurC_TypeFilter" relativePoint="TOPRIGHT" offsetX="9" offsetY="10"/>
+                  <Anchor point="BOTTOMLEFT"   relativeTo="FurC_TypeFilter" relativePoint="BOTTOMRIGHT" offsetX="9" />
+                  <Dimensions x="215" />
+                  <Controls>
+
+                    <EditBox name="$(parent)Box"  inherits="ZO_InventorySearchBox" >
+
+                      <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-40" offsetY="-10"/>
+                      <Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="-20" offsetY="0"/>
+
+                      <OnTextChanged>FurC.GuiSetSearchboxTextFrom(self)</OnTextChanged>
+                      <OnMouseUp>FurC.GuiOnSearchBoxClick(self, button)</OnMouseUp>
+                      <OnMouseDoubleClick>FurC.GuiOnSearchBoxClick(self, nil, true)</OnMouseDoubleClick>
+                      <OnFocusLost>FurC.GuiOnSearchBoxFocusOut(self)</OnFocusLost>
+
+                    </EditBox>
+                  </Controls>
+                </Control>
+
+
+
+
+
+              </Controls>
+            </Control>
+
+
+            <!-- #4, sorts the list holder -->
+            <Control name="$(parent)_SortBar" mouseEnabled="true">
+
+              <Anchor point="TOPLEFT" relativeTo="$(parent)_Bar3" relativePoint="BOTTOMLEFT" offsetX="25" offsetY="20"/>
+              <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)_Bar3" relativePoint="BOTTOMRIGHT" offsetY="40"/>
+              <Dimensions y="20" />
+
+              <Controls>
+                <Label name="$(parent)_Name" mouseEnabled="true" font="ZoFontGameSmall" text="Name" >
+                  <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" />
+                  <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMLEFT" offsetX="330"/>
+                  <OnMouseUp>FurC.GuiOnSort("itemName")</OnMouseUp>
+                  <Controls>
+                    <Button name="$(parent)_Button" verticalAlignment="LEFT"  mouseEnabled="true">
+                      <Dimensions y="20"  x="20"/>
+                      <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-25" />
+                      <Textures
+                        normal="esoui/art/miscellaneous/list_sortheader_icon_neutral.dds"
+                        mouseOver="esoui/art/miscellaneous/list_sortheader_icon_over.dds"
+                      />
+                      </Button>
+                  </Controls>
+                </Label>
+
+                <Label name="$(parent)_Quality" mouseEnabled="true" font="ZoFontGameSmall" text="Quality" >
+                  <Anchor point="TOPLEFT" relativeTo="$(parent)_Name" relativePoint="TOPRIGHT" />
+                  <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT"/>
+                  <OnMouseUp>FurC.GuiOnSort("itemQuality")</OnMouseUp>
+                  <Controls>
+                    <Button name="$(parent)_Button" verticalAlignment="LEFT"  mouseEnabled="true">
+                      <Dimensions y="20"  x="20"/>
+                      <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-25" />
+                      <Textures
+                        normal="esoui/art/miscellaneous/list_sortheader_icon_neutral.dds"
+                        mouseOver="esoui/art/miscellaneous/list_sortheader_icon_over.dds"
+                      />
+                    </Button>
+                  </Controls>
+                </Label>
+
+
+              </Controls>
+
+            </Control>
+
+          </Controls>
+        <!-- $(parent)_Header -->
+        </Control>
+
+        <Label name="$(parent)_Wait" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="Please wait... loading data" >
+          <Anchor point="TOP"   relativeTo="$(parent)_Header"   relativePoint="BOTTOM"   offsetY="35" />
+        </Label>
+        <Label name="$(parent)_Empty" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="No results, please check filter" hidden="true" >
+          <Anchor point="TOP"   relativeTo="$(parent)_Header"   relativePoint="BOTTOM"   offsetY="35" />
+        </Label>
+
+        <Control name="$(parent)_ListHolder" mouseEnabled="true">
+
+          <DimensionConstraints  minY="52"/>
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)_Header"   relativePoint="BOTTOMLEFT"   offsetX="25" />
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)"       relativePoint="BOTTOMRIGHT" offsetX="-35" offsetY="-20"/>
+
+          <OnMouseWheel>FurC.GuiOnScroll(self, delta)</OnMouseWheel>
+
+          <Controls>
+            <Slider name="$(parent)_Slider" mouseEnabled="true" step="1" inherits="ZO_VerticalScrollbarBase">
+              <Anchor point="TOPRIGHT"   relativeTo="$(parent)"   relativePoint="TOPRIGHT"   offsetX="20"  />
+              <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)"   relativePoint="BOTTOMRIGHT" offsetX="20" offsetY="-25"  />
+
+              <OnMouseDown>self.locked = false</OnMouseDown>
+              <OnMouseUp>self.locked = true</OnMouseUp>
+              <OnValueChanged>FurC.GuiOnSliderUpdate(self, value)</OnValueChanged>
+            </Slider>
+          </Controls>
+
+        </Control>
+      </Controls>
+
+    </TopLevelControl>
+
+    <Button name="FurC_QualityFilterButton" virtual="true">
+      <Dimensions x="35" y="35" />
+      <OnMouseEnter>  FurC.GuiVirtualMouseOver(self)  </OnMouseEnter>
+      <OnMouseExit>  FurC.GuiVirtualMouseOut(self)  </OnMouseExit>
+      <OnMouseUp>    FurC.GuiQualityMouseUp(self, button)  </OnMouseUp>
+    </Button>
+    <Button name="FurC_CraftingTypeFilterButton" virtual="true">
+      <Dimensions x="40" y="40" />
+      <OnMouseEnter>  FurC.GuiVirtualMouseOver(self)  </OnMouseEnter>
+      <OnMouseExit>  FurC.GuiVirtualMouseOut(self)  </OnMouseExit>
+      <OnMouseUp>    FurC.GuiCraftingTypeMouseUp(self)  </OnMouseUp>
+    </Button>
+
+    <Control name="FurC_SlotTemplate" inherits="ZO_ListInventorySlotBehavior" virtual="true" mouseEnabled="true">
+      <Dimensions x="300"/>
+      <OnMouseEnter>      FurC.GuiLineOnMouseEnter(self)        </OnMouseEnter>
+      <OnMouseExit>      FurC.GuiLineOnMouseExit(self)        </OnMouseExit>
+      <OnMouseUp>        FurC.OnControlMouseUp(self, button)      </OnMouseUp>
+      <OnMouseDoubleClick>  FurC.OnControlDoubleClick(self)       </OnMouseDoubleClick>
+
+      <Controls>
+        <Texture name="$(parent)Bg" textureFile="EsoUI/Art/Miscellaneous/listItem_backdrop.dds" alpha="0.4">
+          <AnchorFill />
+          <TextureCoords left="0" right="1" top="0" bottom=".8125" />
+        </Texture>
+
+        <Button name="$(parent)Button" inherits="ZO_InventorySlotNoMouseover" hidden="false">
+          <Dimensions x="40" y="40" />
+          <Anchor point="TOPLEFT" relativePoint="TOPLEFT" offsetX="-10" offsetY="3" />
+        </Button>
+
+        <Label name="$(parent)Name" font="ZoFontGameShadow" wrapMode="ELLIPSIS" verticalAlignment="CENTER">
+          <Dimensions y="50"  x="280"/>
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)Button" relativePoint="TOPRIGHT"     offsetX="18"/>
+          <Anchor point="BOTTOMLEFT"   relativeTo="$(parent)Button" relativePoint="BOTTOMRIGHT"   offsetX="0"/>
+        </Label>
+        <Label name="$(parent)Mats" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="LEFT">
+          <Dimensions y="50" />
+          <Anchor point="TOPLEFT" relativeTo="$(parent)Name" relativePoint="TOPRIGHT" offsetX="18"/>
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="0" offsetY="-10"/>
+        </Label>
+
+      </Controls>
+    </Control>
+
+    <Control name="FurC_SlotTemplateTiny" inherits="ZO_ListInventorySlotBehavior" virtual="true" mouseEnabled="true">
+      <Dimensions x="300" />
+      <OnMouseEnter>      FurC.GuiLineOnMouseEnter(self)        </OnMouseEnter>
+      <OnMouseExit>      FurC.GuiLineOnMouseExit(self)        </OnMouseExit>
+      <OnMouseUp>        FurC.OnControlMouseUp(self, button)      </OnMouseUp>
+      <OnMouseDoubleClick>  FurC.OnControlDoubleClick(self)       </OnMouseDoubleClick>
+
+      <Controls>
+        <Texture name="$(parent)Bg" textureFile="EsoUI/Art/Miscellaneous/listItem_backdrop.dds" alpha="0.4">
+          <AnchorFill />
+          <TextureCoords left="0" right="1" top="0" bottom=".8125" />
+        </Texture>
+
+        <Button name="$(parent)Button" inherits="ZO_InventorySlotNoMouseover" hidden="true">
+          <Dimensions x="1"/>
+          <Anchor point="TOPLEFT" relativePoint="TOPLEFT" offsetX="0" offsetY="3" />
+        </Button>
+        <Label name="$(parent)Name" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="CENTER">
+          <Dimensions y="50"  x="230"/>
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)Button" relativePoint="TOPRIGHT" />
+          <Anchor point="BOTTOMLEFT"   relativeTo="$(parent)Button" relativePoint="BOTTOMRIGHT" />
+        </Label>
+        <Label name="$(parent)Mats" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="LEFT">
+          <Dimensions y="50"  />
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)Name" relativePoint="TOPRIGHT" offsetX="18"/>
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="0" offsetY="-10"/>
+        </Label>
+
+      </Controls>
+    </Control>
+
+    <Texture name="FurC_SlotIconKnownNo" color="FF0000" mouseEnabled="true" textureFile="esoui/art/buttons/decline_up.dds" virtual="true">
+      <Dimensions x="24" y="24" />
+    </Texture>
+    <Texture name="FurC_SlotIconKnownYes" color="00FF00" mouseEnabled="true" textureFile="esoui/art/cadwell/check.dds" virtual="true">
+      <Dimensions x="24" y="24" />
+    </Texture>
 <!--
-		<Texture name="FurC_SlotIconKnownNo" color="FF0000" textureFile="esoui/art/miscellaneous/search_icon.dds" virtual="true">
-			<Dimensions x="30" y="30" />
-		</Texture>
-		<Texture name="FurC_SlotIconKnownNo" color="00FF00" textureFile="esoui/art/cadwell/check.dds" virtual="true">
-			<Dimensions x="30" y="30" />
-		</Texture>
+    <Texture name="FurC_SlotIconKnownNo" color="FF0000" textureFile="esoui/art/miscellaneous/search_icon.dds" virtual="true">
+      <Dimensions x="30" y="30" />
+    </Texture>
+    <Texture name="FurC_SlotIconKnownNo" color="00FF00" textureFile="esoui/art/cadwell/check.dds" virtual="true">
+      <Dimensions x="30" y="30" />
+    </Texture>
 -->
-	</Controls>
+  </Controls>
 </GuiXml>
diff --git a/xml/FurnitureCatalogue_100025.xml b/xml/FurnitureCatalogue_100025.xml
new file mode 100644
index 0000000..305d82c
--- /dev/null
+++ b/xml/FurnitureCatalogue_100025.xml
@@ -0,0 +1,386 @@
+<GuiXml>
+  <Controls>
+    <TopLevelControl name="FurCGui" clampedToScreen="true"  movable="true" mouseEnabled="true" hidden="true" resizeHandleSize="10">
+      <DimensionConstraints x="800" y="500" minX="850" minY="200" maxY="2000"/>
+      <Anchor point="TOPRIGHT" relativeTo="GUI_ROOT" relativePoint="TOPRIGHT" offsetX="-25" offsetY="40" />
+      <OnMoveStop>FurC.SaveFrameInfo("onMoveStop")</OnMoveStop>
+
+      <OnResizeStop>FurC.SaveFrameInfo("onResizeStop")</OnResizeStop>
+      <Controls>
+        <Backdrop name="$(parent)_BG" inherits="ZO_DefaultBackdrop" >
+          <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT"/>
+        </Backdrop>
+
+        <Control name="$(parent)_Header" resizeToFitDescendents="true" >
+          <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
+          <Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT"/>
+
+
+          <!-- FurC_Header's children -->
+          <Controls> <!-- FurC_Header's children -->
+            <Control name="$(parent)_Bar1">
+              <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
+              <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetY="50"/>
+
+              <!-- FurC_Header_Bar1's children -->
+              <Controls> <!-- FurC_Header_Bar1's children -->
+                <Button name="$(parent)_Feedback">
+                  <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="20" offsetY="10"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "Click to say thank you:\nLeft: 2k\nRight: 10k\nMiddle: 25k\nYour feedback and/or donation is appreciated!")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.Donate(self, button)</OnMouseUp>
+                  <Dimensions x="40" y="40" />
+                  <Textures
+                  normal    ="esoui/art/mail/mail_tabicon_compose_up.dds"
+                  pressed    ="esoui/art/mail/mail_tabicon_compose_down.dds"
+                  mouseOver  ="esoui/art/mail/mail_tabicon_compose_over.dds"
+                  />
+                </Button>
+                <Control name ="FurC_Label" resizeToFitDescendents="true">
+                  <Anchor point="TOP" relativeTo="$(parent)" relativePoint="TOP" offsetX="0" offsetY="10" />
+                  <Dimensions y="54"/>
+                  <Controls>
+                    <Label name="$(parent)_1" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="-Furniture Catalogue: " >
+                      <Anchor point="LEFT" relativeTo="$(parent)" relativePoint="LEFT" offsetX="-40"/>
+                    </Label>
+                    <Label name="FurC_RecipeCount" font="$(STONE_TABLET_FONT)|24|soft-shadow-thick" mouseEnabled="true" resizeToFitDescendents="true">
+                      <Anchor point="LEFT"   relativeTo="$(parent)_1" relativePoint="RIGHT" offsetX="10" offsetY="1"/>
+                      <OnMouseEnter>  FurC.GuiShowTooltip(self, "number of recipes below")</OnMouseEnter>
+                      <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                      <OnMouseUp>FurC.RefreshCounter()</OnMouseUp>
+                    </Label>
+                    <Label name="$(parent)_2" font="$(STONE_TABLET_FONT)|26|soft-shadow-thick" text=" entries -" >
+                      <Anchor point="LEFT" relativeTo="FurC_RecipeCount" relativePoint="RIGHT" offsetY="-1"  />
+                    </Label>
+                  </Controls>
+                </Control>
+                <Button name="$(parent)_Hide">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="-15" offsetY="15"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "Hide window")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurnitureCatalogue_Toggle()</OnMouseUp>
+                  <Dimensions x="25" y="25" />
+                  <Textures
+                  normal    ="/esoui/art/buttons/decline_up.dds"
+                  pressed    ="/esoui/art/buttons/decline_down.dds"
+                  mouseOver  ="/esoui/art/buttons/decline_over.dds"
+                  />
+                </Button>
+
+                <Button name="$(parent)_Reload">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)_Hide" relativePoint="TOPLEFT" offsetX="-25" offsetY="-5"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "Click: Scan character knowledge to database\n\nRight-click: Re-scans data files\n\nMiddle-click: Re-create database (will ask you first)")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.GUIButtonRefreshOnMouseUp(self, button)</OnMouseUp>
+
+
+                  <Dimensions x="35" y="35" />
+                  <Textures
+                  normal    ="/esoui/art/help/help_tabicon_feedback_up.dds"
+                  pressed    ="/esoui/art/help/help_tabicon_feedback_down.dds "
+                  mouseOver  ="/esoui/art/help/help_tabicon_feedback_over.dds"
+                  />
+                </Button>
+                <Button name="$(parent)_TemplateTiny">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)_Reload" relativePoint="TOPLEFT" offsetX="-15" offsetY="-2"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "change template")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.ChangeTemplateFromButton(true)</OnMouseUp>
+
+                  <Dimensions x="35" y="35" />
+                  <Textures
+                  normal    ="/esoui/art/buttons/minus_up.dds"
+                  pressed    ="/esoui/art/buttons/minus_down.dds"
+                  mouseOver  ="/esoui/art/buttons/minus_over.dds"
+                  />
+                </Button>
+
+                <Button name="$(parent)_TemplateLarge" hidden="true">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)_Reload" relativePoint="TOPLEFT" offsetX="-15" offsetY="-2"/>
+
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "change template")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.ChangeTemplateFromButton(false)</OnMouseUp>
+
+                  <Dimensions x="35" y="35" />
+                  <Textures
+                  normal    ="/esoui/art/buttons/plus_up.dds"
+                  pressed    ="/esoui/art/buttons/plus_down.dds"
+                  mouseOver  ="/esoui/art/buttons/plus_over.dds"
+                  />
+                </Button>
+
+              </Controls>
+            </Control>
+            <Control name="$(parent)_Bar2">
+              <Anchor point="TOPLEFT" relativeTo="$(parent)_Bar1" relativePoint="BOTTOMLEFT" offsetX="20"/>
+              <Anchor point="TOPRIGHT" relativeTo="$(parent)_Bar1" relativePoint="BOTTOMRIGHT" offsetX="-20" />
+              <Dimensions y="35" />
+
+
+              <!-- FurC_Header_Bar2's children -->
+              <Controls> <!-- FurC_Header_Bar2's children -->
+                <Control name="FurC_DropdownSource" inherits="ZO_ComboBox" mouseEnabled="true" >
+                  <Anchor point="TOPLEFT"   relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="9" offsetY="10"/>
+                  <Dimensions x="230" y="28" />
+                  <OnShow>    FurC.GuiSetupDropdown(self)</OnShow>
+                  <OnMouseEnter>  FurC.GuiShowTooltip(self, "Filter: Knowledge and source", true)</OnMouseEnter>
+                  <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                </Control>
+
+                <Control name="FurC_QualityFilter" mouseEnabled="true">
+                  <Anchor point="TOPLEFT"   relativeTo="FurC_DropdownSource" relativePoint="TOPRIGHT" offsetX = "38" offsetY="3"/>
+                  <Anchor point="BOTTOMRIGHT" relativeTo="FurC_DropdownSource"  relativePoint="BOTTOMRIGHT" offsetX = "300" />
+                </Control>
+
+                <Control name="FurC_DropdownVersion" inherits="ZO_ComboBox" mouseEnabled="true" >
+                  <Anchor point="TOPLEFT"   relativeTo="FurC_QualityFilter" relativePoint="TOPRIGHT" offsetX="10"/>
+                  <Dimensions x="235" y="28" />
+                  <OnShow>    FurC.GuiSetupDropdown(self)</OnShow>
+                  <OnMouseEnter>  FurC.GuiShowTooltip(self, "Filter: game version", true)</OnMouseEnter>
+                  <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                </Control>
+              </Controls>
+            </Control>
+            <!-- 3rd bar -->
+            <Control name="$(parent)_Bar3" mouseEnabled="true">
+
+              <Dimensions y="55" />
+              <Anchor point="TOPLEFT" relativeTo="$(parent)_Bar2" relativePoint="BOTTOMLEFT" offsetY="10"/>
+              <Anchor point="TOPRIGHT" relativeTo="$(parent)_Bar2" relativePoint="BOTTOMRIGHT"/>
+              <Dimensions y="45" />
+
+
+              <Controls> <!-- FurC_Header_Bar3's children -->
+                <!-- control above: FurC_DropdownSource -->
+                <Control name="FurC_DropdownCharacter" inherits="ZO_ComboBox" mouseEnabled="true" >
+                  <Anchor point="TOPLEFT"   relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="9" offsetY="10"/>
+                  <Dimensions x="230" y="28" />
+                  <OnShow>    FurC.GuiSetupDropdown(self)</OnShow>
+                  <OnMouseEnter>  FurC.GuiShowTooltip(self, "Filter: Character", true)</OnMouseEnter>
+                  <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                </Control>
+
+                <!-- Crafting type filter -->
+                <Control name="FurC_TypeFilter" mouseEnabled="true" resizeToFitDescendents="true">
+                  <Anchor point="TOPLEFT" relativeTo="FurC_DropdownCharacter" relativePoint="TOPRIGHT" offsetX="17" offsetY="-5" />
+                  <Anchor point="BOTTOMRIGHT" relativeTo="FurC_DropdownCharacter" relativePoint="BOTTOMRIGHT" offsetX="340"/>
+                </Control>
+
+                <!-- control above: FurC_DropdownVersion -->
+                <Control name="FurC_Search" mouseEnabled="true">
+
+                  <Anchor point="TOPLEFT"   relativeTo="FurC_TypeFilter" relativePoint="TOPRIGHT" offsetX="9" offsetY="10"/>
+                  <Anchor point="BOTTOMLEFT"   relativeTo="FurC_TypeFilter" relativePoint="BOTTOMRIGHT" offsetX="9" />
+                  <Dimensions x="195" />
+
+                  <Controls>  <!-- FurC_Search controls -->
+
+                    <EditBox name="$(parent)Box"  inherits="ZO_InventorySearchBox" >
+
+                      <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-40" offsetY="-10"/>
+                      <Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="-5" offsetY="0"/>
+
+                      <OnTextChanged>FurC.GuiSetSearchboxTextFrom(self)</OnTextChanged>
+                      <OnMouseUp>FurC.GuiOnSearchBoxClick(self, button)</OnMouseUp>
+                      <OnMouseDoubleClick>FurC.GuiOnSearchBoxClick(self, nil, true)</OnMouseDoubleClick>
+                      <OnFocusLost>FurC.GuiOnSearchBoxFocusOut(self)</OnFocusLost>
+
+                    </EditBox>
+                  </Controls>
+                </Control>
+
+                <Button name="FurC_ShowRumours"><Dimensions x="35" y="30" />
+                  <Anchor point="RIGHT"   relativeTo="FurC_Search" relativePoint="RIGHT" offsetX="-5" />
+                  <Textures
+                    normal    ="esoui/art/chatwindow/chat_notification_disabled.dds"
+                    pressed    ="esoui/art/chatwindow/chat_notification_echo.dds"
+                    mouseOver  ="esoui/art/chatwindow/chat_notification_over.dds"
+                  />
+                  <OnMouseEnter>  FurC.GuiShowTooltip(self, FurC.GetRumourTooltip())  </OnMouseEnter>
+                  <OnMouseExit>  FurC.GuiHideTooltip(self)  </OnMouseExit>
+                  <OnMouseUp>    FurC.SetShowRumours(not FurC.GetShowRumours())  </OnMouseUp>
+                </Button>
+
+                <Texture name="FurC_ShowRumoursGlow" textureFile="esoui/art/chatwindow/chat_notification_glow.dds" alpha="0.4">
+                  <Anchor point="CENTER"   relativeTo="FurC_ShowRumours" relativePoint="CENTER"   />
+                  <Dimensions x="55" y="60" />
+                </Texture>
+
+              </Controls>
+            </Control>
+
+
+            <!-- #4, sorts the list holder -->
+            <Control name="$(parent)_SortBar" mouseEnabled="true">
+
+              <Anchor point="TOPLEFT" relativeTo="$(parent)_Bar3" relativePoint="BOTTOMLEFT" offsetX="25" offsetY="20"/>
+              <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)_Bar3" relativePoint="BOTTOMRIGHT" offsetY="40"/>
+              <Dimensions y="20" />
+
+              <Controls> <!-- FurC_Header_Bar4's children -->
+                <Label name="$(parent)_Name" mouseEnabled="true" font="ZoFontGameSmall" text="Name" >
+                  <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" />
+                  <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMLEFT" offsetX="330"/>
+                  <OnMouseUp>FurC.GuiOnSort("itemName")</OnMouseUp>
+                  <Controls>
+                    <Button name="$(parent)_Button" verticalAlignment="LEFT"  mouseEnabled="true">
+                      <Dimensions y="20"  x="20"/>
+                      <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-25" />
+                      <Textures
+                      normal="esoui/art/miscellaneous/list_sortheader_icon_neutral.dds"
+                      mouseOver="esoui/art/miscellaneous/list_sortheader_icon_over.dds"
+                      />
+                    </Button>
+                  </Controls>
+                </Label>
+
+                <Label name="$(parent)_Quality" mouseEnabled="true" font="ZoFontGameSmall" text="Quality" >
+                  <Anchor point="TOPLEFT" relativeTo="$(parent)_Name" relativePoint="TOPRIGHT" />
+                  <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT"/>
+                  <OnMouseUp>FurC.GuiOnSort("itemQuality")</OnMouseUp>
+                  <Controls>
+                    <Button name="$(parent)_Button" verticalAlignment="LEFT"  mouseEnabled="true">
+                      <Dimensions y="20"  x="20"/>
+                      <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-25" />
+                      <Textures
+                      normal="esoui/art/miscellaneous/list_sortheader_icon_neutral.dds"
+                      mouseOver="esoui/art/miscellaneous/list_sortheader_icon_over.dds"
+                      />
+                    </Button>
+                  </Controls>
+                </Label>
+
+
+              </Controls>
+
+            </Control>
+
+          </Controls>
+          <!-- $(parent)_Header -->
+        </Control>
+
+        <Label name="$(parent)_Wait" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="Please wait... loading data" >
+          <Anchor point="TOP"   relativeTo="$(parent)_Header"   relativePoint="BOTTOM"   offsetY="35" />
+        </Label>
+        <Label name="$(parent)_Empty" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="No results, please check filter" hidden="true" >
+          <Anchor point="TOP"   relativeTo="$(parent)_Header"   relativePoint="BOTTOM"   offsetY="35" />
+        </Label>
+
+        <Control name="$(parent)_ListHolder" mouseEnabled="true">
+
+          <DimensionConstraints  minY="52"/>
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)_Header"   relativePoint="BOTTOMLEFT"   offsetX="25" />
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)"       relativePoint="BOTTOMRIGHT" offsetX="-35" offsetY="-20"/>
+
+          <OnMouseWheel>FurC.GuiOnScroll(self, delta)</OnMouseWheel>
+
+          <Controls>
+            <Slider name="$(parent)_Slider" mouseEnabled="true" step="1" inherits="ZO_VerticalScrollbarBase">
+              <Anchor point="TOPRIGHT"   relativeTo="$(parent)"   relativePoint="TOPRIGHT"   offsetX="20"  />
+              <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)"   relativePoint="BOTTOMRIGHT" offsetX="20" offsetY="-25"  />
+
+              <OnMouseDown>self.locked = false</OnMouseDown>
+              <OnMouseUp>self.locked = true</OnMouseUp>
+              <OnValueChanged>FurC.GuiOnSliderUpdate(self, value)</OnValueChanged>
+            </Slider>
+          </Controls>
+
+        </Control>
+      </Controls>
+
+    </TopLevelControl>
+
+    <Button name="FurC_QualityFilterButton" virtual="true">
+      <Dimensions x="35" y="35" />
+      <OnMouseEnter>  FurC.GuiVirtualMouseOver(self)  </OnMouseEnter>
+      <OnMouseExit>  FurC.GuiVirtualMouseOut(self)  </OnMouseExit>
+      <OnMouseUp>    FurC.GuiQualityMouseUp(self, button)  </OnMouseUp>
+    </Button>
+    <Button name="FurC_CraftingTypeFilterButton" virtual="true">
+      <Dimensions x="40" y="40" />
+      <OnMouseEnter>  FurC.GuiVirtualMouseOver(self)  </OnMouseEnter>
+      <OnMouseExit>  FurC.GuiVirtualMouseOut(self)  </OnMouseExit>
+      <OnMouseUp>    FurC.GuiCraftingTypeMouseUp(self)  </OnMouseUp>
+    </Button>
+
+    <Control name="FurC_SlotTemplate" inherits="ZO_ListInventorySlotBehavior" virtual="true" mouseEnabled="true">
+      <Dimensions x="300"/>
+      <OnMouseEnter>      FurC.GuiLineOnMouseEnter(self)        </OnMouseEnter>
+      <OnMouseExit>      FurC.GuiLineOnMouseExit(self)        </OnMouseExit>
+      <OnMouseUp>        FurC.OnControlMouseUp(self, button)      </OnMouseUp>
+      <OnMouseDoubleClick>  FurC.OnControlDoubleClick(self)       </OnMouseDoubleClick>
+
+      <Controls>
+        <Texture name="$(parent)Bg" textureFile="EsoUI/Art/Miscellaneous/listItem_backdrop.dds" alpha="0.4">
+          <AnchorFill />
+          <TextureCoords left="0" right="1" top="0" bottom=".8125" />
+        </Texture>
+
+        <Button name="$(parent)Button" inherits="ZO_InventorySlotNoMouseover" hidden="false">
+          <Dimensions x="40" y="40" />
+          <Anchor point="TOPLEFT" relativePoint="TOPLEFT" offsetX="-10" offsetY="3" />
+        </Button>
+
+        <Label name="$(parent)Name" font="ZoFontGameShadow" wrapMode="ELLIPSIS" verticalAlignment="CENTER">
+          <Dimensions y="50"  x="280"/>
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)Button" relativePoint="TOPRIGHT"     offsetX="18"/>
+          <Anchor point="BOTTOMLEFT"   relativeTo="$(parent)Button" relativePoint="BOTTOMRIGHT"   offsetX="0"/>
+        </Label>
+        <Label name="$(parent)Mats" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="LEFT">
+          <Dimensions y="50" />
+          <Anchor point="TOPLEFT" relativeTo="$(parent)Name" relativePoint="TOPRIGHT" offsetX="18"/>
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="0" offsetY="-10"/>
+        </Label>
+
+      </Controls>
+    </Control>
+
+    <Control name="FurC_SlotTemplateTiny" inherits="ZO_ListInventorySlotBehavior" virtual="true" mouseEnabled="true">
+      <Dimensions x="300" />
+      <OnMouseEnter>      FurC.GuiLineOnMouseEnter(self)        </OnMouseEnter>
+      <OnMouseExit>      FurC.GuiLineOnMouseExit(self)        </OnMouseExit>
+      <OnMouseUp>        FurC.OnControlMouseUp(self, button)      </OnMouseUp>
+      <OnMouseDoubleClick>  FurC.OnControlDoubleClick(self)       </OnMouseDoubleClick>
+
+      <Controls>
+        <Texture name="$(parent)Bg" textureFile="EsoUI/Art/Miscellaneous/listItem_backdrop.dds" alpha="0.4">
+          <AnchorFill />
+          <TextureCoords left="0" right="1" top="0" bottom=".8125" />
+        </Texture>
+
+        <Button name="$(parent)Button" inherits="ZO_InventorySlotNoMouseover" hidden="true">
+          <Dimensions x="1"/>
+          <Anchor point="TOPLEFT" relativePoint="TOPLEFT" offsetX="0" offsetY="3" />
+        </Button>
+        <Label name="$(parent)Name" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="CENTER">
+          <Dimensions y="50"  x="230"/>
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)Button" relativePoint="TOPRIGHT" />
+          <Anchor point="BOTTOMLEFT"   relativeTo="$(parent)Button" relativePoint="BOTTOMRIGHT" />
+        </Label>
+        <Label name="$(parent)Mats" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="LEFT">
+          <Dimensions y="50"  />
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)Name" relativePoint="TOPRIGHT" offsetX="18"/>
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="0" offsetY="-10"/>
+        </Label>
+
+      </Controls>
+    </Control>
+
+    <Texture name="FurC_SlotIconKnownNo" color="FF0000" mouseEnabled="true" textureFile="esoui/art/buttons/decline_up.dds" virtual="true">
+      <Dimensions x="24" y="24" />
+    </Texture>
+    <Texture name="FurC_SlotIconKnownYes" color="00FF00" mouseEnabled="true" textureFile="esoui/art/cadwell/check.dds" virtual="true">
+      <Dimensions x="24" y="24" />
+    </Texture>
+    <!--
+      <Texture name="FurC_SlotIconKnownNo" color="FF0000" textureFile="esoui/art/miscellaneous/search_icon.dds" virtual="true">
+      <Dimensions x="30" y="30" />
+      </Texture>
+      <Texture name="FurC_SlotIconKnownNo" color="00FF00" textureFile="esoui/art/cadwell/check.dds" virtual="true">
+      <Dimensions x="30" y="30" />
+      </Texture>
+    -->
+  </Controls>
+</GuiXml>
diff --git a/xml/FurnitureCatalogue_100026.xml b/xml/FurnitureCatalogue_100026.xml
new file mode 100644
index 0000000..63f1c94
--- /dev/null
+++ b/xml/FurnitureCatalogue_100026.xml
@@ -0,0 +1,403 @@
+<GuiXml>
+  <Controls>
+    <TopLevelControl name="FurCGui" clampedToScreen="true"  movable="true" mouseEnabled="true" hidden="true" resizeHandleSize="10">
+      <DimensionConstraints x="800" y="500" minX="850" minY="200" maxY="2000"/>
+      <Anchor point="TOPRIGHT" relativeTo="GUI_ROOT" relativePoint="TOPRIGHT" offsetX="-25" offsetY="40" />
+      <OnMoveStop>FurC.SaveFrameInfo("onMoveStop")</OnMoveStop>
+
+      <OnResizeStop>FurC.SaveFrameInfo("onResizeStop")</OnResizeStop>
+      <Controls>
+        <Backdrop name="$(parent)_BG" inherits="ZO_DefaultBackdrop" >
+          <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT"/>
+        </Backdrop>
+
+        <Control name="$(parent)_Header" resizeToFitDescendents="true" >
+          <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
+          <Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT"/>
+
+          <Controls>
+            <Control name="$(parent)_Bar1">
+              <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT"/>
+              <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetY="50"/>
+
+
+              <!-- FurC_Header_Bar1's children -->
+              <Controls> <!-- FurC_Header_Bar1's children -->
+                <Button name="$(parent)_Feedback">
+                  <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="20" offsetY="10"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "Click to say thank you:\nLeft: 2k\nRight: 10k\nMiddle: 25k\nYour feedback and/or donation is appreciated!")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.Donate(self, button)</OnMouseUp>
+                  <Dimensions x="40" y="40" />
+                  <Textures
+                  normal    ="esoui/art/mail/mail_tabicon_compose_up.dds"
+                  pressed    ="esoui/art/mail/mail_tabicon_compose_down.dds"
+                  mouseOver  ="esoui/art/mail/mail_tabicon_compose_over.dds"
+                  />
+                </Button>
+                <Control name ="FurC_Label" resizeToFitDescendents="true">
+                  <Anchor point="TOP" relativeTo="$(parent)" relativePoint="TOP" offsetX="0" offsetY="10" />
+                  <Dimensions y="54"/>
+
+
+                  <!-- FurC_Header_Bar1's children -->
+                  <Controls> <!-- FurC_Header_Bar1's children -->
+                    <Label name="$(parent)_1" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="-Furniture Catalogue: " >
+                      <Anchor point="LEFT" relativeTo="$(parent)" relativePoint="LEFT" offsetX="-40"/>
+                    </Label>
+                    <Label name="FurC_RecipeCount" font="$(STONE_TABLET_FONT)|24|soft-shadow-thick" mouseEnabled="true" resizeToFitDescendents="true">
+                      <Anchor point="LEFT"   relativeTo="$(parent)_1" relativePoint="RIGHT" offsetX="10" offsetY="1"/>
+                      <OnMouseEnter>  FurC.GuiShowTooltip(self, "number of recipes below")</OnMouseEnter>
+                      <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                      <OnMouseUp>FurC.RefreshCounter()</OnMouseUp>
+                    </Label>
+                    <Label name="$(parent)_2" font="$(STONE_TABLET_FONT)|26|soft-shadow-thick" text=" entries -" >
+                      <Anchor point="LEFT" relativeTo="FurC_RecipeCount" relativePoint="RIGHT" offsetY="-1"  />
+                    </Label>
+                  </Controls>
+                </Control>
+                <Button name="$(parent)_Hide">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="-15" offsetY="15"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "Hide window")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurnitureCatalogue_Toggle()</OnMouseUp>
+                  <Dimensions x="25" y="25" />
+                  <Textures
+                  normal    ="/esoui/art/buttons/decline_up.dds"
+                  pressed    ="/esoui/art/buttons/decline_down.dds"
+                  mouseOver  ="/esoui/art/buttons/decline_over.dds"
+                  />
+                </Button>
+
+                <Button name="$(parent)_Reload">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)_Hide" relativePoint="TOPLEFT" offsetX="-25" offsetY="-5"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "Click: Scan character knowledge to database\n\nRight-click: Re-scans data files\n\nMiddle-click: Re-create database (will ask you first)")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.GUIButtonRefreshOnMouseUp(self, button)</OnMouseUp>
+
+
+                  <Dimensions x="35" y="35" />
+                  <Textures
+                  normal    ="/esoui/art/help/help_tabicon_feedback_up.dds"
+                  pressed    ="/esoui/art/help/help_tabicon_feedback_down.dds "
+                  mouseOver  ="/esoui/art/help/help_tabicon_feedback_over.dds"
+                  />
+                </Button>
+                <Button name="$(parent)_TemplateTiny">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)_Reload" relativePoint="TOPLEFT" offsetX="-15" offsetY="-2"/>
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "change template")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.ChangeTemplateFromButton(true)</OnMouseUp>
+
+                  <Dimensions x="35" y="35" />
+                  <Textures
+                  normal    ="/esoui/art/buttons/minus_up.dds"
+                  pressed    ="/esoui/art/buttons/minus_down.dds"
+                  mouseOver  ="/esoui/art/buttons/minus_over.dds"
+                  />
+                </Button>
+
+                <Button name="$(parent)_TemplateLarge" hidden="true">
+                  <Anchor point="TOPRIGHT" relativeTo="$(parent)_Reload" relativePoint="TOPLEFT" offsetX="-15" offsetY="-2"/>
+
+                  <OnMouseEnter>FurC.GuiShowTooltip(self, "change template")</OnMouseEnter>
+                  <OnMouseExit>FurC.GuiHideTooltip(self)</OnMouseExit>
+                  <OnMouseUp>FurC.ChangeTemplateFromButton(false)</OnMouseUp>
+
+                  <Dimensions x="35" y="35" />
+                  <Textures
+                  normal    ="/esoui/art/buttons/plus_up.dds"
+                  pressed    ="/esoui/art/buttons/plus_down.dds"
+                  mouseOver  ="/esoui/art/buttons/plus_over.dds"
+                  />
+                </Button>
+
+              </Controls>
+            </Control>
+            <Control name="$(parent)_Bar2">
+              <Anchor point="TOPLEFT" relativeTo="$(parent)_Bar1" relativePoint="BOTTOMLEFT" offsetX="20"/>
+              <Anchor point="TOPRIGHT" relativeTo="$(parent)_Bar1" relativePoint="BOTTOMRIGHT" offsetX="-20" />
+              <Dimensions y="35" />
+
+
+              <!-- FurC_Header_Bar2's children -->
+              <Controls> <!-- FurC_Header_Bar2's children -->
+                <Control name="FurC_DropdownSource" inherits="ZO_ComboBox" mouseEnabled="true" >
+                  <Anchor point="TOPLEFT"   relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="9" offsetY="10"/>
+                  <Dimensions x="230" y="28" />
+                  <OnShow>    FurC.GuiSetupDropdown(self)</OnShow>
+                  <OnMouseEnter>  FurC.GuiShowTooltip(self, "Filter: Knowledge and source", true)</OnMouseEnter>
+                  <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                </Control>
+
+                <Control name="FurC_QualityFilter" mouseEnabled="true">
+                  <Anchor point="TOPLEFT"   relativeTo="FurC_DropdownSource" relativePoint="TOPRIGHT" offsetX = "38" offsetY="3"/>
+                  <Anchor point="BOTTOMRIGHT" relativeTo="FurC_DropdownSource"  relativePoint="BOTTOMRIGHT" offsetX = "300" />
+                </Control>
+
+                <Control name="FurC_DropdownVersion" inherits="ZO_ComboBox" mouseEnabled="true" >
+                  <Anchor point="TOPLEFT"   relativeTo="FurC_QualityFilter" relativePoint="TOPRIGHT" offsetX="10"/>
+                  <Dimensions x="235" y="28" />
+                  <OnShow>    FurC.GuiSetupDropdown(self)</OnShow>
+                  <OnMouseEnter>  FurC.GuiShowTooltip(self, "Filter: game version", true)</OnMouseEnter>
+                  <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                </Control>
+              </Controls>
+            </Control>
+
+
+            <!-- 3rd bar -->
+            <Control name="$(parent)_Bar3" mouseEnabled="true">
+
+              <Dimensions y="55" />
+              <Anchor point="TOPLEFT" relativeTo="$(parent)_Bar2" relativePoint="BOTTOMLEFT" offsetY="10"/>
+              <Anchor point="TOPRIGHT" relativeTo="$(parent)_Bar2" relativePoint="BOTTOMRIGHT"/>
+              <Dimensions y="45" />
+
+
+              <!-- FurC_Header_Bar3's children -->
+              <Controls><!-- FurC_Header_Bar3's children -->
+                <!-- control above: FurC_DropdownSource -->
+                <Control name="FurC_DropdownCharacter" inherits="ZO_ComboBox" mouseEnabled="true" >
+                  <Anchor point="TOPLEFT"   relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="9" offsetY="10"/>
+                  <Dimensions x="230" y="28" />
+                  <OnShow>    FurC.GuiSetupDropdown(self)</OnShow>
+                  <OnMouseEnter>  FurC.GuiShowTooltip(self, "Filter: Character", true)</OnMouseEnter>
+                  <OnMouseExit>  FurC.GuiHideTooltip(self)</OnMouseExit>
+                </Control>
+
+                <!-- Crafting type filter -->
+                <Control name="FurC_TypeFilter" mouseEnabled="true" resizeToFitDescendents="true">
+                  <Anchor point="TOPLEFT" relativeTo="FurC_DropdownCharacter" relativePoint="TOPRIGHT" offsetX="17" offsetY="-5" />
+                  <Anchor point="BOTTOMRIGHT" relativeTo="FurC_DropdownCharacter" relativePoint="BOTTOMRIGHT" offsetX="340"/>
+
+                </Control>
+
+                <!-- control above: FurC_DropdownVersion -->
+                <Control name="FurC_Search" mouseEnabled="true">
+
+                  <Anchor point="TOPLEFT"   relativeTo="FurC_TypeFilter" relativePoint="TOPRIGHT" offsetX="9" offsetY="10"/>
+                  <Anchor point="BOTTOMLEFT"   relativeTo="FurC_TypeFilter" relativePoint="BOTTOMRIGHT" offsetX="9" />
+                  <Dimensions x="175" />
+
+                  <Controls>   <!-- FurC_Search controls -->
+
+                    <EditBox name="FurC_SearchBox" inherits="ZO_DefaultEditForBackdrop ZO_EditDefaultText">
+
+                      <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-40" offsetY="-10"/>
+                      <Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="0" offsetY="2"/>
+
+                      <OnTextChanged>FurC.GuiSetSearchboxTextFrom(self)</OnTextChanged>
+                      <OnMouseUp>FurC.GuiOnSearchBoxClick(self, button)</OnMouseUp>
+                      <OnMouseDoubleClick>FurC.GuiOnSearchBoxClick(self, nil, true)</OnMouseDoubleClick>
+                      <OnFocusLost>FurC.GuiOnSearchBoxFocusOut(self)</OnFocusLost>
+                      <Controls>
+                        <Backdrop name="$(parent)Backdrop" inherits="ZO_SingleLineEditBackdrop_Keyboard" maxHeight="30">
+                          <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" />
+                          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT"/>
+                          <OnInitialized>self:SetHeight(30)</OnInitialized>
+                        </Backdrop>
+
+                      </Controls>
+
+                    </EditBox>
+                    </Controls>
+                </Control>
+
+                <Button name="FurC_ShowRumours"><Dimensions x="30" y="35" />
+                  <Anchor point="RIGHT"   relativeTo="FurC_Search" relativePoint="RIGHT" offsetX="5" offsetY="3"/>
+                  <Textures
+                    normal    ="esoui/art/chatwindow/chat_notification_disabled.dds"
+                    pressed    ="esoui/art/chatwindow/chat_notification_echo.dds"
+                    mouseOver  ="esoui/art/chatwindow/chat_notification_over.dds"
+                  />
+                  <OnMouseEnter>  FurC.GuiShowTooltip(self, FurC.GetRumourTooltip())  </OnMouseEnter>
+                  <OnMouseExit>  FurC.GuiHideTooltip(self)  </OnMouseExit>
+                  <OnMouseUp>    FurC.SetShowRumours(not FurC.GetShowRumours())  </OnMouseUp>
+                </Button>
+
+
+
+                <Texture name="FurC_ShowRumoursGlow" textureFile="esoui/art/chatwindow/chat_notification_glow.dds" alpha="0.4">
+                  <Anchor point="CENTER"   relativeTo="FurC_ShowRumours" relativePoint="CENTER"   />
+                  <Dimensions x="55" y="60" />
+                </Texture>
+
+              </Controls>
+            </Control>
+
+
+            <!-- #4, sorts the list holder -->
+            <Control name="$(parent)_SortBar" mouseEnabled="true">
+
+              <Anchor point="TOPLEFT" relativeTo="$(parent)_Bar3" relativePoint="BOTTOMLEFT" offsetX="25" offsetY="20"/>
+              <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)_Bar3" relativePoint="BOTTOMRIGHT" offsetY="40"/>
+              <Dimensions y="20" />
+
+              <!-- FurC_SortBar's children -->
+              <Controls> <!-- FurC_SortBar's children -->
+                <Label name="$(parent)_Name" mouseEnabled="true" font="ZoFontGameSmall" text="Name" >
+                  <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" />
+                  <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMLEFT" offsetX="330"/>
+                  <OnMouseUp>FurC.GuiOnSort("itemName")</OnMouseUp>
+                  <Controls>
+                    <Button name="$(parent)_Button" verticalAlignment="LEFT"  mouseEnabled="true">
+                      <Dimensions y="20"  x="20"/>
+                      <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-25" />
+                      <Textures
+                      normal="esoui/art/miscellaneous/list_sortheader_icon_neutral.dds"
+                      mouseOver="esoui/art/miscellaneous/list_sortheader_icon_over.dds"
+                      />
+                    </Button>
+                  </Controls>
+                </Label>
+
+                <Label name="$(parent)_Quality" mouseEnabled="true" font="ZoFontGameSmall" text="Quality" >
+                  <Anchor point="TOPLEFT" relativeTo="$(parent)_Name" relativePoint="TOPRIGHT" />
+                  <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT"/>
+                  <OnMouseUp>FurC.GuiOnSort("itemQuality")</OnMouseUp>
+                  <Controls>
+                    <Button name="$(parent)_Button" verticalAlignment="LEFT"  mouseEnabled="true">
+                      <Dimensions y="20"  x="20"/>
+                      <Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="-25" />
+                      <Textures
+                      normal="esoui/art/miscellaneous/list_sortheader_icon_neutral.dds"
+                      mouseOver="esoui/art/miscellaneous/list_sortheader_icon_over.dds"
+                      />
+                    </Button>
+                  </Controls>
+                </Label>
+
+
+              </Controls>
+
+            </Control>
+
+          </Controls>
+          <!-- $(parent)_Header -->
+        </Control>
+
+        <Label name="$(parent)_Wait" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="Please wait... loading data" >
+          <Anchor point="TOP"   relativeTo="$(parent)_Header"   relativePoint="BOTTOM"   offsetY="35" />
+        </Label>
+        <Label name="$(parent)_Empty" font="$(STONE_TABLET_FONT)|28|soft-shadow-thick" text="No results, please check filter" hidden="true" >
+          <Anchor point="TOP"   relativeTo="$(parent)_Header"   relativePoint="BOTTOM"   offsetY="35" />
+        </Label>
+
+        <Control name="$(parent)_ListHolder" mouseEnabled="true">
+
+          <DimensionConstraints  minY="52"/>
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)_Header"   relativePoint="BOTTOMLEFT"   offsetX="25" />
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)"       relativePoint="BOTTOMRIGHT" offsetX="-35" offsetY="-20"/>
+
+          <OnMouseWheel>FurC.GuiOnScroll(self, delta)</OnMouseWheel>
+
+          <Controls>
+            <Slider name="$(parent)_Slider" mouseEnabled="true" step="1" inherits="ZO_VerticalScrollbarBase">
+              <Anchor point="TOPRIGHT"   relativeTo="$(parent)"   relativePoint="TOPRIGHT"   offsetX="20"  />
+              <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)"   relativePoint="BOTTOMRIGHT" offsetX="20" offsetY="-25"  />
+
+              <OnMouseDown>self.locked = false</OnMouseDown>
+              <OnMouseUp>self.locked = true</OnMouseUp>
+              <OnValueChanged>FurC.GuiOnSliderUpdate(self, value)</OnValueChanged>
+            </Slider>
+          </Controls>
+
+        </Control>
+      </Controls>
+
+    </TopLevelControl>
+
+    <Button name="FurC_QualityFilterButton" virtual="true">
+      <Dimensions x="35" y="35" />
+      <OnMouseEnter>  FurC.GuiVirtualMouseOver(self)  </OnMouseEnter>
+      <OnMouseExit>  FurC.GuiVirtualMouseOut(self)  </OnMouseExit>
+      <OnMouseUp>    FurC.GuiQualityMouseUp(self, button)  </OnMouseUp>
+    </Button>
+    <Button name="FurC_CraftingTypeFilterButton" virtual="true">
+      <Dimensions x="40" y="40" />
+      <OnMouseEnter>  FurC.GuiVirtualMouseOver(self)  </OnMouseEnter>
+      <OnMouseExit>  FurC.GuiVirtualMouseOut(self)  </OnMouseExit>
+      <OnMouseUp>    FurC.GuiCraftingTypeMouseUp(self)  </OnMouseUp>
+    </Button>
+
+    <Control name="FurC_SlotTemplate" inherits="ZO_ListInventorySlotBehavior" virtual="true" mouseEnabled="true">
+      <Dimensions x="300"/>
+      <OnMouseEnter>      FurC.GuiLineOnMouseEnter(self)        </OnMouseEnter>
+      <OnMouseExit>      FurC.GuiLineOnMouseExit(self)        </OnMouseExit>
+      <OnMouseUp>        FurC.OnControlMouseUp(self, button)      </OnMouseUp>
+      <OnMouseDoubleClick>  FurC.OnControlDoubleClick(self)       </OnMouseDoubleClick>
+
+      <Controls>
+        <Texture name="$(parent)Bg" textureFile="EsoUI/Art/Miscellaneous/listItem_backdrop.dds" alpha="0.4">
+          <AnchorFill />
+          <TextureCoords left="0" right="1" top="0" bottom=".8125" />
+        </Texture>
+
+        <Button name="$(parent)Button" inherits="ZO_InventorySlotNoMouseover" hidden="false">
+          <Dimensions x="40" y="40" />
+          <Anchor point="TOPLEFT" relativePoint="TOPLEFT" offsetX="-10" offsetY="3" />
+        </Button>
+
+        <Label name="$(parent)Name" font="ZoFontGameShadow" wrapMode="ELLIPSIS" verticalAlignment="CENTER">
+          <Dimensions y="50"  x="280"/>
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)Button" relativePoint="TOPRIGHT"     offsetX="18"/>
+          <Anchor point="BOTTOMLEFT"   relativeTo="$(parent)Button" relativePoint="BOTTOMRIGHT"   offsetX="0"/>
+        </Label>
+        <Label name="$(parent)Mats" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="LEFT">
+          <Dimensions y="50" />
+          <Anchor point="TOPLEFT" relativeTo="$(parent)Name" relativePoint="TOPRIGHT" offsetX="18"/>
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="0" offsetY="-10"/>
+        </Label>
+
+      </Controls>
+    </Control>
+
+    <Control name="FurC_SlotTemplateTiny" inherits="ZO_ListInventorySlotBehavior" virtual="true" mouseEnabled="true">
+      <Dimensions x="300" />
+      <OnMouseEnter>      FurC.GuiLineOnMouseEnter(self)        </OnMouseEnter>
+      <OnMouseExit>      FurC.GuiLineOnMouseExit(self)        </OnMouseExit>
+      <OnMouseUp>        FurC.OnControlMouseUp(self, button)      </OnMouseUp>
+      <OnMouseDoubleClick>  FurC.OnControlDoubleClick(self)       </OnMouseDoubleClick>
+
+      <Controls>
+        <Texture name="$(parent)Bg" textureFile="EsoUI/Art/Miscellaneous/listItem_backdrop.dds" alpha="0.4">
+          <AnchorFill />
+          <TextureCoords left="0" right="1" top="0" bottom=".8125" />
+        </Texture>
+
+        <Button name="$(parent)Button" inherits="ZO_InventorySlotNoMouseover" hidden="true">
+          <Dimensions x="1"/>
+          <Anchor point="TOPLEFT" relativePoint="TOPLEFT" offsetX="0" offsetY="3" />
+        </Button>
+        <Label name="$(parent)Name" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="CENTER">
+          <Dimensions y="50"  x="230"/>
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)Button" relativePoint="TOPRIGHT" />
+          <Anchor point="BOTTOMLEFT"   relativeTo="$(parent)Button" relativePoint="BOTTOMRIGHT" />
+        </Label>
+        <Label name="$(parent)Mats" font="ZoFontGame" wrapMode="ELLIPSIS" verticalAlignment="LEFT">
+          <Dimensions y="50"  />
+          <Anchor point="TOPLEFT"   relativeTo="$(parent)Name" relativePoint="TOPRIGHT" offsetX="18"/>
+          <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="0" offsetY="-10"/>
+        </Label>
+
+      </Controls>
+    </Control>
+
+    <Texture name="FurC_SlotIconKnownNo" color="FF0000" mouseEnabled="true" textureFile="esoui/art/buttons/decline_up.dds" virtual="true">
+      <Dimensions x="24" y="24" />
+    </Texture>
+    <Texture name="FurC_SlotIconKnownYes" color="00FF00" mouseEnabled="true" textureFile="esoui/art/cadwell/check.dds" virtual="true">
+      <Dimensions x="24" y="24" />
+    </Texture>
+    <!--
+      <Texture name="FurC_SlotIconKnownNo" color="FF0000" textureFile="esoui/art/miscellaneous/search_icon.dds" virtual="true">
+      <Dimensions x="30" y="30" />
+      </Texture>
+      <Texture name="FurC_SlotIconKnownNo" color="00FF00" textureFile="esoui/art/cadwell/check.dds" virtual="true">
+      <Dimensions x="30" y="30" />
+      </Texture>
+    -->
+  </Controls>
+</GuiXml>