Quantcast

Split the trainers into by-profession files using the trainer dumps.

James D. Callahan III [03-13-11 - 22:17]
Split the trainers into by-profession files using the trainer dumps.
Filename
Database/Alchemy.lua
Database/Blacksmithing.lua
Database/Cooking.lua
Database/Enchanting.lua
Database/Engineering.lua
Database/FirstAid.lua
Database/Inscription.lua
Database/Jewelcrafting.lua
Database/Leatherworking.lua
Database/Runeforging.lua
Database/Smelting.lua
Database/Tailoring.lua
Database/Trainer.lua
Database/Trainers/Alchemy.lua
Database/Trainers/Blacksmithing.lua
Database/Trainers/Cooking.lua
Database/Trainers/Enchanting.lua
Database/Trainers/Engineering.lua
Database/Trainers/FirstAid.lua
Database/Trainers/Inscription.lua
Database/Trainers/Jewelcrafting.lua
Database/Trainers/Leatherworking.lua
Database/Trainers/Runeforging.lua
Database/Trainers/Smelting.lua
Database/Trainers/Tailoring.lua
database.xml
diff --git a/Database/Alchemy.lua b/Database/Alchemy.lua
index b8dae3d..0e38301 100644
--- a/Database/Alchemy.lua
+++ b/Database/Alchemy.lua
@@ -33,13 +33,15 @@ local FAC = private.faction_ids
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 51304, genesis, quality)
-end
-
 function addon:InitAlchemy()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 51304, genesis, quality)
+	end
+
+	private:InitializeAlchemyTrainers()
+
 	local recipe

 	-- Elixir of Lion's Strength -- 2329
diff --git a/Database/Blacksmithing.lua b/Database/Blacksmithing.lua
index 61b73cb..025a2f6 100644
--- a/Database/Blacksmithing.lua
+++ b/Database/Blacksmithing.lua
@@ -33,13 +33,15 @@ local FAC = private.faction_ids
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 2018, genesis, quality)
-end
-
 function addon:InitBlacksmithing()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 2018, genesis, quality)
+	end
+
+	private:InitializeBlacksmithingTrainers()
+
 	local recipe

 	-- Rough Sharpening Stone -- 2660
diff --git a/Database/Cooking.lua b/Database/Cooking.lua
index fcf3253..7318754 100644
--- a/Database/Cooking.lua
+++ b/Database/Cooking.lua
@@ -13,12 +13,15 @@ This source code is released under All Rights Reserved.
 ************************************************************************
 ]] --

--------------------------------------------------------------------------------
+-----------------------------------------------------------------------
 -- AddOn namespace.
--------------------------------------------------------------------------------
-local MODNAME = "Ackis Recipe List"
-local addon = LibStub("AceAddon-3.0"):GetAddon(MODNAME)
-local L = LibStub("AceLocale-3.0"):GetLocale(MODNAME)
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+
+local addon = LibStub("AceAddon-3.0"):GetAddon(private.addon_name)
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name)

 local FOLDER_NAME, private = ...

@@ -33,13 +36,15 @@ local FAC = private.faction_ids
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 2550, genesis, quality)
-end
-
 function addon:InitCooking()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 2550, genesis, quality)
+	end
+
+	private:InitializeCookingTrainers()
+
 	local recipe

 	-- Charred Wolf Meat -- 2538
diff --git a/Database/Enchanting.lua b/Database/Enchanting.lua
index 4210cf0..bad9df1 100644
--- a/Database/Enchanting.lua
+++ b/Database/Enchanting.lua
@@ -33,13 +33,15 @@ local FAC = private.faction_ids
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 7411, genesis, quality)
-end
-
 function addon:InitEnchanting()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 7411, genesis, quality)
+	end
+
+	private:InitializeEnchantingTrainers()
+
 	local recipe

 	-- Enchant Bracer - Minor Health -- 7418
diff --git a/Database/Engineering.lua b/Database/Engineering.lua
index 44d65af..30c135c 100644
--- a/Database/Engineering.lua
+++ b/Database/Engineering.lua
@@ -34,13 +34,15 @@ local FAC = private.faction_ids
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 4036, genesis, quality)
-end
-
 function addon:InitEngineering()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 4036, genesis, quality)
+	end
+
+	private:InitializeEngineeringTrainers()
+
 	local recipe

 	-- Rough Blasting Powder -- 3918
diff --git a/Database/FirstAid.lua b/Database/FirstAid.lua
index 689a6ee..f9744a0 100644
--- a/Database/FirstAid.lua
+++ b/Database/FirstAid.lua
@@ -33,13 +33,15 @@ local FAC = private.faction_ids
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 3273, genesis, quality)
-end
-
 function addon:InitFirstAid()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 3273, genesis, quality)
+	end
+
+	private:InitializeFirstAidTrainers()
+
 	local recipe

 	-- Linen Bandage -- 3275
diff --git a/Database/Inscription.lua b/Database/Inscription.lua
index 8ae3c2d..4119c7c 100644
--- a/Database/Inscription.lua
+++ b/Database/Inscription.lua
@@ -19,12 +19,12 @@ This source code is released under All Rights Reserved.
 -------------------------------------------------------------------------------
 -- AddOn namespace.
 -------------------------------------------------------------------------------
-local MODNAME = "Ackis Recipe List"
-local addon = LibStub("AceAddon-3.0"):GetAddon(MODNAME)
-local L = LibStub("AceLocale-3.0"):GetLocale(MODNAME)
-
 local FOLDER_NAME, private = ...

+local addon = LibStub("AceAddon-3.0"):GetAddon(private.addon_name)
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name)
+
+
 -------------------------------------------------------------------------------
 -- Filter flags. Acquire types, and Reputation levels.
 -------------------------------------------------------------------------------
@@ -36,13 +36,15 @@ local FAC = private.faction_ids
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 45357, genesis, quality)
-end
-
 function addon:InitInscription()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 45357, genesis, quality)
+	end
+
+	private:InitializeInscriptionTrainers()
+
 	local recipe

 	-- Scroll of Stamina -- 45382
diff --git a/Database/Jewelcrafting.lua b/Database/Jewelcrafting.lua
index 15f5926..439ce17 100644
--- a/Database/Jewelcrafting.lua
+++ b/Database/Jewelcrafting.lua
@@ -16,12 +16,12 @@ This source code is released under All Rights Reserved.
 -------------------------------------------------------------------------------
 -- AddOn namespace.
 -------------------------------------------------------------------------------
-local MODNAME = "Ackis Recipe List"
-local addon = LibStub("AceAddon-3.0"):GetAddon(MODNAME)
-local L = LibStub("AceLocale-3.0"):GetLocale(MODNAME)
-
 local FOLDER_NAME, private = ...

+local addon = LibStub("AceAddon-3.0"):GetAddon(private.addon_name)
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name)
+
+
 -------------------------------------------------------------------------------
 -- Filter flags. Acquire types, and Reputation levels.
 -------------------------------------------------------------------------------
@@ -33,13 +33,15 @@ local FAC = private.faction_ids
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 25229, genesis, quality)
-end
-
 function addon:InitJewelcrafting()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 25229, genesis, quality)
+	end
+
+	private:InitializeJewelcraftingTrainers()
+
 	local recipe

 	-- Delicate Copper Wire -- 25255
diff --git a/Database/Leatherworking.lua b/Database/Leatherworking.lua
index 61ef646..559af8c 100644
--- a/Database/Leatherworking.lua
+++ b/Database/Leatherworking.lua
@@ -17,12 +17,11 @@ This source code is released under All Rights Reserved.
 -------------------------------------------------------------------------------
 -- AddOn namespace.
 -------------------------------------------------------------------------------
-local MODNAME = "Ackis Recipe List"
-local addon = LibStub("AceAddon-3.0"):GetAddon(MODNAME)
-local L = LibStub("AceLocale-3.0"):GetLocale(MODNAME)
-
 local FOLDER_NAME, private = ...

+local addon = LibStub("AceAddon-3.0"):GetAddon(private.addon_name)
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name)
+
 -------------------------------------------------------------------------------
 -- Filter flags. Acquire types, and Reputation levels.
 -------------------------------------------------------------------------------
@@ -34,13 +33,15 @@ local FAC = private.faction_ids
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 2108, genesis, quality)
-end
-
 function addon:InitLeatherworking()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 2108, genesis, quality)
+	end
+
+	private:InitializeLeatherworkingTrainers()
+
 	local recipe

 	-- Handstitched Leather Boots -- 2149
diff --git a/Database/Runeforging.lua b/Database/Runeforging.lua
index a367e2f..479aa3d 100644
--- a/Database/Runeforging.lua
+++ b/Database/Runeforging.lua
@@ -32,13 +32,15 @@ local Q = private.item_qualities
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 53428, genesis, quality)
-end
-
 function addon:InitRuneforging()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 53428, genesis, quality)
+	end
+
+	private:InitializeRuneforgingTrainers()
+
 	local recipe

 	-- Rune of Swordshattering -- 53323
diff --git a/Database/Smelting.lua b/Database/Smelting.lua
index 4009856..de1a229 100644
--- a/Database/Smelting.lua
+++ b/Database/Smelting.lua
@@ -16,12 +16,11 @@ This source code is released under All Rights Reserved.
 -------------------------------------------------------------------------------
 -- AddOn namespace.
 -------------------------------------------------------------------------------
-local MODNAME = "Ackis Recipe List"
-local addon = LibStub("AceAddon-3.0"):GetAddon(MODNAME)
-local L = LibStub("AceLocale-3.0"):GetLocale(MODNAME)
-
 local FOLDER_NAME, private = ...

+local addon = LibStub("AceAddon-3.0"):GetAddon(private.addon_name)
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name)
+
 -------------------------------------------------------------------------------
 -- Filter flags. Acquire types, and Reputation levels.
 -------------------------------------------------------------------------------
@@ -31,13 +30,15 @@ local Q = private.item_qualities
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 32606, genesis, quality)
-end
-
 function addon:InitSmelting()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 32606, genesis, quality)
+	end
+
+	private:InitializeSmeltingTrainers()
+
 	local recipe

 	-- Smelt Copper -- 2657
diff --git a/Database/Tailoring.lua b/Database/Tailoring.lua
index 9b4ca9c..27f6875 100644
--- a/Database/Tailoring.lua
+++ b/Database/Tailoring.lua
@@ -16,12 +16,11 @@ This source code is released under All Rights Reserved.
 -------------------------------------------------------------------------------
 -- AddOn namespace.
 -------------------------------------------------------------------------------
-local MODNAME = "Ackis Recipe List"
-local addon = LibStub("AceAddon-3.0"):GetAddon(MODNAME)
-local L = LibStub("AceLocale-3.0"):GetLocale(MODNAME)
-
 local FOLDER_NAME, private = ...

+local addon = LibStub("AceAddon-3.0"):GetAddon(private.addon_name)
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name)
+
 -------------------------------------------------------------------------------
 -- Filter flags. Acquire types, and Reputation levels.
 -------------------------------------------------------------------------------
@@ -33,13 +32,15 @@ local FAC = private.faction_ids
 local V = private.game_versions

 --------------------------------------------------------------------------------------------------------------------
--- Counter and wrapper function
+-- Initialize!
 --------------------------------------------------------------------------------------------------------------------
-local function AddRecipe(spell_id, genesis, quality)
-	return addon:AddRecipe(spell_id, 3908, genesis, quality)
-end
-
 function addon:InitTailoring()
+	local function AddRecipe(spell_id, genesis, quality)
+		return addon:AddRecipe(spell_id, 3908, genesis, quality)
+	end
+
+	private:InitializeTailoringTrainers()
+
 	local recipe

 	-- Brown Linen Vest -- 2385
diff --git a/Database/Trainer.lua b/Database/Trainer.lua
index 85cc2f5..644bd20 100644
--- a/Database/Trainer.lua
+++ b/Database/Trainer.lua
@@ -41,370 +41,9 @@ function addon:InitTrainer(DB)
 		private:AddListEntry(DB, id_num, name, location, coord_x, coord_y, faction)
 	end

-	AddTrainer(514, L["Smith Argus"], BZ["Elwynn Forest"], 41.7, 65.6, ALLIANCE)
-	AddTrainer(1103, L["Eldrin"], BZ["Elwynn Forest"], 79.3, 69.0, ALLIANCE)
-	AddTrainer(1215, L["Alchemist Mallory"], BZ["Elwynn Forest"], 39.8, 48.3, ALLIANCE)
-	AddTrainer(1241, L["Tognus Flintfire"], BZ["Dun Morogh"], 45.3, 52.0, ALLIANCE)
-	AddTrainer(1246, L["Vosur Brakthel"], BZ["Ironforge"], 66.5, 55.2, ALLIANCE)
-	AddTrainer(1317, L["Lucan Cordell"], BZ["Stormwind City"], 53.0, 74.3, ALLIANCE)
-	AddTrainer(1346, L["Georgio Bolero"], BZ["Stormwind City"], 53.2, 81.5, ALLIANCE)
-	AddTrainer(1355, L["Cook Ghilm"], BZ["Dun Morogh"], 68.4, 54.5, ALLIANCE)
-	AddTrainer(1382, L["Mudduk"], BZ["Northern Stranglethorn"], 37.2, 49.2, HORDE) -- UPDATED
-	AddTrainer(1385, L["Brawn"], BZ["Northern Stranglethorn"], 37.8, 50.4, HORDE) -- UPDATED
-	AddTrainer(1386, L["Rogvar"], BZ["Swamp of Sorrows"], 48.4, 55.7, HORDE)
-	AddTrainer(1430, L["Tomas"], BZ["Elwynn Forest"], 44.3, 66.0, ALLIANCE) ---confirm
-	AddTrainer(1470, L["Ghak Healtouch"], BZ["Loch Modan"], 37.0, 49.2, ALLIANCE)
-	AddTrainer(1632, L["Adele Fielder"], BZ["Elwynn Forest"], 46.4, 62.1, ALLIANCE)
-	AddTrainer(1676, L["Finbus Geargrind"], BZ["Duskwood"], 77.4, 48.6, ALLIANCE)
-	AddTrainer(1681, L["Brock Stoneseeker"], BZ["Loch Modan"], 37.1, 47.8, ALLIANCE)
-	AddTrainer(1699, L["Gremlock Pilsnor"], BZ["Dun Morogh"], 47.6, 52.3, ALLIANCE)
-	AddTrainer(1701, L["Dank Drizzlecut"], BZ["Dun Morogh"], 69.3, 55.5, ALLIANCE)
-	AddTrainer(1702, L["Bronk Guzzlegear"], BZ["Dun Morogh"], 50.2, 50.4, ALLIANCE)
-	AddTrainer(2132, L["Carolai Anise"], BZ["Tirisfal Glades"], 59.5, 52.2, HORDE)
-	AddTrainer(2326, L["Thamner Pol"], BZ["Dun Morogh"], 47.2, 52.6, ALLIANCE)
-	AddTrainer(2327, L["Shaina Fuller"], BZ["Stormwind City"], 52.9, 44.8, ALLIANCE)
-	AddTrainer(2329, L["Michelle Belle"], BZ["Elwynn Forest"], 43.4, 65.6, ALLIANCE)
-	AddTrainer(2391, L["Serge Hinott"], BZ["Hillsbrad Foothills"], 61.6, 19.2, HORDE)
-	AddTrainer(2399, L["Daryl Stack"], BZ["Hillsbrad Foothills"], 63.7, 20.8, HORDE)
-	AddTrainer(2627, L["Grarnik Goodstitch"], BZ["The Cape of Stranglethorn"], 43.6, 73.0, NEUTRAL) -- UPDATED
-	AddTrainer(2798, L["Pand Stonebinder"], BZ["Thunder Bluff"], 29.4, 21.5, HORDE)
-	AddTrainer(2818, L["Slagg"], BZ["Arathi Highlands"], 74.1, 33.8, HORDE)
-	AddTrainer(2836, L["Brikk Keencraft"], BZ["The Cape of Stranglethorn"], 44.1, 70.9, NEUTRAL) -- UPDATED
-	AddTrainer(2837, L["Jaxin Chong"], BZ["The Cape of Stranglethorn"], 42.6, 74.8, NEUTRAL) -- UPDATED
-	AddTrainer(2998, L["Karn Stonehoof"], BZ["Thunder Bluff"], 39.0, 56.5, HORDE)
-	AddTrainer(3001, L["Brek Stonehoof"], BZ["Thunder Bluff"], 34.5, 57.6, HORDE)
-	AddTrainer(3004, L["Tepa"], BZ["Thunder Bluff"], 44.3, 45.0, HORDE)
-	AddTrainer(3007, L["Una"], BZ["Thunder Bluff"], 41.8, 42.7, HORDE)
-	AddTrainer(3009, L["Bena Winterhoof"], BZ["Thunder Bluff"], 46.8, 33.5, HORDE)
-	AddTrainer(3011, L["Teg Dawnstrider"], BZ["Thunder Bluff"], 45.0, 38.0, HORDE)
-	AddTrainer(3026, L["Aska Mistrunner"], BZ["Thunder Bluff"], 51.1, 52.9, HORDE)
-	AddTrainer(3067, L["Pyall Silentstride"], BZ["Mulgore"], 45.5, 58.1, HORDE)
-	AddTrainer(3069, L["Chaw Stronghide"], BZ["Mulgore"], 45.5, 57.9, HORDE)
-	AddTrainer(3087, L["Crystal Boughman"], BZ["Redridge Mountains"], 22.8, 43.6, ALLIANCE)
-	AddTrainer(3136, L["Clarise Gnarltree"], BZ["Duskwood"], 74.0, 48.5, ALLIANCE)
-	AddTrainer(3137, L["Matt Johnson"], BZ["Duskwood"], 74.0, 49.7, ALLIANCE)
-	AddTrainer(3174, L["Dwukk"], BZ["Durotar"], 52.0, 40.7, HORDE)
-	AddTrainer(3175, L["Krunn"], BZ["Durotar"], 51.9, 40.9, HORDE)
-	AddTrainer(3181, L["Fremal Doohickey"], BZ["Wetlands"], 10.8, 61.3, ALLIANCE)
-	AddTrainer(3184, L["Miao'zan"], BZ["Durotar"], 55.5, 74.0, HORDE)
-	AddTrainer(3290, L["Deek Fizzlebizz"], BZ["Loch Modan"], 45.9, 13.6, ALLIANCE)
-	AddTrainer(3345, L["Godan"], BZ["Orgrimmar"], 53.8, 38.5, HORDE)
-	AddTrainer(3347, L["Yelmak"], BZ["Orgrimmar"], 56.7, 33.2, HORDE)
-	AddTrainer(3355, L["Saru Steelfury"], BZ["Orgrimmar"], 76.50, 34.53, HORDE) -- UPDATED
-	AddTrainer(3357, L["Makaru"], BZ["Orgrimmar"], 72.31, 34.91, HORDE) -- UPDATED
-	AddTrainer(3363, L["Magar"], BZ["Orgrimmar"], 63.5, 50.0, HORDE)
-	AddTrainer(3365, L["Karolek"], BZ["Orgrimmar"], 62.8, 44.5, HORDE)
 	AddTrainer(3373, L["Arnok"], BZ["Orgrimmar"], 34.1, 84.4, HORDE)
-	AddTrainer(3399, L["Zamja"], BZ["Orgrimmar"], 57.5, 53.7, HORDE)
-	AddTrainer(3478, L["Traugh"], BZ["Northern Barrens"], 48.3, 56.2, HORDE) -- UPDATED
-	AddTrainer(3484, L["Kil'hala"], BZ["Northern Barrens"], 49.9, 61.2, HORDE) -- UPDATED
-	AddTrainer(3494, L["Tinkerwiz"], BZ["Northern Barrens"], 68.5, 69.2, NEUTRAL) -- UPDATED
-	AddTrainer(3523, L["Bowen Brisboise"], BZ["Tirisfal Glades"], 52.6, 55.6, HORDE)
-	AddTrainer(3549, L["Shelene Rhobart"], BZ["Tirisfal Glades"], 65.5, 61.0, HORDE)
-	AddTrainer(3555, L["Johan Focht"], BZ["Silverpine Forest"], 43.4, 40.5, HORDE)
-	AddTrainer(3557, L["Guillaume Sorouy"], BZ["Silverpine Forest"], 43.2, 41.0, HORDE)
-	AddTrainer(3603, L["Cyndra Kindwhisper"], BZ["Teldrassil"], 57.6, 60.7, ALLIANCE)
-	AddTrainer(3605, L["Nadyia Maneweaver"], BZ["Teldrassil"], 41.8, 49.5, ALLIANCE)
-	AddTrainer(3606, L["Alanna Raveneye"], BZ["Teldrassil"], 36.8, 34.2, ALLIANCE)
-	AddTrainer(3704, L["Mahani"], BZ["Southern Barrens"], 41.5, 46.9, HORDE) -- UPDATED
-	AddTrainer(3964, L["Kylanna"], BZ["Ashenvale"], 50.8, 67.1, ALLIANCE)
-	AddTrainer(3967, L["Aayndia Floralwind"], BZ["Ashenvale"], 35.9, 52.1, ALLIANCE)
-	AddTrainer(4159, L["Me'lynn"], BZ["Darnassus"], 61.7, 23.0, ALLIANCE)
-	AddTrainer(4160, L["Ainethil"], BZ["Darnassus"], 55.0, 23.8, ALLIANCE)
-	AddTrainer(4193, L["Grondal Moonbreeze"], BZ["Darkshore"], 38.2, 40.5, ALLIANCE)
-	AddTrainer(4210, L["Alegorn"], BZ["Darnassus"], 50.0, 36.6, ALLIANCE) -- UPDATED
-	AddTrainer(4211, L["Dannelor"], BZ["Darnassus"], 51.7, 12.6, ALLIANCE)
-	AddTrainer(4212, L["Telonis"], BZ["Darnassus"], 64.5, 21.3, ALLIANCE)
-	AddTrainer(4213, L["Taladan"], BZ["Darnassus"], 58.6, 13.2, ALLIANCE)
-	AddTrainer(4254, L["Geofram Bouldertoe"], BZ["Ironforge"], 50.3, 26.0, ALLIANCE)
-	AddTrainer(4258, L["Bengus Deepforge"], BZ["Ironforge"], 51.0, 43.0, ALLIANCE)
-	AddTrainer(4552, L["Eunice Burch"], BZ["Undercity"], 62.3, 44.6, HORDE)
-	AddTrainer(4576, L["Josef Gregorian"], BZ["Undercity"], 70.7, 30.3, HORDE)
-	AddTrainer(4578, L["Josephine Lister"], BZ["Undercity"], 86.5, 22.3, HORDE)
-	AddTrainer(4588, L["Arthur Moore"], BZ["Undercity"], 70.3, 58.5, HORDE)
-	AddTrainer(4591, L["Mary Edras"], BZ["Undercity"], 73.5, 54.8, HORDE)
-	AddTrainer(4596, L["James Van Brunt"], BZ["Undercity"], 61.2, 29.9, HORDE)
-	AddTrainer(4598, L["Brom Killian"], BZ["Undercity"], 55.8, 37.0, HORDE)
-	AddTrainer(4611, L["Doctor Herbert Halsey"], BZ["Undercity"], 47.7, 73.0, HORDE)
-	AddTrainer(4616, L["Lavinia Crowe"], BZ["Undercity"], 62.1, 60.5, HORDE)
-	AddTrainer(4900, L["Alchemist Narett"], BZ["Dustwallow Marsh"], 64.0, 47.7, ALLIANCE)
-	AddTrainer(5127, L["Fimble Finespindle"], BZ["Ironforge"], 39.8, 33.5, ALLIANCE)
-	AddTrainer(5150, L["Nissa Firestone"], BZ["Ironforge"], 54.0, 57.8, ALLIANCE)
-	AddTrainer(5153, L["Jormund Stonebrow"], BZ["Ironforge"], 43.2, 29.0, ALLIANCE)
-	AddTrainer(5157, L["Gimble Thistlefuzz"], BZ["Ironforge"], 60.0, 45.4, ALLIANCE)
-	AddTrainer(5159, L["Daryl Riknussun"], BZ["Ironforge"], 60.1, 36.8, ALLIANCE)
-	AddTrainer(5164, L["Grumnus Steelshaper"], BZ["Ironforge"], 50.2, 42.8, ALLIANCE)
-	AddTrainer(5174, L["Springspindle Fizzlegear"], BZ["Ironforge"], 68.4, 44.0, ALLIANCE)
-	AddTrainer(5177, L["Tally Berryfizz"], BZ["Ironforge"], 66.6, 55.2, ALLIANCE)
-	AddTrainer(5392, L["Yarr Hammerstone"], BZ["Dun Morogh"], 50.0, 50.3, ALLIANCE)
-	AddTrainer(5482, L["Stephen Ryback"], BZ["Stormwind City"], 78.2, 53.2, ALLIANCE)
-	AddTrainer(5499, L["Lilyssia Nightbreeze"], BZ["Stormwind City"], 55.6, 85.9, ALLIANCE)
-	AddTrainer(5511, L["Therum Deepforge"], BZ["Stormwind City"], 63.9, 37.8, ALLIANCE)
-	AddTrainer(5513, L["Gelman Stonehand"], BZ["Stormwind City"], 59.2, 37.7, ALLIANCE)
-	AddTrainer(5518, L["Lilliam Sparkspindle"], BZ["Stormwind City"], 62.2, 30.5, ALLIANCE)
-	AddTrainer(5564, L["Simon Tanner"], BZ["Stormwind City"], 71.8, 62.9, ALLIANCE)
-	AddTrainer(5695, L["Vance Undergloom"], BZ["Tirisfal Glades"], 61.7, 51.6, HORDE)
-	AddTrainer(5759, L["Nurse Neela"], BZ["Tirisfal Glades"], 61.8, 52.8, HORDE)
-	AddTrainer(5784, L["Waldor"], BZ["Wailing Caverns"], 32.6, 28.5, NEUTRAL)
-	AddTrainer(5939, L["Vira Younghoof"], BZ["Mulgore"], 46.8, 60.8, HORDE)
-	AddTrainer(5943, L["Rawrk"], BZ["Durotar"], 54.1, 42.0, HORDE)
-	AddTrainer(6094, L["Byancie"], BZ["Teldrassil"], 55.3, 56.8, ALLIANCE)
-	AddTrainer(6286, L["Zarrin"], BZ["Teldrassil"], 57.1, 61.3, ALLIANCE)
-	AddTrainer(6297, L["Kurdram Stonehammer"], BZ["Darkshore"], 38.2, 41.1, ALLIANCE)
-	AddTrainer(6299, L["Delfrum Flintbeard"], BZ["Darkshore"], 38.2, 41.0, ALLIANCE)
-	AddTrainer(7230, L["Shayis Steelfury"], BZ["Orgrimmar"], 75.91, 37.10, HORDE) -- UPDATED
-	AddTrainer(7231, L["Kelgruk Bloodaxe"], BZ["Orgrimmar"], 76.34, 37.08, HORDE) -- UPDATED
-	AddTrainer(7406, L["Oglethorpe Obnoticus"], BZ["The Cape of Stranglethorn"], 43.0, 72.1, NEUTRAL) -- UPDATED
-	AddTrainer(7866, L["Peter Galen"], BZ["Azshara"], 37.5, 65.5, ALLIANCE)
-	AddTrainer(7867, L["Thorkaf Dragoneye"], BZ["Badlands"], 62.6, 57.6, HORDE)
-	AddTrainer(7868, L["Sarah Tanner"], BZ["Searing Gorge"], 63.7, 75.7, ALLIANCE)
-	AddTrainer(7869, L["Brumn Winterhoof"], BZ["Arathi Highlands"], 28.2, 45.0, HORDE)
-	AddTrainer(7870, L["Caryssia Moonhunter"], BZ["Feralas"], 89.4, 46.5, ALLIANCE) ---confirm
-	AddTrainer(7871, L["Se'Jib"], BZ["Northern Stranglethorn"], 45.3, 58.7, HORDE) -- UPDATED
-	AddTrainer(7944, L["Tinkmaster Overspark"], BZ["Ironforge"], 69.8, 50.0, ALLIANCE)
-	AddTrainer(7948, L["Kylanna Windwhisper"], BZ["Feralas"], 32.6, 43.8, ALLIANCE)
-	AddTrainer(7949, L["Xylinnia Starshine"], BZ["Feralas"], 31.6, 44.3, ALLIANCE)
-	AddTrainer(8126, L["Nixx Sprocketspring"], BZ["Tanaris"], 52.5, 27.3, NEUTRAL)
-	AddTrainer(8128, L["Pikkle"], BZ["Tanaris"], 51.1, 28.1, NEUTRAL)
-	AddTrainer(8153, L["Narv Hidecrafter"], BZ["Desolace"], 55.3, 56.3, HORDE)
-	AddTrainer(8306, L["Duhng"], BZ["Northern Barrens"], 55.4, 61.3, HORDE) -- UPDATED
-	AddTrainer(8736, L["Buzzek Bracketswing"], BZ["Tanaris"], 52.3, 27.7, NEUTRAL)
-	AddTrainer(8738, L["Vazario Linkgrease"], BZ["Northern Barrens"], 68.5, 69.2, NEUTRAL) -- UPDATED
-	AddTrainer(9584, L["Jalane Ayrole"], BZ["Stormwind City"], 40.6, 83.9, ALLIANCE)
-	AddTrainer(11017, L["Roxxik"], BZ["Orgrimmar"], 56.85, 56.54, HORDE) -- UPDATED
-	AddTrainer(11025, L["Mukdrak"], BZ["Durotar"], 52.2, 40.8, HORDE)
-	AddTrainer(11031, L["Franklin Lloyd"], BZ["Undercity"], 75.9, 73.7, HORDE)
-	AddTrainer(11037, L["Jenna Lemkenilli"], BZ["Darkshore"], 38.3, 41.1, ALLIANCE)
-	AddTrainer(11052, L["Timothy Worthington"], BZ["Dustwallow Marsh"], 66.22, 51.7, ALLIANCE)
-	AddTrainer(11072, L["Kitta Firewind"], BZ["Elwynn Forest"], 64.9, 70.6, ALLIANCE)
-	AddTrainer(11073, L["Annora"], BZ["Uldaman"], 0, 0, NEUTRAL)
-	AddTrainer(11074, L["Hgarth"], BZ["Stonetalon Mountains"], 49.2, 57.2, HORDE)
-	AddTrainer(11097, L["Drakk Stonehand"], BZ["The Hinterlands"], 13.4, 43.4, ALLIANCE)
-	AddTrainer(11098, L["Hahrana Ironhide"], BZ["Feralas"], 74.4, 43.1, HORDE)
-	AddTrainer(11146, L["Ironus Coldsteel"], BZ["Ironforge"], 50.5, 43.3, ALLIANCE)
-	AddTrainer(11177, L["Okothos Ironrager"], BZ["Orgrimmar"], 75.35, 34.04, HORDE) -- UPDATED
-	AddTrainer(11178, L["Borgosh Corebender"], BZ["Orgrimmar"], 75.89, 33.61, HORDE) -- UPDATED
-	AddTrainer(11557, L["Meilosh"], BZ["Felwood"], 65.7, 2.9, HORDE)
 	AddTrainer(12920, L["Doctor Gregory Victor"], BZ["Arathi Highlands"], 73.4, 36.8, HORDE)
 	AddTrainer(12939, L["Doctor Gustaf VanHowzen"], BZ["Dustwallow Marsh"], 68.18, 47.94, ALLIANCE)
-	AddTrainer(14742, L["Zap Farflinger"], BZ["Winterspring"], 61.2, 37.6, NEUTRAL)
-	AddTrainer(14743, L["Jhordy Lapforge"], BZ["Tanaris"], 52.3, 26.9, NEUTRAL)
-	AddTrainer(15400, L["Arathel Sunforge"], BZ["Eversong Woods"], 59.6, 62.6, HORDE)
-	AddTrainer(15501, L["Aleinia"], BZ["Eversong Woods"], 48.5, 47.5, HORDE)
-	AddTrainer(16160, L["Magistrix Eredania"], BZ["Eversong Woods"], 38.2, 72.6, HORDE)
-	AddTrainer(16161, L["Arcanist Sheynathren"], BZ["Eversong Woods"], 38.2, 72.5, HORDE)
-	AddTrainer(16253, L["Master Chef Mouldier"], BZ["Ghostlands"], 48.3, 30.9, HORDE)
-	AddTrainer(16272, L["Kanaria"], BZ["Eversong Woods"], 48.5, 47.6, HORDE)
-	AddTrainer(16277, L["Quarelestra"], BZ["Eversong Woods"], 48.6, 47.1, HORDE)
-	AddTrainer(16278, L["Sathein"], BZ["Eversong Woods"], 53.5, 51.0, HORDE)
-	AddTrainer(16366, L["Sempstress Ambershine"], BZ["Eversong Woods"], 37.4, 71.9, HORDE)
-	AddTrainer(16583, L["Rohok"], BZ["Hellfire Peninsula"], 53.2, 38.2, HORDE)
-	AddTrainer(16588, L["Apothecary Antonivich"], BZ["Hellfire Peninsula"], 52.4, 36.5, HORDE)
-	AddTrainer(16633, L["Sedana"], BZ["Silvermoon City"], 70.0, 24.0, HORDE)
-	AddTrainer(16640, L["Keelen Sheets"], BZ["Silvermoon City"], 57.0, 50.1, HORDE)
-	AddTrainer(16642, L["Camberon"], BZ["Silvermoon City"], 66.1, 17.4, HORDE)
-	AddTrainer(16662, L["Alestus"], BZ["Silvermoon City"], 77.6, 71.3, HORDE)
-	AddTrainer(16663, L["Belil"], BZ["Silvermoon City"], 79.1, 42.9, HORDE)
-	AddTrainer(16667, L["Danwe"], BZ["Silvermoon City"], 76.5, 40.9, HORDE)
-	AddTrainer(16669, L["Bemarrin"], BZ["Silvermoon City"], 79.5, 39.0, HORDE)
-	AddTrainer(16676, L["Sylann"], BZ["Silvermoon City"], 69.5, 71.5, HORDE)
-	AddTrainer(16688, L["Lynalis"], BZ["Silvermoon City"], 84.0, 80.2, HORDE)
-	AddTrainer(16719, L["Mumman"], BZ["The Exodar"], 55.6, 27.1, ALLIANCE)
-	AddTrainer(16723, L["Lucc"], BZ["The Exodar"], 27.5, 60.9, ALLIANCE)
-	AddTrainer(16724, L["Miall"], BZ["The Exodar"], 60.0, 89.6, ALLIANCE)
-	AddTrainer(16725, L["Nahogg"], BZ["The Exodar"], 40.5, 39.2, ALLIANCE)
-	AddTrainer(16726, L["Ockil"], BZ["The Exodar"], 54.0, 92.1, ALLIANCE)
-	AddTrainer(16728, L["Akham"], BZ["The Exodar"], 66.0, 74.6, ALLIANCE)
-	AddTrainer(16729, L["Refik"], BZ["The Exodar"], 63.0, 67.9, ALLIANCE)
-	AddTrainer(16731, L["Nus"], BZ["The Exodar"], 39.0, 22.5, ALLIANCE)
-	AddTrainer(16752, L["Muaat"], BZ["The Exodar"], 60.0, 87.9, ALLIANCE)
-	AddTrainer(16823, L["Humphry"], BZ["Hellfire Peninsula"], 56.8, 63.8, ALLIANCE)
-	AddTrainer(17214, L["Anchorite Fateema"], BZ["Azuremyst Isle"], 48.5, 51.8, ALLIANCE) --- confirm
-	AddTrainer(17215, L["Daedal"], BZ["Azuremyst Isle"], 48.5, 51.5, ALLIANCE) --- confirm
-	AddTrainer(17222, L["Artificer Daelo"], BZ["Azuremyst Isle"], 48.0, 51.0, ALLIANCE)
-	AddTrainer(17245, L["Blacksmith Calypso"], BZ["Azuremyst Isle"], 46.4, 71.1, ALLIANCE)
-	AddTrainer(17246, L["\"Cookie\" McWeaksauce"], BZ["Azuremyst Isle"], 46.7, 70.5, ALLIANCE) -- confirm
-	AddTrainer(17424, L["Anchorite Paetheus"], BZ["Bloodmyst Isle"], 54.7, 54.0, ALLIANCE)
-	AddTrainer(17442, L["Moordo"], BZ["Azuremyst Isle"], 44.8, 23.8, ALLIANCE)
-	AddTrainer(17487, L["Erin Kelly"], BZ["Azuremyst Isle"], 46.2, 70.5, ALLIANCE)
-	AddTrainer(17488, L["Dulvi"], BZ["Azuremyst Isle"], 48.9, 51.1, ALLIANCE)
-	AddTrainer(17634, L["K. Lee Smallfry"], BZ["Zangarmarsh"], 68.6, 50.2, ALLIANCE)
-	AddTrainer(17637, L["Mack Diver"], BZ["Zangarmarsh"], 33.9, 51.0, HORDE)
-	AddTrainer(18747, L["Krugosh"], BZ["Hellfire Peninsula"], 55.5, 37.6, HORDE)
-	AddTrainer(18749, L["Dalinna"], BZ["Hellfire Peninsula"], 56.6, 37.1, HORDE) --- confirm
-	AddTrainer(18751, L["Kalaen"], BZ["Hellfire Peninsula"], 56.8, 37.7, HORDE)
-	AddTrainer(18752, L["Zebig"], BZ["Hellfire Peninsula"], 54.8, 38.5, HORDE)
-	AddTrainer(18753, L["Felannia"], BZ["Hellfire Peninsula"], 52.3, 36.1, HORDE)
-	AddTrainer(18754, L["Barim Spilthoof"], BZ["Hellfire Peninsula"], 56.2, 38.6, HORDE)
-	AddTrainer(18771, L["Brumman"], BZ["Hellfire Peninsula"], 54.1, 64.0, ALLIANCE)
-	AddTrainer(18772, L["Hama"], BZ["Hellfire Peninsula"], 54.1, 63.6, ALLIANCE)
-	AddTrainer(18773, L["Johan Barnes"], BZ["Hellfire Peninsula"], 53.7, 66.1, ALLIANCE)
-	AddTrainer(18774, L["Tatiana"], BZ["Hellfire Peninsula"], 54.6, 63.6, ALLIANCE)
-	AddTrainer(18775, L["Lebowski"], BZ["Hellfire Peninsula"], 55.7, 65.5, ALLIANCE)
-	AddTrainer(18779, L["Hurnak Grimmord"], BZ["Hellfire Peninsula"], 56.7, 63.8, ALLIANCE)
-	AddTrainer(18802, L["Alchemist Gribble"], BZ["Hellfire Peninsula"], 53.8, 65.8, ALLIANCE)
-	AddTrainer(18804, L["Prospector Nachlan"], BZ["Bloodmyst Isle"], 56.3, 54.3, ALLIANCE)
-	AddTrainer(18987, L["Gaston"], BZ["Hellfire Peninsula"], 54.1, 63.5, ALLIANCE)
-	AddTrainer(18988, L["Baxter"], BZ["Hellfire Peninsula"], 56.8, 37.5, HORDE)
-	AddTrainer(18990, L["Burko"], BZ["Hellfire Peninsula"], 22.4, 39.3, ALLIANCE)
-	AddTrainer(18991, L["Aresella"], BZ["Hellfire Peninsula"], 26.3, 62.0, HORDE)
-	AddTrainer(18993, L["Naka"], BZ["Zangarmarsh"], 78.5, 63.0, NEUTRAL)
-	AddTrainer(19052, L["Lorokeem"], BZ["Shattrath City"], 45.4, 19.5, NEUTRAL)
-	AddTrainer(19063, L["Hamanar"], BZ["Shattrath City"], 35.7, 20.5, NEUTRAL)
-	AddTrainer(19184, L["Mildred Fletcher"], BZ["Shattrath City"], 66.5, 13.5, NEUTRAL)
-	AddTrainer(19185, L["Jack Trapper"], BZ["Shattrath City"], 63.0, 68.5, NEUTRAL)
-	AddTrainer(19186, L["Kylene"], BZ["Shattrath City"], 76.5, 33.0, NEUTRAL)
-	AddTrainer(19187, L["Darmari"], BZ["Shattrath City"], 66.8, 67.1, NEUTRAL)
-	AddTrainer(19251, L["Enchantress Volali"], BZ["Shattrath City"], 43.2, 92.3, NEUTRAL)
-	AddTrainer(19252, L["High Enchanter Bardolan"], BZ["Shattrath City"], 43.2, 92.2, NEUTRAL)
-	AddTrainer(19341, L["Grutah"], BZ["Shadowmoon Valley"], 29.7, 31.5, HORDE)
-	AddTrainer(19369, L["Celie Steelwing"], BZ["Shadowmoon Valley"], 37.2, 58.5, ALLIANCE)
-	AddTrainer(19478, L["Fera Palerunner"], BZ["Blade's Edge Mountains"], 53.7, 55.0, HORDE)
-	AddTrainer(19539, L["Jazdalaad"], BZ["Netherstorm"], 44.5, 34.0, NEUTRAL)
-	AddTrainer(19540, L["Asarnan"], BZ["Netherstorm"], 44.2, 33.7, NEUTRAL)
-	AddTrainer(19576, L["Xyrol"], BZ["Netherstorm"], 32.5, 66.7, NEUTRAL)
-	AddTrainer(19775, L["Kalinda"], BZ["Silvermoon City"], 90.5, 74.1, HORDE)
-	AddTrainer(19778, L["Farii"], BZ["The Exodar"], 45.0, 24.0, ALLIANCE)
-	AddTrainer(20124, L["Kradu Grimblade"], BZ["Shattrath City"], 69.2, 44.8, NEUTRAL)
-	AddTrainer(20125, L["Zula Slagfury"], BZ["Shattrath City"], 70.1, 42.0, NEUTRAL)
-	AddTrainer(21087, L["Grikka"], BZ["Blade's Edge Mountains"], 76.8, 65.5, HORDE)
-	AddTrainer(21493, L["Kablamm Farflinger"], BZ["Netherstorm"], 32.9, 63.7, NEUTRAL)
-	AddTrainer(21494, L["Smiles O'Byron"], BZ["Blade's Edge Mountains"], 60.3, 65.2, NEUTRAL)
-	AddTrainer(22477, L["Anchorite Ensham"], BZ["Terokkar Forest"], 30.8, 75.9, NEUTRAL)
-	AddTrainer(23734, L["Anchorite Yazmina"], BZ["Howling Fjord"], 59.5, 62.3, ALLIANCE)
-	AddTrainer(24868, L["Niobe Whizzlespark"], BZ["Shadowmoon Valley"], 36.7, 54.8, ALLIANCE)
-	AddTrainer(25099, L["Jonathan Garrett"], BZ["Shadowmoon Valley"], 29.2, 28.5, HORDE)
-	AddTrainer(25277, L["Chief Engineer Leveny"], BZ["Borean Tundra"], 42.6, 53.7, HORDE)
-	AddTrainer(26564, L["Borus Ironbender"], BZ["Dragonblight"], 36.6, 47.1, HORDE)
-	AddTrainer(26903, L["Lanolis Dewdrop"], BZ["Howling Fjord"], 58.4, 62.3, ALLIANCE)
-	AddTrainer(26904, L["Rosina Rivet"], BZ["Howling Fjord"], 59.6, 63.7, ALLIANCE)
-	AddTrainer(26905, L["Brom Brewbaster"], BZ["Howling Fjord"], 58.2, 62.1, ALLIANCE)
-	AddTrainer(26906, L["Elizabeth Jackson"], BZ["Howling Fjord"], 58.6, 62.8, ALLIANCE)
-	AddTrainer(26907, L["Tisha Longbridge"], BZ["Howling Fjord"], 59.7, 64.0, ALLIANCE)
-	AddTrainer(26911, L["Bernadette Dexter"], BZ["Howling Fjord"], 59.9, 63.6, ALLIANCE)
-	AddTrainer(26912, L["Grumbol Stoutpick"], BZ["Howling Fjord"], 59.9, 63.9, ALLIANCE)
-	AddTrainer(26914, L["Benjamin Clegg"], BZ["Howling Fjord"], 58.6, 62.8, ALLIANCE)
-	AddTrainer(26915, L["Ounhulo"], BZ["Howling Fjord"], 59.9, 63.8, ALLIANCE)
-	AddTrainer(26916, L["Mindri Dinkles"], BZ["Howling Fjord"], 58.6, 62.8, ALLIANCE)
-	AddTrainer(26951, L["Wilhelmina Renel"], BZ["Howling Fjord"], 78.7, 28.5, HORDE)
-	AddTrainer(26952, L["Kristen Smythe"], BZ["Howling Fjord"], 79.2, 29.0, HORDE)
-	AddTrainer(26953, L["Thomas Kolichio"], BZ["Howling Fjord"], 78.6, 29.4, HORDE)
-	AddTrainer(26954, L["Emil Autumn"], BZ["Howling Fjord"], 78.7, 28.3, HORDE)
-	AddTrainer(26955, L["Jamesina Watterly"], BZ["Howling Fjord"], 78.5, 30.0, HORDE)
-	AddTrainer(26956, L["Sally Tompkins"], BZ["Howling Fjord"], 79.4, 29.4, HORDE)
-	AddTrainer(26959, L["Booker Kells"], BZ["Howling Fjord"], 79.4, 29.3, HORDE)
-	AddTrainer(26960, L["Carter Tiffens"], BZ["Howling Fjord"], 79.3, 28.8, HORDE)
-	AddTrainer(26961, L["Gunter Hansen"], BZ["Howling Fjord"], 78.3, 28.2, HORDE)
-	AddTrainer(26962, L["Jonathan Lewis"], BZ["Howling Fjord"], 79.3, 29.0, HORDE)
-	AddTrainer(26964, L["Alexandra McQueen"], BZ["Howling Fjord"], 79.4, 30.7, HORDE)
-	AddTrainer(26969, L["Raenah"], BZ["Borean Tundra"], 41.6, 53.5, HORDE)
-	AddTrainer(26972, L["Orn Tenderhoof"], BZ["Borean Tundra"], 42.0, 54.2, HORDE) -- confirm
-	AddTrainer(26975, L["Arthur Henslowe"], BZ["Borean Tundra"], 41.8, 54.3, HORDE)
-	AddTrainer(26976, L["Brunna Ironaxe"], BZ["Borean Tundra"], 42.6, 53.2, HORDE)
-	AddTrainer(26977, L["Adelene Sunlance"], BZ["Borean Tundra"], 41.2, 53.9, HORDE)
-	AddTrainer(26980, L["Eorain Dawnstrike"], BZ["Borean Tundra"], 41.2, 53.9, HORDE)
-	AddTrainer(26981, L["Crog Steelspine"], BZ["Borean Tundra"], 40.8, 55.3, HORDE)
-	AddTrainer(26982, L["Geba'li"], BZ["Borean Tundra"], 41.6, 53.4, HORDE)
-	AddTrainer(26987, L["Falorn Nightwhisper"], BZ["Borean Tundra"], 57.8, 71.9, ALLIANCE)
-	AddTrainer(26988, L["Argo Strongstout"], BZ["Borean Tundra"], 57.2, 66.6, ALLIANCE)
-	AddTrainer(26989, L["Rollick MacKreel"], BZ["Borean Tundra"], 57.9, 71.5, ALLIANCE)
-	AddTrainer(26990, L["Alexis Marlowe"], BZ["Borean Tundra"], 57.6, 71.6, ALLIANCE)
-	AddTrainer(26991, L["Sock Brightbolt"], BZ["Borean Tundra"], 57.7, 72.2, ALLIANCE)
-	AddTrainer(26992, L["Brynna Wilson"], BZ["Borean Tundra"], 57.8, 66.5, ALLIANCE)
-	AddTrainer(26995, L["Tink Brightbolt"], BZ["Borean Tundra"], 57.6, 71.7, ALLIANCE)
-	AddTrainer(26996, L["Awan Iceborn"], BZ["Borean Tundra"], 76.3, 37.0, HORDE) --- confirm
-	AddTrainer(26997, L["Alestos"], BZ["Borean Tundra"], 57.5, 72.3, ALLIANCE)
-	AddTrainer(26998, L["Rosemary Bovard"], BZ["Borean Tundra"], 57.6, 71.9, ALLIANCE)
-	AddTrainer(26999, L["Fendrig Redbeard"], BZ["Borean Tundra"], 57.5, 66.2, ALLIANCE)
-	AddTrainer(27001, L["Darin Goodstitch"], BZ["Borean Tundra"], 57.5, 72.3, ALLIANCE)
-	AddTrainer(27023, L["Apothecary Bressa"], BZ["Dragonblight"], 36.2, 48.7, HORDE)
-	AddTrainer(27029, L["Apothecary Wormwick"], BZ["Dragonblight"], 76.9, 62.2, HORDE)
-	AddTrainer(27034, L["Josric Fame"], BZ["Dragonblight"], 75.9, 63.2, HORDE) -- confirm
-	AddTrainer(28693, L["Enchanter Nalthanis"], BZ["Dalaran"], 39.1, 40.5, NEUTRAL)
-	AddTrainer(28694, L["Alard Schmied"], BZ["Dalaran"], 45.5, 28.5, NEUTRAL)
-	AddTrainer(28697, L["Timofey Oshenko"], BZ["Dalaran"], 39.0, 27.5, NEUTRAL)
-	AddTrainer(28698, L["Jedidiah Handers"], BZ["Dalaran"], 41.5, 26.0, NEUTRAL)
-	AddTrainer(28699, L["Charles Worth"], BZ["Dalaran"], 36.5, 33.5, NEUTRAL)
-	AddTrainer(28700, L["Diane Cannings"], BZ["Dalaran"], 35.7, 28.8, NEUTRAL)
-	AddTrainer(28701, L["Timothy Jones"], BZ["Dalaran"], 40.5, 35.2, NEUTRAL)
-	AddTrainer(28702, L["Professor Pallin"], BZ["Dalaran"], 41.8, 36.9, NEUTRAL)
-	AddTrainer(28703, L["Linzy Blackbolt"], BZ["Dalaran"], 42.5, 32.1, NEUTRAL)
-	AddTrainer(28705, L["Katherine Lee"], BZ["Dalaran"], 40.8, 65.2, ALLIANCE)
-	AddTrainer(28706, L["Olisarra the Kind"], BZ["Dalaran"], 37.5, 36.7, NEUTRAL)
-	AddTrainer(29194, L["Amal'thazad"], BZ["Eastern Plaguelands"], 80.5, 48.1, NEUTRAL)
-	AddTrainer(29195, L["Lady Alistra"], BZ["Eastern Plaguelands"], 83.7, 44.6, NEUTRAL)
-	AddTrainer(29196, L["Lord Thorval"], BZ["Eastern Plaguelands"], 80.9, 43.8, NEUTRAL)
-	AddTrainer(29233, L["Nurse Applewood"], BZ["Borean Tundra"], 41.7, 54.5, HORDE)
-	AddTrainer(29505, L["Imindril Spearsong"], BZ["Dalaran"], 45.5, 28.6, NEUTRAL)
-	AddTrainer(29506, L["Orland Schaeffer"], BZ["Dalaran"], 45.0, 28.4, NEUTRAL)
-	AddTrainer(29507, L["Manfred Staller"], BZ["Dalaran"], 34.2, 29.5, NEUTRAL)
-	AddTrainer(29508, L["Andellion"], BZ["Dalaran"], 34.5, 27.1, NEUTRAL)
-	AddTrainer(29509, L["Namha Moonwater"], BZ["Dalaran"], 36.3, 29.4, NEUTRAL)
-	AddTrainer(29513, L["Didi the Wrench"], BZ["Dalaran"], 39.5, 25.5, NEUTRAL)
-	AddTrainer(29514, L["Findle Whistlesteam"], BZ["Dalaran"], 39.5, 25.2, NEUTRAL)
-	AddTrainer(29631, L["Awilo Lon'gomba"], BZ["Dalaran"], 70.0, 38.6, HORDE)
-	AddTrainer(29924, L["Brandig"], BZ["The Storm Peaks"], 28.9, 74.9, ALLIANCE)
-	AddTrainer(30706, L["Jo'mah"], BZ["Orgrimmar"], 56.2, 46.5, HORDE)
-	AddTrainer(30709, L["Poshken Hardbinder"], BZ["Thunder Bluff"], 29.2, 22.0, HORDE)
-	AddTrainer(30710, L["Zantasia"], BZ["Silvermoon City"], 69.5, 24.0, HORDE)
-	AddTrainer(30711, L["Margaux Parchley"], BZ["Undercity"], 61.0, 58.5, HORDE)
-	AddTrainer(30713, L["Catarina Stanford"], BZ["Stormwind City"], 49.8, 74.7, ALLIANCE)
-	AddTrainer(30715, L["Feyden Darkin"], BZ["Darnassus"], 58.9, 14.1, ALLIANCE)
-	AddTrainer(30716, L["Thoth"], BZ["The Exodar"], 40.5, 39.1, ALLIANCE)
-	AddTrainer(30717, L["Elise Brightletter"], BZ["Ironforge"], 60.7, 44.9, ALLIANCE)
-	AddTrainer(30721, L["Michael Schwan"], BZ["Hellfire Peninsula"], 53.9, 65.5, ALLIANCE)
-	AddTrainer(30722, L["Neferatti"], BZ["Hellfire Peninsula"], 52.3, 36.1, HORDE)
-	AddTrainer(31084, L["Highlord Darion Mograine"], BZ["Eastern Plaguelands"], 83.5, 49.5, NEUTRAL)
-	AddTrainer(33580, L["Dustin Vail"], BZ["Icecrown"], 73.0, 20.8, NEUTRAL)
-	AddTrainer(33581, L["Kul'de"], BZ["Icecrown"], 71.8, 20.8, NEUTRAL)
-	AddTrainer(33583, L["Fael Morningsong"], BZ["Icecrown"], 73.0, 20.6, NEUTRAL)
-	AddTrainer(33586, L["Binkie Brightgear"], BZ["Icecrown"], 72.1, 20.9, NEUTRAL)
-	AddTrainer(33587, L["Bethany Cromwell"], BZ["Icecrown"], 72.4, 20.8, NEUTRAL)
-	AddTrainer(33588, L["Crystal Brightspark"], BZ["Icecrown"], 71.6, 21.0, NEUTRAL)
-	AddTrainer(33589, L["Joseph Wilson"], BZ["Icecrown"], 71.5, 22.5, NEUTRAL)
-	AddTrainer(33590, L["Oluros"], BZ["Icecrown"], 71.5, 20.8, NEUTRAL)
-	AddTrainer(33591, L["Rekka the Hammer"], BZ["Icecrown"], 71.9, 20.9, NEUTRAL)
-	AddTrainer(33603, L["Arthur Denny"], BZ["Icecrown"], 71.7, 20.9, NEUTRAL)
-	AddTrainer(33608, _G.GetSpellInfo(51304), BZ["Shattrath City"], 44.3, 90.4, NEUTRAL) -- Alchemy
-	AddTrainer(33609, _G.GetSpellInfo(51300), BZ["Shattrath City"], 43.9, 90.5, NEUTRAL) -- BS
-	AddTrainer(33610, _G.GetSpellInfo(51313), BZ["Shattrath City"], 43.6, 90.4, NEUTRAL) -- Enchanting
-	AddTrainer(33611, _G.GetSpellInfo(51306), BZ["Shattrath City"], 43.7, 90.1, NEUTRAL) -- Engineering
-	AddTrainer(33612, _G.GetSpellInfo(51302), BZ["Shattrath City"], 43.8, 90.9, NEUTRAL) -- LW
-	AddTrainer(33613, _G.GetSpellInfo(51309), BZ["Shattrath City"], 44.0, 91.1, NEUTRAL) -- Tailor
-	AddTrainer(33614, _G.GetSpellInfo(51311), BZ["Shattrath City"], 43.6, 90.8, NEUTRAL) -- JC
-	AddTrainer(33615, _G.GetSpellInfo(45363), BZ["Shattrath City"], 43.5, 90.7, NEUTRAL) -- Insc
-	AddTrainer(33617, _G.GetSpellInfo(32606), BZ["Shattrath City"], 43.6, 90.9, NEUTRAL) -- Mine
-	AddTrainer(33619, _G.GetSpellInfo(51296), BZ["Shattrath City"], 43.6, 91.1, NEUTRAL) -- Cooking
-	AddTrainer(33621, _G.GetSpellInfo(45542), BZ["Shattrath City"], 43.6, 90.4, NEUTRAL) -- First Aid
-	AddTrainer(33631, L["Barien"], BZ["Shattrath City"], 43.5, 65.1, NEUTRAL)
-	AddTrainer(33634, L["Engineer Sinbei"], BZ["Shattrath City"], 43.1, 64.9, NEUTRAL)
-	AddTrainer(33635, L["Daenril"], BZ["Shattrath City"], 41.9, 63.4, NEUTRAL)
-	AddTrainer(33636, L["Miralisse"], BZ["Shattrath City"], 41.6, 63.5, NEUTRAL)
-	AddTrainer(33674, L["Alchemist Kanhu"], BZ["Shattrath City"], 38.6, 30.0, NEUTRAL)
-	AddTrainer(33675, L["Onodo"], BZ["Shattrath City"], 37.7, 30.3, NEUTRAL)
-	AddTrainer(33676, L["Zurii"], BZ["Shattrath City"], 36.4, 44.6, NEUTRAL)
-	AddTrainer(33679, L["Recorder Lidio"], BZ["Shattrath City"], 36.2, 44.0, NEUTRAL)
-	AddTrainer(33680, L["Nemiha"], BZ["Shattrath City"], 36.1, 47.7, NEUTRAL)
-	AddTrainer(33681, L["Korim"], BZ["Shattrath City"], 37.6, 28.0, NEUTRAL)
-	AddTrainer(33682, L["Fono"], BZ["Shattrath City"], 36.0, 48.5, NEUTRAL)
-	AddTrainer(33684, L["Weaver Aoa"], BZ["Shattrath City"], 37.6, 27.2, NEUTRAL)
-	AddTrainer(37072, L["Rogg"], BZ["Orgrimmar"], 44.5, 78.0, HORDE) -- UPDATED
-	AddTrainer(44582, L["Theresa Denman"], BZ["Stormwind City"], 63.5, 61.6, ALLIANCE)
-	AddTrainer(44781, L["Opuno Ironhorn"], BZ["Orgrimmar"], 40.6, 49.4, HORDE) -- UPDATED
-	AddTrainer(44783, L["Hiwahi Three-Feathers"], BZ["Orgrimmar"], 38.8, 50.5, HORDE)
-	AddTrainer(45540, L["Krenk Choplimb"], BZ["Orgrimmar"], 37.5, 87.3, HORDE)
-	AddTrainer(45548, L["Kark Helmbreaker"], BZ["Orgrimmar"], 36.0, 83.0, HORDE) -- UPDATED
-	AddTrainer(45550, L["Zarbo Porkpatty"], BZ["Orgrimmar"], 39.0, 85.8, NEUTRAL)
-	AddTrainer(45559, L["Nivi Weavewell"], BZ["Orgrimmar"], 41.1, 79.7, HORDE)
-	AddTrainer(46357, L["Gonto"], BZ["Orgrimmar"], 44.57, 78.61, HORDE)
-	AddTrainer(46675, L["Lugrah"], BZ["Orgrimmar"], 72.49, 34.31, HORDE) -- UPDATED
-	AddTrainer(46709, L["Arugi"], BZ["Orgrimmar"], 56.5, 61.5, HORDE) -- UPDATED
-	AddTrainer(46716, L["Nerog"], BZ["Orgrimmar"], 55.2, 56.7, HORDE)
-	AddTrainer(47405, L["The Chef"], BZ["Tirisfal Glades"], 61.2, 52.6, HORDE)
-	AddTrainer(47418, L["Runda"], BZ["Durotar"], 52.8, 42.0, HORDE)
-	AddTrainer(49789, L["Allison"], BZ["Hellfire Peninsula"], 56.8, 37.4, HORDE) -- UPDATED
-	AddTrainer(49879, L["Doc Zapnozzle"], BZ["Azshara"], 57.07, 50.71, HORDE) -- UPDATED
-	AddTrainer(50574, L["Amelia Atherton"], BZ["Gilneas"], 36.8, 65.7, ALLIANCE)

 	self.InitTrainer = nil
 end
diff --git a/Database/Trainers/Alchemy.lua b/Database/Trainers/Alchemy.lua
new file mode 100644
index 0000000..60d9267
--- /dev/null
+++ b/Database/Trainers/Alchemy.lua
@@ -0,0 +1,66 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeAlchemyTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(1215, "Alchemist Mallory", "Elwynn Forest", 39.8, 48.3, "Alliance")
+	AddTrainer(1246, "Vosur Brakthel", "Ironforge", 66.5, 55.2, "Alliance")
+	AddTrainer(1386, "Rogvar", "Swamp of Sorrows", 48.4, 55.7, "Horde")
+	AddTrainer(1470, "Ghak Healtouch", "Loch Modan", 37, 49.2, "Alliance")
+	AddTrainer(2132, "Carolai Anise", "Tirisfal Glades", 59.5, 52.2, "Horde")
+	AddTrainer(2391, "Serge Hinott", "Hillsbrad Foothills", 61.6, 19.2, "Horde")
+	AddTrainer(2837, "Jaxin Chong", "The Cape of Stranglethorn", 42.6, 74.8, "Neutral")
+	AddTrainer(3009, "Bena Winterhoof", "Thunder Bluff", 46.8, 33.5, "Horde")
+	AddTrainer(3184, "Miao'zan", "Durotar", 55.5, 74, "Horde")
+	AddTrainer(3347, "Yelmak", "Orgrimmar", 56.7, 33.2, "Horde")
+	AddTrainer(3603, "Cyndra Kindwhisper", "Teldrassil", 57.6, 60.7, "Alliance")
+	AddTrainer(3964, "Kylanna", "Ashenvale", 50.8, 67.1, "Alliance")
+	AddTrainer(4160, "Ainethil", "Darnassus", 55, 23.8, "Alliance")
+	AddTrainer(4611, "Doctor Herbert Halsey", "Undercity", 47.7, 73, "Horde")
+	AddTrainer(4900, "Alchemist Narett", "Dustwallow Marsh", 64, 47.7, "Alliance")
+	AddTrainer(5177, "Tally Berryfizz", "Ironforge", 66.6, 55.2, "Alliance")
+	AddTrainer(5499, "Lilyssia Nightbreeze", "Stormwind City", 55.6, 85.9, "Alliance")
+	AddTrainer(7948, "Kylanna Windwhisper", "Feralas", 32.6, 43.8, "Alliance")
+	AddTrainer(16161, "Arcanist Sheynathren", "Eversong Woods", 38.2, 72.5, "Horde")
+	AddTrainer(16588, "Apothecary Antonivich", "Hellfire Peninsula", 52.4, 36.5, "Horde")
+	AddTrainer(16642, "Camberon", "Silvermoon City", 66.1, 17.4, "Horde")
+	AddTrainer(16723, "Lucc", "The Exodar", 27.5, 60.9, "Alliance")
+	AddTrainer(17215, "Daedal", "Azuremyst Isle", 48.5, 51.5, "Alliance")
+	AddTrainer(18802, "Alchemist Gribble", "Hellfire Peninsula", 53.8, 65.8, "Alliance")
+	AddTrainer(19052, "Lorokeem", "Shattrath City", 45.4, 19.5, "Neutral")
+	AddTrainer(26903, "Lanolis Dewdrop", "Howling Fjord", 58.4, 62.3, "Alliance")
+	AddTrainer(26951, "Wilhelmina Renel", "Howling Fjord", 78.7, 28.5, "Horde")
+	AddTrainer(26975, "Arthur Henslowe", "Borean Tundra", 41.8, 54.3, "Horde")
+	AddTrainer(26987, "Falorn Nightwhisper", "Borean Tundra", 57.8, 71.9, "Alliance")
+	AddTrainer(27023, "Apothecary Bressa", "Dragonblight", 36.2, 48.7, "Horde")
+	AddTrainer(27029, "Apothecary Wormwick", "Dragonblight", 76.9, 62.2, "Horde")
+	AddTrainer(28703, "Linzy Blackbolt", "Dalaran", 42.5, 32.1, "Neutral")
+	AddTrainer(33588, "Crystal Brightspark", "Icecrown", 71.6, 21, "Neutral")
+	AddTrainer(33608, 51304, "Shattrath City", 44.3, 90.4, "Neutral")
+	AddTrainer(33674, "Alchemist Kanhu", "Shattrath City", 38.6, 30, "Neutral")
+	AddTrainer(47418, "Runda", "Durotar", 52.8, 42, "Horde")
+
+	self.InitializeAlchemyTrainers = nil
+end
diff --git a/Database/Trainers/Blacksmithing.lua b/Database/Trainers/Blacksmithing.lua
new file mode 100644
index 0000000..2da7c7f
--- /dev/null
+++ b/Database/Trainers/Blacksmithing.lua
@@ -0,0 +1,75 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeBlacksmithingTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(514, "Smith Argus", "Elwynn Forest", 41.7, 65.6, "Alliance")
+	AddTrainer(1241, "Tognus Flintfire", "Dun Morogh", 45.3, 52, "Alliance")
+	AddTrainer(2836, "Brikk Keencraft", "The Cape of Stranglethorn", 44.1, 70.9, "Neutral")
+	AddTrainer(2998, "Karn Stonehoof", "Thunder Bluff", 39, 56.5, "Horde")
+	AddTrainer(3136, "Clarise Gnarltree", "Duskwood", 74, 48.5, "Alliance")
+	AddTrainer(3174, "Dwukk", "Durotar", 52, 40.7, "Horde")
+	AddTrainer(3355, "Saru Steelfury", "Orgrimmar", 76.5, 34.53, "Horde")
+	AddTrainer(3478, "Traugh", "Northern Barrens", 48.3, 56.2, "Horde")
+	AddTrainer(3557, "Guillaume Sorouy", "Silverpine Forest", 43.2, 41, "Horde")
+	AddTrainer(4258, "Bengus Deepforge", "Ironforge", 51, 43, "Alliance")
+	AddTrainer(4596, "James Van Brunt", "Undercity", 61.2, 29.9, "Horde")
+	AddTrainer(5164, "Grumnus Steelshaper", "Ironforge", 50.2, 42.8, "Alliance")
+	AddTrainer(5511, "Therum Deepforge", "Stormwind City", 63.9, 37.8, "Alliance")
+	AddTrainer(6299, "Delfrum Flintbeard", "Darkshore", 38.2, 41, "Alliance")
+	AddTrainer(7230, "Shayis Steelfury", "Orgrimmar", 75.91, 37.1, "Horde")
+	AddTrainer(7231, "Kelgruk Bloodaxe", "Orgrimmar", 76.34, 37.08, "Horde")
+	AddTrainer(11146, "Ironus Coldsteel", "Ironforge", 50.5, 43.3, "Alliance")
+	AddTrainer(11177, "Okothos Ironrager", "Orgrimmar", 75.35, 34.04, "Horde")
+	AddTrainer(11178, "Borgosh Corebender", "Orgrimmar", 75.89, 33.61, "Horde")
+	AddTrainer(15400, "Arathel Sunforge", "Eversong Woods", 59.6, 62.6, "Horde")
+	AddTrainer(16583, "Rohok", "Hellfire Peninsula", 53.2, 38.2, "Horde")
+	AddTrainer(16669, "Bemarrin", "Silvermoon City", 79.5, 39, "Horde")
+	AddTrainer(16724, "Miall", "The Exodar", 60, 89.6, "Alliance")
+	AddTrainer(16823, "Humphry", "Hellfire Peninsula", 56.8, 63.8, "Alliance")
+	AddTrainer(17245, "Blacksmith Calypso", "Azuremyst Isle", 46.4, 71.1, "Alliance")
+	AddTrainer(19341, "Grutah", "Shadowmoon Valley", 29.7, 31.5, "Horde")
+	AddTrainer(20124, "Kradu Grimblade", "Shattrath City", 69.2, 44.8, "Neutral")
+	AddTrainer(20125, "Zula Slagfury", "Shattrath City", 70.1, 42, "Neutral")
+	AddTrainer(26564, "Borus Ironbender", "Dragonblight", 36.6, 47.1, "Horde")
+	AddTrainer(26904, "Rosina Rivet", "Howling Fjord", 59.6, 63.7, "Alliance")
+	AddTrainer(26952, "Kristen Smythe", "Howling Fjord", 79.2, 29, "Horde")
+	AddTrainer(26981, "Crog Steelspine", "Borean Tundra", 40.8, 55.3, "Horde")
+	AddTrainer(26988, "Argo Strongstout", "Borean Tundra", 57.2, 66.6, "Alliance")
+	AddTrainer(27034, "Josric Fame", "Dragonblight", 75.9, 63.2, "Horde")
+	AddTrainer(28694, "Alard Schmied", "Dalaran", 45.5, 28.5, "Neutral")
+	AddTrainer(29505, "Imindril Spearsong", "Dalaran", 45.5, 28.6, "Neutral")
+	AddTrainer(29506, "Orland Schaeffer", "Dalaran", 45, 28.4, "Neutral")
+	AddTrainer(29924, "Brandig", "The Storm Peaks", 28.9, 74.9, "Alliance")
+	AddTrainer(33591, "Rekka the Hammer", "Icecrown", 71.9, 20.9, "Neutral")
+	AddTrainer(33609, 51300, "Shattrath City", 43.9, 90.5, "Neutral")
+	AddTrainer(33631, "Barien", "Shattrath City", 43.5, 65.1, "Neutral")
+	AddTrainer(33675, "Onodo", "Shattrath City", 37.7, 30.3, "Neutral")
+	AddTrainer(37072, "Rogg", "Orgrimmar", 44.5, 78, "Horde")
+	AddTrainer(44781, "Opuno Ironhorn", "Orgrimmar", 40.6, 49.4, "Horde")
+	AddTrainer(45548, "Kark Helmbreaker", "Orgrimmar", 36, 83, "Horde")
+
+	self.InitializeBlacksmithingTrainers = nil
+end
diff --git a/Database/Trainers/Cooking.lua b/Database/Trainers/Cooking.lua
new file mode 100644
index 0000000..f1afd27
--- /dev/null
+++ b/Database/Trainers/Cooking.lua
@@ -0,0 +1,68 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeCookingTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(1355, "Cook Ghilm", "Dun Morogh", 68.4, 54.5, "Alliance")
+	AddTrainer(1382, "Mudduk", "Northern Stranglethorn", 37.2, 49.2, "Horde")
+	AddTrainer(1430, "Tomas", "Elwynn Forest", 44.3, 66, "Alliance")
+	AddTrainer(1699, "Gremlock Pilsnor", "Dun Morogh", 47.6, 52.3, "Alliance")
+	AddTrainer(2818, "Slagg", "Arathi Highlands", 74.1, 33.8, "Horde")
+	AddTrainer(3026, "Aska Mistrunner", "Thunder Bluff", 51.1, 52.9, "Horde")
+	AddTrainer(3067, "Pyall Silentstride", "Mulgore", 45.5, 58.1, "Horde")
+	AddTrainer(3087, "Crystal Boughman", "Redridge Mountains", 22.8, 43.6, "Alliance")
+	AddTrainer(3399, "Zamja", "Orgrimmar", 57.5, 53.7, "Horde")
+	AddTrainer(4210, "Alegorn", "Darnassus", 50, 36.6, "Alliance")
+	AddTrainer(4552, "Eunice Burch", "Undercity", 62.3, 44.6, "Horde")
+	AddTrainer(5159, "Daryl Riknussun", "Ironforge", 60.1, 36.8, "Alliance")
+	AddTrainer(5482, "Stephen Ryback", "Stormwind City", 78.2, 53.2, "Alliance")
+	AddTrainer(6286, "Zarrin", "Teldrassil", 57.1, 61.3, "Alliance")
+	AddTrainer(8306, "Duhng", "Northern Barrens", 55.4, 61.3, "Horde")
+	AddTrainer(16253, "Master Chef Mouldier", "Ghostlands", 48.3, 30.9, "Horde")
+	AddTrainer(16277, "Quarelestra", "Eversong Woods", 48.6, 47.1, "Horde")
+	AddTrainer(16676, "Sylann", "Silvermoon City", 69.5, 71.5, "Horde")
+	AddTrainer(16719, "Mumman", "The Exodar", 55.6, 27.1, "Alliance")
+	AddTrainer(17246, "\"Cookie\" McWeaksauce", "Azuremyst Isle", 46.7 , 70.5, "Alliance" )
+	AddTrainer(18987, "Gaston", "Hellfire Peninsula", 54.1, 63.5, "Alliance")
+	AddTrainer(18988, "Baxter", "Hellfire Peninsula", 56.8, 37.5, "Horde")
+	AddTrainer(18993, "Naka", "Zangarmarsh", 78.5, 63, "Neutral")
+	AddTrainer(19185, "Jack Trapper", "Shattrath City", 63, 68.5, "Neutral")
+	AddTrainer(19186, "Kylene", "Shattrath City", 76.5, 33, "Neutral")
+	AddTrainer(19369, "Celie Steelwing", "Shadowmoon Valley", 37.2, 58.5, "Alliance")
+	AddTrainer(26905, "Brom Brewbaster", "Howling Fjord", 58.2, 62.1, "Alliance")
+	AddTrainer(26953, "Thomas Kolichio", "Howling Fjord", 78.6, 29.4, "Horde")
+	AddTrainer(26972, "Orn Tenderhoof", "Borean Tundra", 42, 54.2, "Horde")
+	AddTrainer(26989, "Rollick MacKreel", "Borean Tundra", 57.9, 71.5, "Alliance")
+	AddTrainer(28705, "Katherine Lee", "Dalaran", 40.8, 65.2, "Alliance")
+	AddTrainer(29631, "Awilo Lon'gomba", "Dalaran", 70, 38.6, "Horde")
+	AddTrainer(33587, "Bethany Cromwell", "Icecrown", 72.4, 20.8, "Neutral")
+	AddTrainer(33619, 51296, "Shattrath City", 43.6, 91.1, "Neutral") -- Cooking
+	AddTrainer(45550, "Zarbo Porkpatty", "Orgrimmar", 39, 85.8, "Neutral")
+	AddTrainer(46709, "Arugi", "Orgrimmar", 56.5, 61.5, "Horde")
+	AddTrainer(47405, "The Chef", "Tirisfal Glades", 61.2, 52.6, "Horde")
+	AddTrainer(49789, "Allison", "Hellfire Peninsula", 56.8, 37.4, "Horde")
+
+	self.InitializeCookingTrainers = nil
+end
diff --git a/Database/Trainers/Enchanting.lua b/Database/Trainers/Enchanting.lua
new file mode 100644
index 0000000..bcffccd
--- /dev/null
+++ b/Database/Trainers/Enchanting.lua
@@ -0,0 +1,59 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeEnchantingTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(1317, "Lucan Cordell", "Stormwind City", 53, 74.3, "Alliance")
+	AddTrainer(3011, "Teg Dawnstrider", "Thunder Bluff", 45, 38, "Horde")
+	AddTrainer(3345, "Godan", "Orgrimmar", 53.8, 38.5, "Horde")
+	AddTrainer(3606, "Alanna Raveneye", "Teldrassil", 36.8, 34.2, "Alliance")
+	AddTrainer(4213, "Taladan", "Darnassus", 58.6, 13.2, "Alliance")
+	AddTrainer(4616, "Lavinia Crowe", "Undercity", 62.1, 60.5, "Horde")
+	AddTrainer(5157, "Gimble Thistlefuzz", "Ironforge", 60, 45.4, "Alliance")
+	AddTrainer(5695, "Vance Undergloom", "Tirisfal Glades", 61.7, 51.6, "Horde")
+	AddTrainer(7949, "Xylinnia Starshine", "Feralas", 31.6, 44.3, "Alliance")
+	AddTrainer(11072, "Kitta Firewind", "Elwynn Forest", 64.9, 70.6, "Alliance")
+	AddTrainer(11073, "Annora", "Uldaman", 0, 0, "Neutral")
+	AddTrainer(11074, "Hgarth", "Stonetalon Mountains", 49.2, 57.2, "Horde")
+	AddTrainer(16160, "Magistrix Eredania", "Eversong Woods", 38.2, 72.6, "Horde")
+	AddTrainer(16633, "Sedana", "Silvermoon City", 70, 24, "Horde")
+	AddTrainer(16725, "Nahogg", "The Exodar", 40.5, 39.2, "Alliance")
+	AddTrainer(18747, "Krugosh", "Hellfire Peninsula", 55.5, 37.6, "Horde")
+	AddTrainer(18753, "Felannia", "Hellfire Peninsula", 52.3, 36.1, "Horde")
+	AddTrainer(18773, "Johan Barnes", "Hellfire Peninsula", 53.7, 66.1, "Alliance")
+	AddTrainer(19251, "Enchantress Volali", "Shattrath City", 43.2, 92.3, "Neutral")
+	AddTrainer(19252, "High Enchanter Bardolan", "Shattrath City", 43.2, 92.2, "Neutral")
+	AddTrainer(19540, "Asarnan", "Netherstorm", 44.2, 33.7, "Neutral")
+	AddTrainer(26906, "Elizabeth Jackson", "Howling Fjord", 58.6, 62.8, "Alliance")
+	AddTrainer(26954, "Emil Autumn", "Howling Fjord", 78.7, 28.3, "Horde")
+	AddTrainer(26980, "Eorain Dawnstrike", "Borean Tundra", 41.2, 53.9, "Horde")
+	AddTrainer(26990, "Alexis Marlowe", "Borean Tundra", 57.6, 71.6, "Alliance")
+	AddTrainer(28693, "Enchanter Nalthanis", "Dalaran", 39.1, 40.5, "Neutral")
+	AddTrainer(33583, "Fael Morningsong", "Icecrown", 73, 20.6, "Neutral")
+	AddTrainer(33610, 51313, "Shattrath City", 43.6, 90.4, "Neutral")
+	AddTrainer(33676, "Zurii", "Shattrath City", 36.4, 44.6, "Neutral")
+
+	self.InitializeEnchantingTrainers = nil
+end
diff --git a/Database/Trainers/Engineering.lua b/Database/Trainers/Engineering.lua
new file mode 100644
index 0000000..8e0a6c1
--- /dev/null
+++ b/Database/Trainers/Engineering.lua
@@ -0,0 +1,69 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeEngineeringTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(1676, "Finbus Geargrind", "Duskwood", 77.4, 48.6, "Alliance")
+	AddTrainer(1702, "Bronk Guzzlegear", "Dun Morogh", 50.2, 50.4, "Alliance")
+	AddTrainer(3290, "Deek Fizzlebizz", "Loch Modan", 45.9, 13.6, "Alliance")
+	AddTrainer(3494, "Tinkerwiz", "Northern Barrens", 68.5, 69.2, "Neutral")
+	AddTrainer(5174, "Springspindle Fizzlegear", "Ironforge", 68.4, 44, "Alliance")
+	AddTrainer(5518, "Lilliam Sparkspindle", "Stormwind City", 62.2, 30.5, "Alliance")
+	AddTrainer(7406, "Oglethorpe Obnoticus", "The Cape of Stranglethorn", 43, 72.1, "Neutral")
+	AddTrainer(7944, "Tinkmaster Overspark", "Ironforge", 69.8, 50, "Alliance")
+	AddTrainer(8126, "Nixx Sprocketspring", "Tanaris", 52.5, 27.3, "Neutral")
+	AddTrainer(8736, "Buzzek Bracketswing", "Tanaris", 52.3, 27.7, "Neutral")
+	AddTrainer(8738, "Vazario Linkgrease", "Northern Barrens", 68.5, 69.2, "Neutral")
+	AddTrainer(11017, "Roxxik", "Orgrimmar", 56.85, 56.54, "Horde")
+	AddTrainer(11025, "Mukdrak", "Durotar", 52.2, 40.8, "Horde")
+	AddTrainer(11031, "Franklin Lloyd", "Undercity", 75.9, 73.7, "Horde")
+	AddTrainer(11037, "Jenna Lemkenilli", "Darkshore", 38.3, 41.1, "Alliance")
+	AddTrainer(14742, "Zap Farflinger", "Winterspring", 61.2, 37.6, "Neutral")
+	AddTrainer(14743, "Jhordy Lapforge", "Tanaris", 52.3, 26.9, "Neutral")
+	AddTrainer(16667, "Danwe", "Silvermoon City", 76.5, 40.9, "Horde")
+	AddTrainer(16726, "Ockil", "The Exodar", 54, 92.1, "Alliance")
+	AddTrainer(17222, "Artificer Daelo", "Azuremyst Isle", 48, 51, "Alliance")
+	AddTrainer(17634, "K. Lee Smallfry", "Zangarmarsh", 68.6, 50.2, "Alliance")
+	AddTrainer(17637, "Mack Diver", "Zangarmarsh", 33.9, 51, "Horde")
+	AddTrainer(18752, "Zebig", "Hellfire Peninsula", 54.8, 38.5, "Horde")
+	AddTrainer(18775, "Lebowski", "Hellfire Peninsula", 55.7, 65.5, "Alliance")
+	AddTrainer(19576, "Xyrol", "Netherstorm", 32.5, 66.7, "Neutral")
+	AddTrainer(21493, "Kablamm Farflinger", "Netherstorm", 32.9, 63.7, "Neutral")
+	AddTrainer(21494, "Smiles O'Byron", "Blade's Edge Mountains", 60.3, 65.2, "Neutral")
+	AddTrainer(24868, "Niobe Whizzlespark", "Shadowmoon Valley", 36.7, 54.8, "Alliance")
+	AddTrainer(25099, "Jonathan Garrett", "Shadowmoon Valley", 29.2, 28.5, "Horde")
+	AddTrainer(25277, "Chief Engineer Leveny", "Borean Tundra", 42.6, 53.7, "Horde")
+	AddTrainer(26907, "Tisha Longbridge", "Howling Fjord", 59.7, 64, "Alliance")
+	AddTrainer(26955, "Jamesina Watterly", "Howling Fjord", 78.5, 30, "Horde")
+	AddTrainer(26991, "Sock Brightbolt", "Borean Tundra", 57.7, 72.2, "Alliance")
+	AddTrainer(28697, "Timofey Oshenko", "Dalaran", 39, 27.5, "Neutral")
+	AddTrainer(29513, "Didi the Wrench", "Dalaran", 39.5, 25.5, "Neutral")
+	AddTrainer(29514, "Findle Whistlesteam", "Dalaran", 39.5, 25.2, "Neutral")
+	AddTrainer(33586, "Binkie Brightgear", "Icecrown", 72.1, 20.9, "Neutral")
+	AddTrainer(33611, 51306, "Shattrath City", 43.7, 90.1, "Neutral")
+	AddTrainer(33634, "Engineer Sinbei", "Shattrath City", 43.1, 64.9, "Neutral")
+
+	self.InitializeEngineeringTrainers = nil
+end
diff --git a/Database/Trainers/FirstAid.lua b/Database/Trainers/FirstAid.lua
new file mode 100644
index 0000000..bdf97e3
--- /dev/null
+++ b/Database/Trainers/FirstAid.lua
@@ -0,0 +1,62 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeFirstAidTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(2326, "Thamner Pol", "Dun Morogh", 47.2, 52.6, "Alliance")
+	AddTrainer(2327, "Shaina Fuller", "Stormwind City", 52.9, 44.8, "Alliance")
+	AddTrainer(2329, "Michelle Belle", "Elwynn Forest", 43.4, 65.6, "Alliance")
+	AddTrainer(2798, "Pand Stonebinder", "Thunder Bluff", 29.4, 21.5, "Horde")
+	AddTrainer(3181, "Fremal Doohickey", "Wetlands", 10.8, 61.3, "Alliance")
+	AddTrainer(4211, "Dannelor", "Darnassus", 51.7, 12.6, "Alliance")
+	AddTrainer(4591, "Mary Edras", "Undercity", 73.5, 54.8, "Horde")
+	AddTrainer(5150, "Nissa Firestone", "Ironforge", 54, 57.8, "Alliance")
+	AddTrainer(5759, "Nurse Neela", "Tirisfal Glades", 61.8, 52.8, "Horde")
+	AddTrainer(5939, "Vira Younghoof", "Mulgore", 46.8, 60.8, "Horde")
+	AddTrainer(5943, "Rawrk", "Durotar", 54.1, 42, "Horde")
+	AddTrainer(6094, "Byancie", "Teldrassil", 55.3, 56.8, "Alliance")
+	AddTrainer(16272, "Kanaria", "Eversong Woods", 48.5, 47.6, "Horde")
+	AddTrainer(16662, "Alestus", "Silvermoon City", 77.6, 71.3, "Horde")
+	AddTrainer(16731, "Nus", "The Exodar", 39, 22.5, "Alliance")
+	AddTrainer(17214, "Anchorite Fateema", "Azuremyst Isle", 48.5, 51.8, "Alliance")
+	AddTrainer(17424, "Anchorite Paetheus", "Bloodmyst Isle", 54.7, 54, "Alliance")
+	AddTrainer(18990, "Burko", "Hellfire Peninsula", 22.4, 39.3, "Alliance")
+	AddTrainer(18991, "Aresella", "Hellfire Peninsula", 26.3, 62, "Horde")
+	AddTrainer(19184, "Mildred Fletcher", "Shattrath City", 66.5, 13.5, "Neutral")
+	AddTrainer(19478, "Fera Palerunner", "Blade's Edge Mountains", 53.7, 55, "Horde")
+	AddTrainer(22477, "Anchorite Ensham", "Terokkar Forest", 30.8, 75.9, "Neutral")
+	AddTrainer(23734, "Anchorite Yazmina", "Howling Fjord", 59.5, 62.3, "Alliance")
+	AddTrainer(26956, "Sally Tompkins", "Howling Fjord", 79.4, 29.4, "Horde")
+	AddTrainer(26992, "Brynna Wilson", "Borean Tundra", 57.8, 66.5, "Alliance")
+	AddTrainer(28706, "Olisarra the Kind", "Dalaran", 37.5, 36.7, "Neutral")
+	AddTrainer(29233, "Nurse Applewood", "Borean Tundra", 41.7, 54.5, "Horde")
+	AddTrainer(33589, "Joseph Wilson", "Icecrown", 71.5, 22.5, "Neutral")
+	AddTrainer(33621, 45542, "Shattrath City", 43.6, 90.4, "Neutral")
+	AddTrainer(45540, "Krenk Choplimb", "Orgrimmar", 37.5, 87.3, "Horde")
+	AddTrainer(49879, "Doc Zapnozzle", "Azshara", 57.07, 50.71, "Horde")
+	AddTrainer(50574, "Amelia Atherton", "Gilneas", 36.8, 65.7, "Alliance")
+
+	self.InitializeFirstAidTrainers = nil
+end
diff --git a/Database/Trainers/Inscription.lua b/Database/Trainers/Inscription.lua
new file mode 100644
index 0000000..362d86e
--- /dev/null
+++ b/Database/Trainers/Inscription.lua
@@ -0,0 +1,49 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeInscriptionTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(26916, "Mindri Dinkles", "Howling Fjord", 58.6, 62.8, "Alliance")
+	AddTrainer(26959, "Booker Kells", "Howling Fjord", 79.4, 29.3, "Horde")
+	AddTrainer(26977, "Adelene Sunlance", "Borean Tundra", 41.2, 53.9, "Horde")
+	AddTrainer(26995, "Tink Brightbolt", "Borean Tundra", 57.6, 71.7, "Alliance")
+	AddTrainer(28702, "Professor Pallin", "Dalaran", 41.8, 36.9, "Neutral")
+	AddTrainer(30706, "Jo'mah", "Orgrimmar", 56.2, 46.5, "Horde")
+	AddTrainer(30709, "Poshken Hardbinder", "Thunder Bluff", 29.2, 22, "Horde")
+	AddTrainer(30710, "Zantasia", "Silvermoon City", 69.5, 24, "Horde")
+	AddTrainer(30711, "Margaux Parchley", "Undercity", 61, 58.5, "Horde")
+	AddTrainer(30713, "Catarina Stanford", "Stormwind City", 49.8, 74.7, "Alliance")
+	AddTrainer(30715, "Feyden Darkin", "Darnassus", 58.9, 14.1, "Alliance")
+	AddTrainer(30716, "Thoth", "The Exodar", 40.5, 39.1, "Alliance")
+	AddTrainer(30717, "Elise Brightletter", "Ironforge", 60.7, 44.9, "Alliance")
+	AddTrainer(30721, "Michael Schwan", "Hellfire Peninsula", 53.9, 65.5, "Alliance")
+	AddTrainer(30722, "Neferatti", "Hellfire Peninsula", 52.3, 36.1, "Horde")
+	AddTrainer(33603, "Arthur Denny", "Icecrown", 71.7, 20.9, "Neutral")
+	AddTrainer(33615, 45363, "Shattrath City", 43.5, 90.7, "Neutral")
+	AddTrainer(33679, "Recorder Lidio", "Shattrath City", 36.2, 44, "Neutral")
+	AddTrainer(46716, "Nerog", "Orgrimmar", 55.2, 56.7, "Horde")
+
+	self.InitializeInscriptionTrainers = nil
+end
diff --git a/Database/Trainers/Jewelcrafting.lua b/Database/Trainers/Jewelcrafting.lua
new file mode 100644
index 0000000..7a3768c
--- /dev/null
+++ b/Database/Trainers/Jewelcrafting.lua
@@ -0,0 +1,47 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeJewelcraftingTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(15501, "Aleinia", "Eversong Woods", 48.5, 47.5, "Horde")
+	AddTrainer(18751, "Kalaen", "Hellfire Peninsula", 56.8, 37.7, "Horde")
+	AddTrainer(18774, "Tatiana", "Hellfire Peninsula", 54.6, 63.6, "Alliance")
+	AddTrainer(19063, "Hamanar", "Shattrath City", 35.7, 20.5, "Neutral")
+	AddTrainer(19539, "Jazdalaad", "Netherstorm", 44.5, 34, "Neutral")
+	AddTrainer(19775, "Kalinda", "Silvermoon City", 90.5, 74.1, "Horde")
+	AddTrainer(19778, "Farii", "The Exodar", 45, 24, "Alliance")
+	AddTrainer(26915, "Ounhulo", "Howling Fjord", 59.9, 63.8, "Alliance")
+	AddTrainer(26960, "Carter Tiffens", "Howling Fjord", 79.3, 28.8, "Horde")
+	AddTrainer(26982, "Geba'li", "Borean Tundra", 41.6, 53.4, "Horde")
+	AddTrainer(26997, "Alestos", "Borean Tundra", 57.5, 72.3, "Alliance")
+	AddTrainer(28701, "Timothy Jones", "Dalaran", 40.5, 35.2, "Neutral")
+	AddTrainer(33590, "Oluros", "Icecrown", 71.5, 20.8, "Neutral")
+	AddTrainer(33614, 51311, "Shattrath City", 43.6, 90.8, "Neutral")
+	AddTrainer(33680, "Nemiha", "Shattrath City", 36.1, 47.7, "Neutral")
+	AddTrainer(44582, "Theresa Denman", "Stormwind City", 63.5, 61.6, "Alliance")
+	AddTrainer(46675, "Lugrah", "Orgrimmar", 72.49, 34.31, "Horde")
+
+	self.InitializeJewelcraftingTrainers = nil
+end
diff --git a/Database/Trainers/Leatherworking.lua b/Database/Trainers/Leatherworking.lua
new file mode 100644
index 0000000..660f1dc
--- /dev/null
+++ b/Database/Trainers/Leatherworking.lua
@@ -0,0 +1,72 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeLeatherworkingTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(1385, "Brawn", "Northern Stranglethorn", 37.8, 50.4, "Horde")
+	AddTrainer(1632, "Adele Fielder", "Elwynn Forest", 46.4, 62.1, "Alliance")
+	AddTrainer(3007, "Una", "Thunder Bluff", 41.8, 42.7, "Horde")
+	AddTrainer(3069, "Chaw Stronghide", "Mulgore", 45.5, 57.9, "Horde")
+	AddTrainer(3365, "Karolek", "Orgrimmar", 62.8, 44.5, "Horde")
+	AddTrainer(3549, "Shelene Rhobart", "Tirisfal Glades", 65.5, 61, "Horde")
+	AddTrainer(3605, "Nadyia Maneweaver", "Teldrassil", 41.8, 49.5, "Alliance")
+	AddTrainer(3967, "Aayndia Floralwind", "Ashenvale", 35.9, 52.1, "Alliance")
+	AddTrainer(4212, "Telonis", "Darnassus", 64.5, 21.3, "Alliance")
+	AddTrainer(4588, "Arthur Moore", "Undercity", 70.3, 58.5, "Horde")
+	AddTrainer(5127, "Fimble Finespindle", "Ironforge", 39.8, 33.5, "Alliance")
+	AddTrainer(5564, "Simon Tanner", "Stormwind City", 71.8, 62.9, "Alliance")
+	AddTrainer(5784, "Waldor", "Wailing Caverns", 32.6, 28.5, "Neutral")
+	AddTrainer(7866, "Peter Galen", "Azshara", 37.5, 65.5, "Alliance")
+	AddTrainer(7867, "Thorkaf Dragoneye", "Badlands", 62.6, 57.6, "Horde")
+	AddTrainer(7868, "Sarah Tanner", "Searing Gorge", 63.7, 75.7, "Alliance")
+	AddTrainer(7869, "Brumn Winterhoof", "Arathi Highlands", 28.2, 45, "Horde")
+	AddTrainer(7870, "Caryssia Moonhunter", "Feralas", 89.4, 46.5, "Alliance")
+	AddTrainer(7871, "Se'Jib", "Northern Stranglethorn", 45.3, 58.7, "Horde")
+	AddTrainer(8153, "Narv Hidecrafter", "Desolace", 55.3, 56.3, "Horde")
+	AddTrainer(11097, "Drakk Stonehand", "The Hinterlands", 13.4, 43.4, "Alliance")
+	AddTrainer(11098, "Hahrana Ironhide", "Feralas", 74.4, 43.1, "Horde")
+	AddTrainer(16278, "Sathein", "Eversong Woods", 53.5, 51, "Horde")
+	AddTrainer(16688, "Lynalis", "Silvermoon City", 84, 80.2, "Horde")
+	AddTrainer(16728, "Akham", "The Exodar", 66, 74.6, "Alliance")
+	AddTrainer(17442, "Moordo", "Azuremyst Isle", 44.8, 23.8, "Alliance")
+	AddTrainer(18754, "Barim Spilthoof", "Hellfire Peninsula", 56.2, 38.6, "Horde")
+	AddTrainer(18771, "Brumman", "Hellfire Peninsula", 54.1, 64, "Alliance")
+	AddTrainer(19187, "Darmari", "Shattrath City", 66.8, 67.1, "Neutral")
+	AddTrainer(21087, "Grikka", "Blade's Edge Mountains", 76.8, 65.5, "Horde")
+	AddTrainer(26911, "Bernadette Dexter", "Howling Fjord", 59.9, 63.6, "Alliance")
+	AddTrainer(26961, "Gunter Hansen", "Howling Fjord", 78.3, 28.2, "Horde")
+	AddTrainer(26996, "Awan Iceborn", "Borean Tundra", 76.3, 37, "Horde")
+	AddTrainer(26998, "Rosemary Bovard", "Borean Tundra", 57.6, 71.9, "Alliance")
+	AddTrainer(28700, "Diane Cannings", "Dalaran", 35.7, 28.8, "Neutral")
+	AddTrainer(29507, "Manfred Staller", "Dalaran", 34.2, 29.5, "Neutral")
+	AddTrainer(29508, "Andellion", "Dalaran", 34.5, 27.1, "Neutral")
+	AddTrainer(29509, "Namha Moonwater", "Dalaran", 36.3, 29.4, "Neutral")
+	AddTrainer(33581, "Kul'de", "Icecrown", 71.8, 20.8, "Neutral")
+	AddTrainer(33612, 51302, "Shattrath City", 43.8, 90.9, "Neutral")
+	AddTrainer(33635, "Daenril", "Shattrath City", 41.9, 63.4, "Neutral")
+	AddTrainer(33681, "Korim", "Shattrath City", 37.6, 28, "Neutral")
+
+	self.InitializeLeatherworkingTrainers = nil
+end
diff --git a/Database/Trainers/Runeforging.lua b/Database/Trainers/Runeforging.lua
new file mode 100644
index 0000000..0910ea1
--- /dev/null
+++ b/Database/Trainers/Runeforging.lua
@@ -0,0 +1,34 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeRuneforgingTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(29194, "Amal'thazad", "Eastern Plaguelands", 80.5, 48.1, "Neutral")
+	AddTrainer(29195, "Lady Alistra", "Eastern Plaguelands", 83.7, 44.6, "Neutral")
+	AddTrainer(29196, "Lord Thorval", "Eastern Plaguelands", 80.9, 43.8, "Neutral")
+	AddTrainer(31084, "Highlord Darion Mograine", "Eastern Plaguelands", 83.5, 49.5, "Neutral")
+
+	self.InitializeRuneforgingTrainers = nil
+end
diff --git a/Database/Trainers/Smelting.lua b/Database/Trainers/Smelting.lua
new file mode 100644
index 0000000..0987a97
--- /dev/null
+++ b/Database/Trainers/Smelting.lua
@@ -0,0 +1,57 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeSmeltingTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(1681, "Brock Stoneseeker", "Loch Modan", 37.1, 47.8, "Alliance")
+	AddTrainer(1701, "Dank Drizzlecut", "Dun Morogh", 69.3, 55.5, "Alliance")
+	AddTrainer(3001, "Brek Stonehoof", "Thunder Bluff", 34.5, 57.6, "Horde")
+	AddTrainer(3137, "Matt Johnson", "Duskwood", 74, 49.7, "Alliance")
+	AddTrainer(3175, "Krunn", "Durotar", 51.9, 40.9, "Horde")
+	AddTrainer(3357, "Makaru", "Orgrimmar", 72.31, 34.91, "Horde")
+	AddTrainer(3555, "Johan Focht", "Silverpine Forest", 43.4, 40.5, "Horde")
+	AddTrainer(4254, "Geofram Bouldertoe", "Ironforge", 50.3, 26, "Alliance")
+	AddTrainer(4598, "Brom Killian", "Undercity", 55.8, 37, "Horde")
+	AddTrainer(5392, "Yarr Hammerstone", "Dun Morogh", 50, 50.3, "Alliance")
+	AddTrainer(5513, "Gelman Stonehand", "Stormwind City", 59.2, 37.7, "Alliance")
+	AddTrainer(6297, "Kurdram Stonehammer", "Darkshore", 38.2, 41.1, "Alliance")
+	AddTrainer(8128, "Pikkle", "Tanaris", 51.1, 28.1, "Neutral")
+	AddTrainer(16663, "Belil", "Silvermoon City", 79.1, 42.9, "Horde")
+	AddTrainer(16752, "Muaat", "The Exodar", 60, 87.9, "Alliance")
+	AddTrainer(17488, "Dulvi", "Azuremyst Isle", 48.9, 51.1, "Alliance")
+	AddTrainer(18747, "Krugosh", "Hellfire Peninsula", 55.5, 37.6, "Horde")
+	AddTrainer(18779, "Hurnak Grimmord", "Hellfire Peninsula", 56.7, 63.8, "Alliance")
+	AddTrainer(18804, "Prospector Nachlan", "Bloodmyst Isle", 56.3, 54.3, "Alliance")
+	AddTrainer(26912, "Grumbol Stoutpick", "Howling Fjord", 59.9, 63.9, "Alliance")
+	AddTrainer(26962, "Jonathan Lewis", "Howling Fjord", 79.3, 29, "Horde")
+	AddTrainer(26976, "Brunna Ironaxe", "Borean Tundra", 42.6, 53.2, "Horde")
+	AddTrainer(26999, "Fendrig Redbeard", "Borean Tundra", 57.5, 66.2, "Alliance")
+	AddTrainer(28698, "Jedidiah Handers", "Dalaran", 41.5, 26, "Neutral")
+	AddTrainer(33617, 32606, "Shattrath City", 43.6, 90.9, "Neutral")
+	AddTrainer(33682, "Fono", "Shattrath City", 36, 48.5, "Neutral")
+	AddTrainer(46357, "Gonto", "Orgrimmar", 44.57, 78.61, "Horde")
+
+	self.InitializeSmeltingTrainers = nil
+end
diff --git a/Database/Trainers/Tailoring.lua b/Database/Trainers/Tailoring.lua
new file mode 100644
index 0000000..2d41660
--- /dev/null
+++ b/Database/Trainers/Tailoring.lua
@@ -0,0 +1,64 @@
+-----------------------------------------------------------------------
+-- Upvalued Lua API.
+-----------------------------------------------------------------------
+local _G = getfenv(0)
+
+-----------------------------------------------------------------------
+-- AddOn namespace.
+-----------------------------------------------------------------------
+local FOLDER_NAME, private = ...
+
+local LibStub = _G.LibStub
+local BZ = LibStub("LibBabble-Zone-3.0"):GetLookupTable()
+local L = LibStub("AceLocale-3.0"):GetLocale(private.addon_name, true)
+
+-----------------------------------------------------------------------
+-- What we _really_ came here to see...
+-----------------------------------------------------------------------
+function private:InitializeTailoringTrainers()
+	local function AddTrainer(id_num, trainer_name, location, coord_x, coord_y, faction)
+		if _G.type(trainer_name) == "number" then
+			local entry = private:AddListEntry(private.trainer_list, id_num, _G.GetSpellInfo(trainer_name), BZ[location], coord_x, coord_y, faction)
+			entry.spell_id = trainer_name
+		else
+			private:AddListEntry(private.trainer_list, id_num, L[trainer_name], BZ[location], coord_x, coord_y, faction)
+		end
+	end
+
+	AddTrainer(1103, "Eldrin", "Elwynn Forest", 79.3, 69, "Alliance")
+	AddTrainer(1346, "Georgio Bolero", "Stormwind City", 53.2, 81.5, "Alliance")
+	AddTrainer(2399, "Daryl Stack", "Hillsbrad Foothills", 63.7, 20.8, "Horde")
+	AddTrainer(2627, "Grarnik Goodstitch", "The Cape of Stranglethorn", 43.6, 73, "Neutral")
+	AddTrainer(3004, "Tepa", "Thunder Bluff", 44.3, 45, "Horde")
+	AddTrainer(3363, "Magar", "Orgrimmar", 63.5, 50, "Horde")
+	AddTrainer(3484, "Kil'hala", "Northern Barrens", 49.9, 61.2, "Horde")
+	AddTrainer(3523, "Bowen Brisboise", "Tirisfal Glades", 52.6, 55.6, "Horde")
+	AddTrainer(3704, "Mahani", "Southern Barrens", 41.5, 46.9, "Horde")
+	AddTrainer(4159, "Me'lynn", "Darnassus", 61.7, 23, "Alliance")
+	AddTrainer(4193, "Grondal Moonbreeze", "Darkshore", 38.2, 40.5, "Alliance")
+	AddTrainer(4576, "Josef Gregorian", "Undercity", 70.7, 30.3, "Horde")
+	AddTrainer(4578, "Josephine Lister", "Undercity", 86.5, 22.3, "Horde")
+	AddTrainer(5153, "Jormund Stonebrow", "Ironforge", 43.2, 29, "Alliance")
+	AddTrainer(9584, "Jalane Ayrole", "Stormwind City", 40.6, 83.9, "Alliance")
+	AddTrainer(11052, "Timothy Worthington", "Dustwallow Marsh", 66.22, 51.7, "Alliance")
+	AddTrainer(11557, "Meilosh", "Felwood", 65.7, 2.9, "Horde")
+	AddTrainer(16366, "Sempstress Ambershine", "Eversong Woods", 37.4, 71.9, "Horde")
+	AddTrainer(16640, "Keelen Sheets", "Silvermoon City", 57, 50.1, "Horde")
+	AddTrainer(16729, "Refik", "The Exodar", 63, 67.9, "Alliance")
+	AddTrainer(17487, "Erin Kelly", "Azuremyst Isle", 46.2, 70.5, "Alliance")
+	AddTrainer(18749, "Dalinna", "Hellfire Peninsula", 56.6, 37.1, "Horde")
+	AddTrainer(18772, "Hama", "Hellfire Peninsula", 54.1, 63.6, "Alliance")
+	AddTrainer(26914, "Benjamin Clegg", "Howling Fjord", 58.6, 62.8, "Alliance")
+	AddTrainer(26964, "Alexandra McQueen", "Howling Fjord", 79.4, 30.7, "Horde")
+	AddTrainer(26969, "Raenah", "Borean Tundra", 41.6, 53.5, "Horde")
+	AddTrainer(27001, "Darin Goodstitch", "Borean Tundra", 57.5, 72.3, "Alliance")
+	AddTrainer(28699, "Charles Worth", "Dalaran", 36.5, 33.5, "Neutral")
+	AddTrainer(33580, "Dustin Vail", "Icecrown", 73, 20.8, "Neutral")
+	AddTrainer(33613, 51309, "Shattrath City", 44, 91.1, "Neutral")
+	AddTrainer(33636, "Miralisse", "Shattrath City", 41.6, 63.5, "Neutral")
+	AddTrainer(33684, "Weaver Aoa", "Shattrath City", 37.6, 27.2, "Neutral")
+	AddTrainer(44783, "Hiwahi Three-Feathers", "Orgrimmar", 38.8, 50.5, "Horde")
+	AddTrainer(45559, "Nivi Weavewell", "Orgrimmar", 41.1, 79.7, "Horde")
+
+	self.InitializeTailoringTrainers = nil
+end
diff --git a/database.xml b/database.xml
index 2355232..ec4790f 100644
--- a/database.xml
+++ b/database.xml
@@ -23,4 +23,16 @@
 <Include file="Database\Trainer.lua"/>
 <Include file="Database\Vendor.lua"/>

-</Ui>
\ No newline at end of file
+<Include file="Database\Trainers\Alchemy.lua"/>
+<Include file="Database\Trainers\Blacksmithing.lua"/>
+<Include file="Database\Trainers\Cooking.lua"/>
+<Include file="Database\Trainers\Enchanting.lua"/>
+<Include file="Database\Trainers\Engineering.lua"/>
+<Include file="Database\Trainers\FirstAid.lua"/>
+<Include file="Database\Trainers\Inscription.lua"/>
+<Include file="Database\Trainers\Jewelcrafting.lua"/>
+<Include file="Database\Trainers\Leatherworking.lua"/>
+<Include file="Database\Trainers\Runeforging.lua"/>
+<Include file="Database\Trainers\Smelting.lua"/>
+<Include file="Database\Trainers\Tailoring.lua"/>
+</Ui>