diff --git a/L2J_DataPack_BETA/dist/game/data/scripts.cfg b/L2J_DataPack_BETA/dist/game/data/scripts.cfg
index 9e6544552be5eae52a41380174c1a2be00ccf594..0a66828e6cd30e9f436c1a6082cb340cd60d1520 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts.cfg
+++ b/L2J_DataPack_BETA/dist/game/data/scripts.cfg
@@ -33,22 +33,17 @@ ai/npc/ForgeOfTheGods/Rooney.java
 ai/npc/ForgeOfTheGods/TarBeetle.java
 ai/npc/FortressArcherCaptain/FortressArcherCaptain.java
 ai/npc/FortressSiegeManager/FortressSiegeManager.java
-ai/npc/FortuneTelling/FortuneTelling.java
 ai/npc/FreyasSteward/FreyasSteward.java
 ai/npc/Jinia/Jinia.java
 ai/npc/KetraOrcSupport/KetraOrcSupport.java
-ai/npc/Lekon/Lekon.java
 ai/npc/MercenaryCaptain/MercenaryCaptain.java
 ai/npc/Minigame/Minigame.java
 ai/npc/MonumentOfHeroes/MonumentOfHeroes.java
-ai/npc/Nemo/Nemo.java
-ai/npc/Nottingale/Nottingale.java
 ai/npc/NpcBuffers/NpcBuffers.java
 ai/npc/NpcBuffers/impl/CabaleBuffer.java
 ai/npc/PriestOfBlessing/PriestOfBlessing.java
 ai/npc/Rignos/Rignos.java
 ai/npc/Rafforty/Rafforty.java
-ai/npc/Seyo/Seyo.java
 ai/npc/Sirra/Sirra.java
 ai/npc/SubclassCertification/SubclassCertification.java
 ai/npc/Summons/MerchantGolem/GolemTrader.java
@@ -84,7 +79,6 @@ ai/npc/VarkaSilenosSupport/VarkaSilenosSupport.java
 ai/npc/VillageMasters/FirstClassTransferTalk/FirstClassTransferTalk.java
 ai/npc/WeaverOlf/WeaverOlf.java
 ai/npc/WyvernManager/WyvernManager.java
-ai/npc/ZealotOfShilen/ZealotOfShilen.java
 
 # Fantasy Isle
 ai/fantasy_isle/MC_Show.java
@@ -95,7 +89,6 @@ ai/group_template/AltarsOfSacrifice.java
 ai/group_template/BeastFarm.java
 ai/group_template/DenOfEvil.java
 ai/group_template/DragonValley.java
-ai/group_template/EnergySeeds.java
 ai/group_template/FairyTrees.java
 ai/group_template/FeedableBeasts.java
 ai/group_template/FleeMonsters.java
@@ -119,13 +112,11 @@ ai/group_template/RandomSpawn.java
 ai/group_template/RangeGuard.java
 ai/group_template/Remnants.java
 ai/group_template/Sandstorms.java
-ai/group_template/SeedOfAnnihilation.java
 ai/group_template/SeeThroughSilentMove.java
 ai/group_template/SelMahumDrill.java
 ai/group_template/SelMahumSquad.java
 ai/group_template/SilentValley.java
 ai/group_template/StakatoNest.java
-ai/group_template/StarStones.java
 ai/group_template/SummonMinions.java
 ai/group_template/SummonPc.java
 ai/group_template/TurekOrcs.java
@@ -149,10 +140,7 @@ ai/individual/DrChaos.java
 ai/individual/Epidos.java
 ai/individual/EvasGiftBox.java
 ai/individual/FrightenedRagnaOrc.java
-ai/individual/GeneralDilios.java
 ai/individual/Gordon.java
-ai/individual/Lindvior.java
-ai/individual/Maguen.java
 ai/individual/Orfen.java
 ai/individual/QueenAnt.java
 ai/individual/QueenShyeed.java
@@ -204,9 +192,9 @@ instances/NornilsGarden/NornilsGarden.java
 instances/PailakaDevilsLegacy/PailakaDevilsLegacy.java
 instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java
 instances/SanctumOftheLordsOfDawn/SanctumOftheLordsOfDawn.java
-instances/SecretArea/SecretArea.java
-instances/SeedOfDestruction/Stage1.java
-instances/SeedOfInfinity/HallOfSuffering.java
+
+# Gracia Section
+gracia/GraciaLoader.java
 
 # Hellbound Section
 hellbound/HellboundLoader.java
@@ -323,13 +311,6 @@ vehicles/BoatGiranTalking.java
 vehicles/BoatInnadrilTour.java
 vehicles/BoatGludinRune.java
 vehicles/BoatRunePrimeval.java
-vehicles/AirShipGludioGracia/AirShipGludioGracia.java
-
-# AirShip Controllers
-vehicles/KeucereusNorthController/KeucereusNorthController.java
-vehicles/KeucereusSouthController/KeucereusSouthController.java
-vehicles/SoIController/SoIController.java
-vehicles/SoDController/SoDController.java
 
 # Conquerable Clan Halls
 conquerablehalls/flagwar/BanditStronghold/BanditStronghold.java
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/EnergySeeds.java
similarity index 97%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/EnergySeeds.java
index 1ab7139eced4fe47829cf40c0c00c16dff5426d9..e99f8b52ba58fc662a605f4549875584f74fc133 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/EnergySeeds.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.group_template;
+package gracia.AI;
 
 import java.util.Map;
 
@@ -96,9 +96,9 @@ public class EnergySeeds extends AbstractNpcAI
 		ANNIHILATION_COKRAKON
 	}
 	
-	private EnergySeeds()
+	public EnergySeeds()
 	{
-		super(EnergySeeds.class.getSimpleName(), "instances"); // ai/group_template?
+		super(EnergySeeds.class.getSimpleName(), "gracia/AI");
 		registerMobs(SEED_IDS);
 		addFirstTalkId(SEED_IDS);
 		addFirstTalkId(TEMPORARY_TELEPORTER);
@@ -757,25 +757,16 @@ public class EnergySeeds extends AbstractNpcAI
 		
 		public void scheduleRespawn(long waitTime)
 		{
-			ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+			ThreadPoolManager.getInstance().scheduleGeneral(() ->
 			{
-				@Override
-				public void run()
+				// if the AI is inactive, do not spawn the NPC
+				if (isSeedActive(_seedId))
 				{
-					// if the AI is inactive, do not spawn the NPC
-					if (isSeedActive(_seedId))
-					{
-						// get a random NPC that should spawn at this location
-						Integer spawnId = _spawnId; // the map uses "Integer", not "int"
-						_spawnedNpcs.put(addSpawn(_npcIds[getRandom(_npcIds.length)], _loc, false, 0), spawnId);
-					}
+					// get a random NPC that should spawn at this location
+					Integer spawnId = _spawnId; // the map uses "Integer", not "int"
+					_spawnedNpcs.put(addSpawn(_npcIds[getRandom(_npcIds.length)], _loc, false, 0), spawnId);
 				}
 			}, waitTime);
 		}
 	}
-	
-	public static void main(String[] args)
-	{
-		new EnergySeeds();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Lindvior.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/Lindvior.java
similarity index 93%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Lindvior.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/Lindvior.java
index 2eb7b3ae870524098e39071c6d2cf152906c0b38..059feb552c50e97b99ea7ab8f72a3afe0384b4c4 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Lindvior.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/Lindvior.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.individual;
+package gracia.AI;
 
 import java.util.Calendar;
 import java.util.GregorianCalendar;
@@ -53,9 +53,9 @@ public class Lindvior extends AbstractNpcAI
 	private L2Npc _tomaris = null;
 	private L2Npc _artius = null;
 	
-	private Lindvior()
+	public Lindvior()
 	{
-		super(Lindvior.class.getSimpleName(), "ai/individual");
+		super(Lindvior.class.getSimpleName(), "gracia/AI");
 		scheduleNextLindviorVisit();
 	}
 	
@@ -131,9 +131,4 @@ public class Lindvior extends AbstractNpcAI
 		}
 		return date.getTimeInMillis() - System.currentTimeMillis();
 	}
-	
-	public static void main(String[] args)
-	{
-		new Lindvior();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Maguen.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/Maguen.java
similarity index 95%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Maguen.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/Maguen.java
index 9d220a014d29cd9dd8cdab5282f6d5e6c0d35545..57ec951737b4f7d714d9aca8c288103cb491b7f9 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Maguen.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/Maguen.java
@@ -16,10 +16,9 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.individual;
+package gracia.AI;
 
 import ai.npc.AbstractNpcAI;
-import ai.npc.Nemo.Nemo;
 
 import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.instancemanager.QuestManager;
@@ -32,6 +31,8 @@ import com.l2jserver.gameserver.model.skills.BuffInfo;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.NpcStringId;
 
+import gracia.AI.NPC.Nemo.Nemo;
+
 /**
  * Maguen AI.
  * @author St3eT
@@ -74,9 +75,9 @@ public final class Maguen extends AbstractNpcAI
 	private static final SkillHolder R_PLASMA2 = new SkillHolder(6369, 2); // Maguen Plasma - Reptilikon
 	private static final SkillHolder R_PLASMA3 = new SkillHolder(6369, 3); // Maguen Plasma - Reptilikon
 	
-	private Maguen()
+	public Maguen()
 	{
-		super(Maguen.class.getSimpleName(), "ai/invidual");
+		super(Maguen.class.getSimpleName(), "gracia/AI");
 		addKillId(ELITES);
 		addSkillSeeId(MAGUEN);
 		addSpellFinishedId(MAGUEN);
@@ -376,9 +377,4 @@ public final class Maguen extends AbstractNpcAI
 	{
 		return QuestManager.getInstance().getQuest(Nemo.class.getSimpleName());
 	}
-	
-	public static void main(String[] args)
-	{
-		new Maguen();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/FortuneTelling/FortuneTelling.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/FortuneTelling/FortuneTelling.java
similarity index 88%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/FortuneTelling/FortuneTelling.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/FortuneTelling/FortuneTelling.java
index a8b022506f062b6102797cfb519f8b3b1663a9cb..e25d4b2b6a05b4f3c2a1a0098310704898aa7e1b 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/FortuneTelling/FortuneTelling.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/FortuneTelling/FortuneTelling.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.npc.FortuneTelling;
+package gracia.AI.NPC.FortuneTelling;
 
 import ai.npc.AbstractNpcAI;
 
@@ -38,7 +38,7 @@ public class FortuneTelling extends AbstractNpcAI
 	
 	public FortuneTelling()
 	{
-		super(FortuneTelling.class.getSimpleName(), "ai/npc");
+		super(FortuneTelling.class.getSimpleName(), "gracia/AI/NPC");
 		addStartNpc(MINE);
 		addTalkId(MINE);
 	}
@@ -58,9 +58,4 @@ public class FortuneTelling extends AbstractNpcAI
 		}
 		return htmltext;
 	}
-	
-	public static void main(String args[])
-	{
-		new FortuneTelling();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/FortuneTelling/fortune.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/FortuneTelling/fortune.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/FortuneTelling/fortune.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/FortuneTelling/fortune.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/FortuneTelling/lowadena.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/FortuneTelling/lowadena.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/FortuneTelling/lowadena.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/FortuneTelling/lowadena.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/GeneralDilios.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/GeneralDilios/GeneralDilios.java
similarity index 93%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/GeneralDilios.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/GeneralDilios/GeneralDilios.java
index 9038e43686a524a27b7325306a7a4938f1451cbf..e5a652ace1a411641b6427efd9f8aaa920a42fac 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/GeneralDilios.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/GeneralDilios/GeneralDilios.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.individual;
+package gracia.AI.NPC.GeneralDilios;
 
 import java.util.Set;
 
@@ -54,9 +54,9 @@ public final class GeneralDilios extends AbstractNpcAI
 	// NpcStringId.MESSENGER_INFORM_THE_BROTHERS_IN_KUCEREUS_CLAN_OUTPOST_EKIMUS_IS_ABOUT_TO_BE_REVIVED_BY_THE_RESURRECTED_UNDEAD_IN_SEED_OF_INFINITY_SEND_ALL_REINFORCEMENTS_TO_THE_HEART_AND_THE_HALL_OF_SUFFERING
 	};
 	
-	private GeneralDilios()
+	public GeneralDilios()
 	{
-		super(GeneralDilios.class.getSimpleName(), "ai/individual");
+		super(GeneralDilios.class.getSimpleName(), "gracia/AI/NPC");
 		_general = SpawnTable.getInstance().getFirstSpawn(GENERAL_ID).getLastSpawn();
 		_guards = SpawnTable.getInstance().getSpawns(GUARD_ID);
 		if ((_general == null) || _guards.isEmpty())
@@ -99,9 +99,4 @@ public final class GeneralDilios extends AbstractNpcAI
 		}
 		return super.onAdvEvent(event, npc, player);
 	}
-	
-	public static void main(String[] args)
-	{
-		new GeneralDilios();
-	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/32557-01.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/32557-01.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/32557-01.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/32557-01.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/32557-02.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/32557-02.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/32557-02.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/32557-02.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/32557-03.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/32557-03.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/32557-03.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/32557-03.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/32557-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/32557-04.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/32557-04.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/32557-04.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/32557.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/32557.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/32557.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/32557.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/Lekon.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/Lekon.java
similarity index 90%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/Lekon.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/Lekon.java
index f61126e874b7d1cbccbccb5f64c6538da3ff8842..e3df2143e6ff131d3e23724add984ecd940e1816 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Lekon/Lekon.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Lekon/Lekon.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.npc.Lekon;
+package gracia.AI.NPC.Lekon;
 
 import ai.npc.AbstractNpcAI;
 
@@ -41,9 +41,9 @@ public final class Lekon extends AbstractNpcAI
 	private static final int MIN_CLAN_LV = 5;
 	private static final int STONE_COUNT = 10;
 	
-	private Lekon()
+	public Lekon()
 	{
-		super(Lekon.class.getSimpleName(), "ai/npc");
+		super(Lekon.class.getSimpleName(), "gracia/AI/NPC");
 		addFirstTalkId(LEKON);
 		addTalkId(LEKON);
 		addStartNpc(LEKON);
@@ -89,9 +89,4 @@ public final class Lekon extends AbstractNpcAI
 		}
 		return htmltext;
 	}
-	
-	public static void main(String args[])
-	{
-		new Lekon();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-01.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-01.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-01.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-01.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-02.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-02.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-02.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-02.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-03.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-03.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-03.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-03.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-04.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-04.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-04.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-05.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-05.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-05.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-05.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-06.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-06.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735-06.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735-06.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/32735.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/32735.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/Nemo.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/Nemo.java
similarity index 91%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/Nemo.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/Nemo.java
index 101dbbe72e3cfcb68b52dcdebace274897cd92a3..f70b7222ce94e58f5fd79418f20429c13a54fde4 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nemo/Nemo.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nemo/Nemo.java
@@ -16,9 +16,8 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.npc.Nemo;
+package gracia.AI.NPC.Nemo;
 
-import ai.individual.Maguen;
 import ai.npc.AbstractNpcAI;
 
 import com.l2jserver.gameserver.ai.CtrlIntention;
@@ -28,6 +27,8 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.network.NpcStringId;
 
+import gracia.AI.Maguen;
+
 /**
  * Nemo AI.
  * @author St3eT
@@ -42,9 +43,9 @@ public final class Nemo extends AbstractNpcAI
 	// Misc
 	private static final int MAXIMUM_MAGUEN = 18; // Maximum maguens in one time
 	
-	private Nemo()
+	public Nemo()
 	{
-		super(Nemo.class.getSimpleName(), "ai/npc");
+		super(Nemo.class.getSimpleName(), "gracia/AI/NPC");
 		addStartNpc(NEMO);
 		addFirstTalkId(NEMO);
 		addTalkId(NEMO);
@@ -119,9 +120,4 @@ public final class Nemo extends AbstractNpcAI
 	{
 		return QuestManager.getInstance().getQuest(Maguen.class.getSimpleName());
 	}
-	
-	public static void main(String[] args)
-	{
-		new Nemo();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-01.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-01.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-01.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-01.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-02.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-02.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-02.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-02.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-03.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-03.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-03.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-03.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-04.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-04.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-04.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-05.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-05.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-05.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-05.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-06.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-06.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-06.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-06.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-07.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-07.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-07.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-07.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-08.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-08.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-08.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-08.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-09.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-09.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-09.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-09.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-10.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-10.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627-10.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627-10.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/32627.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/32627.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/Nottingale.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/Nottingale.java
similarity index 92%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/Nottingale.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/Nottingale.java
index 4c30ea1629ba0fed877c981fab5950b3173b2e2f..5702b536b12c85d792feeea266298390beb02ae8 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/Nottingale.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Nottingale/Nottingale.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.npc.Nottingale;
+package gracia.AI.NPC.Nottingale;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -52,9 +52,9 @@ public final class Nottingale extends AbstractNpcAI
 		RADARS.put(10, new RadarControl(0, -246899, 251918, 4352, 1));
 	}
 	
-	private Nottingale()
+	public Nottingale()
 	{
-		super(Nottingale.class.getSimpleName(), "ai/npc");
+		super(Nottingale.class.getSimpleName(), "gracia/AI/NPC");
 		addStartNpc(NOTTINGALE);
 		addTalkId(NOTTINGALE);
 		addFirstTalkId(NOTTINGALE);
@@ -119,9 +119,4 @@ public final class Nottingale extends AbstractNpcAI
 		}
 		return htmltext;
 	}
-	
-	public static void main(String[] args)
-	{
-		new Nottingale();
-	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/32737-01.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/32737-01.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/32737-01.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/32737-01.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/32737-02.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/32737-02.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/32737-02.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/32737-02.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/32737-03.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/32737-03.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/32737-03.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/32737-03.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/32737-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/32737-04.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/32737-04.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/32737-04.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/32737.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/32737.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/32737.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/32737.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/Seyo.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/Seyo.java
similarity index 93%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/Seyo.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/Seyo.java
index e0b57909bb6c889f062175d2a32e7def5dcafcb3..3a99a0ba54de871777310cae8216ba246fad77d4 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Seyo/Seyo.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/Seyo/Seyo.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.npc.Seyo;
+package gracia.AI.NPC.Seyo;
 
 import ai.npc.AbstractNpcAI;
 
@@ -45,9 +45,9 @@ public final class Seyo extends AbstractNpcAI
 		NpcStringId.THERE_WAS_SOMEONE_WHO_WON_10000_FROM_ME_A_WARRIOR_SHOULDNT_JUST_BE_GOOD_AT_FIGHTING_RIGHT_YOUVE_GOTTA_BE_GOOD_IN_EVERYTHING
 	};
 	
-	private Seyo()
+	public Seyo()
 	{
-		super(Seyo.class.getSimpleName(), "ai/npc");
+		super(Seyo.class.getSimpleName(), "gracia/AI/NPC");
 		addStartNpc(SEYO);
 		addTalkId(SEYO);
 		addFirstTalkId(SEYO);
@@ -170,9 +170,4 @@ public final class Seyo extends AbstractNpcAI
 		}
 		return htmltext;
 	}
-	
-	public static void main(String[] args)
-	{
-		new Seyo();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ZealotOfShilen/32628-01.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/ZealotOfShilen/32628-01.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ZealotOfShilen/32628-01.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/ZealotOfShilen/32628-01.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ZealotOfShilen/32628.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/ZealotOfShilen/32628.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ZealotOfShilen/32628.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/ZealotOfShilen/32628.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ZealotOfShilen/32629.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/ZealotOfShilen/32629.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ZealotOfShilen/32629.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/ZealotOfShilen/32629.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ZealotOfShilen/ZealotOfShilen.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/ZealotOfShilen/ZealotOfShilen.java
similarity index 90%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ZealotOfShilen/ZealotOfShilen.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/ZealotOfShilen/ZealotOfShilen.java
index 5c7881feeb86d85d279ae81ec0b3607f6abef08d..40d08e952ab083acd344a01fc8c5fef102398fd0 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ZealotOfShilen/ZealotOfShilen.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/NPC/ZealotOfShilen/ZealotOfShilen.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.npc.ZealotOfShilen;
+package gracia.AI.NPC.ZealotOfShilen;
 
 import ai.npc.AbstractNpcAI;
 
@@ -42,9 +42,9 @@ public final class ZealotOfShilen extends AbstractNpcAI
 		32629
 	};
 	
-	private ZealotOfShilen()
+	public ZealotOfShilen()
 	{
-		super(ZealotOfShilen.class.getSimpleName(), "ai/npc");
+		super(ZealotOfShilen.class.getSimpleName(), "gracia/AI/NPC");
 		addSpawnId(ZEALOT);
 		addFirstTalkId(GUARDS);
 		
@@ -94,9 +94,4 @@ public final class ZealotOfShilen extends AbstractNpcAI
 		npc.setIsNoRndWalk(true);
 		return super.onSpawn(npc);
 	}
-	
-	public static void main(String[] args)
-	{
-		new ZealotOfShilen();
-	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeedOfAnnihilation.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/SeedOfAnnihilation/SeedOfAnnihilation.java
similarity index 93%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeedOfAnnihilation.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/SeedOfAnnihilation/SeedOfAnnihilation.java
index 107d3e8241ada4f6d5ec32fe596b3cfdf517c83b..c8893b9a19018d2840dd556522a5c9b206ee8f18 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeedOfAnnihilation.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/SeedOfAnnihilation/SeedOfAnnihilation.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.group_template;
+package gracia.AI.SeedOfAnnihilation;
 
 import java.util.Calendar;
 import java.util.Map;
@@ -79,9 +79,9 @@ public class SeedOfAnnihilation extends AbstractNpcAI
 		_teleportZones.put(60005, new Location(-179275, 186802, -10720));
 	}
 	
-	private SeedOfAnnihilation()
+	public SeedOfAnnihilation()
 	{
-		super(SeedOfAnnihilation.class.getSimpleName(), "ai/group_template");
+		super(SeedOfAnnihilation.class.getSimpleName(), "gracia/AI");
 		loadSeedRegionData();
 		for (int i : _teleportZones.keySet())
 		{
@@ -387,9 +387,4 @@ public class SeedOfAnnihilation extends AbstractNpcAI
 			af_spawns = as;
 		}
 	}
-	
-	public static void main(String[] args)
-	{
-		new SeedOfAnnihilation();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StarStones.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/StarStones.java
similarity index 90%
rename from L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StarStones.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/StarStones.java
index 9f7331d1e4505e00341ffd6a16b60d786342931b..9df0854a4a2ef2237fbba4e59ca113ba5217d4d4 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StarStones.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/AI/StarStones.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package ai.group_template;
+package gracia.AI;
 
 import ai.npc.AbstractNpcAI;
 
@@ -41,9 +41,9 @@ public class StarStones extends AbstractNpcAI
 	
 	private static final int COLLECTION_RATE = 1;
 	
-	private StarStones()
+	public StarStones()
 	{
-		super(StarStones.class.getSimpleName(), "ai/group_template");
+		super(StarStones.class.getSimpleName(), "gracia/AI");
 		addSkillSeeId(MOBS);
 	}
 	
@@ -96,9 +96,4 @@ public class StarStones extends AbstractNpcAI
 		}
 		return super.onSkillSee(npc, caster, skill, targets, isSummon);
 	}
-	
-	public static void main(String[] args)
-	{
-		new StarStones();
-	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/gracia/GraciaLoader.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/GraciaLoader.java
new file mode 100644
index 0000000000000000000000000000000000000000..d53f2179c62882eac546613b83e3b3c0a8852e47
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/GraciaLoader.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2004-2014 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package gracia;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import gracia.AI.EnergySeeds;
+import gracia.AI.Lindvior;
+import gracia.AI.Maguen;
+import gracia.AI.StarStones;
+import gracia.AI.NPC.FortuneTelling.FortuneTelling;
+import gracia.AI.NPC.GeneralDilios.GeneralDilios;
+import gracia.AI.NPC.Lekon.Lekon;
+import gracia.AI.NPC.Nemo.Nemo;
+import gracia.AI.NPC.Nottingale.Nottingale;
+import gracia.AI.NPC.Seyo.Seyo;
+import gracia.AI.NPC.ZealotOfShilen.ZealotOfShilen;
+import gracia.AI.SeedOfAnnihilation.SeedOfAnnihilation;
+import gracia.instances.SecretArea.SecretArea;
+import gracia.instances.SeedOfDestruction.Stage1;
+import gracia.instances.SeedOfInfinity.HallOfSuffering;
+import gracia.vehicles.AirShipGludioGracia.AirShipGludioGracia;
+import gracia.vehicles.KeucereusNorthController.KeucereusNorthController;
+import gracia.vehicles.KeucereusSouthController.KeucereusSouthController;
+import gracia.vehicles.SoDController.SoDController;
+import gracia.vehicles.SoIController.SoIController;
+
+/**
+ * Gracia class-loader.
+ * @author Pandragon
+ */
+public final class GraciaLoader
+{
+	private static final Logger _log = Logger.getLogger(GraciaLoader.class.getName());
+	
+	private static final Class<?>[] SCRIPTS =
+	{
+		// AIs
+		EnergySeeds.class,
+		Lindvior.class,
+		Maguen.class,
+		StarStones.class,
+		// NPCs
+		FortuneTelling.class,
+		GeneralDilios.class,
+		Lekon.class,
+		Nemo.class,
+		Nottingale.class,
+		Seyo.class,
+		ZealotOfShilen.class,
+		// Seed of Annihilation
+		SeedOfAnnihilation.class,
+		// Instances
+		SecretArea.class,
+		Stage1.class, // Seed of Destruction
+		HallOfSuffering.class, // Seed of Infinity
+		// Vehicles
+		AirShipGludioGracia.class,
+		KeucereusNorthController.class,
+		KeucereusSouthController.class,
+		SoIController.class,
+		SoDController.class,
+	};
+	
+	public static void main(String[] args)
+	{
+		_log.info(GraciaLoader.class.getSimpleName() + ": Loading Gracia related scripts.");
+		for (Class<?> script : SCRIPTS)
+		{
+			try
+			{
+				script.newInstance();
+			}
+			catch (Exception e)
+			{
+				_log.log(Level.SEVERE, GraciaLoader.class.getSimpleName() + ": Failed loading " + script.getSimpleName() + ":", e);
+			}
+		}
+	}
+}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SecretArea/32566-01.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SecretArea/32566-01.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SecretArea/32566-01.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SecretArea/32566-01.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SecretArea/32567-01.html b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SecretArea/32567-01.html
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SecretArea/32567-01.html
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SecretArea/32567-01.html
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SecretArea/SecretArea.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SecretArea/SecretArea.java
similarity index 91%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SecretArea/SecretArea.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SecretArea/SecretArea.java
index c9602ea8f9745103bb026f28f2df2b7a0690848d..0a589c9683d31127df57f1d37db6c46bb77d2a8c 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SecretArea/SecretArea.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SecretArea/SecretArea.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package instances.SecretArea;
+package gracia.instances.SecretArea;
 
 import com.l2jserver.gameserver.instancemanager.InstanceManager;
 import com.l2jserver.gameserver.model.Location;
@@ -48,9 +48,9 @@ public final class SecretArea extends Quest
 		new Location(-185057, 242821, 1576)
 	};
 	
-	private SecretArea()
+	public SecretArea()
 	{
-		super(-1, SecretArea.class.getSimpleName(), "instances");
+		super(-1, SecretArea.class.getSimpleName(), "gracia/instances");
 		addStartNpc(GINBY);
 		addTalkId(GINBY);
 		addTalkId(LELRIKIA);
@@ -96,9 +96,4 @@ public final class SecretArea extends Quest
 		}
 		return htmltext;
 	}
-	
-	public static void main(String[] args)
-	{
-		new SecretArea();
-	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfDestruction/Stage1.java
similarity index 95%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfDestruction/Stage1.java
index 832abc20f585c4cd7747a2a8deeaad6d2b9eb3d2..f8860bffc2db8548e6161a9501deadf8fa4a1231 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfDestruction/Stage1.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package instances.SeedOfDestruction;
+package gracia.instances.SeedOfDestruction;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -215,10 +215,10 @@ public final class Stage1 extends Quest
 	private static final int RESET_DAY_1 = 4;
 	private static final int RESET_DAY_2 = 7;
 	
-	private Stage1()
+	public Stage1()
 	{
 		// TODO change name to use actual class name
-		super(-1, "SoDStage1", "instances");
+		super(-1, "SoDStage1", "gracia/instances");
 		load();
 		addStartNpc(ALENOS);
 		addTalkId(ALENOS);
@@ -1070,10 +1070,4 @@ public final class Stage1 extends Quest
 		}
 		return null;
 	}
-	
-	public static void main(String[] args)
-	{
-		// now call the constructor (starts up the)
-		new Stage1();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-00.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-00.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-00.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-00.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-01.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-01.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-01.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-01.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-02.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-02.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-02.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-02.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-03.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-03.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-03.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-03.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-04.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-04.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-04.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-04.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-05.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-05.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-05.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-05.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-06.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-06.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-06.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-06.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-07.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-07.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-07.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-07.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-08.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-08.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-08.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-08.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-09.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-09.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-09.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-09.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-10.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-10.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-10.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-10.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-11.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-11.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/32530-11.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/32530-11.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/HallOfSuffering.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/HallOfSuffering.java
similarity index 94%
rename from L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/HallOfSuffering.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/HallOfSuffering.java
index 48e5d41ef239da8bc3ea5e0b49013455fbd0aba8..9ba5a9f412d3285fd9e6fa0561fc4c4b835fa6a2 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/HallOfSuffering.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfInfinity/HallOfSuffering.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package instances.SeedOfInfinity;
+package gracia.instances.SeedOfInfinity;
 
 import java.util.Calendar;
 import java.util.HashMap;
@@ -403,10 +403,10 @@ public final class HallOfSuffering extends Quest
 	// default: 24h
 	private static final int INSTANCEPENALTY = 24;
 	
-	private HallOfSuffering()
+	public HallOfSuffering()
 	{
 		// TODO change name to use actual class name
-		super(-1, "SeedOfInfinity", "instances");
+		super(-1, "SeedOfInfinity", "gracia/instances");
 		addStartNpc(MOUTHOFEKIMUS, TEPIOS);
 		addTalkId(MOUTHOFEKIMUS, TEPIOS);
 		addFirstTalkId(TEPIOS);
@@ -924,9 +924,4 @@ public final class HallOfSuffering extends Quest
 		}
 		return "";
 	}
-	
-	public static void main(String[] args)
-	{
-		new HallOfSuffering();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipController.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/AirShipController.java
similarity index 96%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipController.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/AirShipController.java
index f59a1a8480a67ab4df948921ecba9f5d62da1cc2..8cdf93eb58ccf1186d06a4e9ce36588fe868e168 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipController.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/AirShipController.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package vehicles;
+package gracia.vehicles;
 
 import java.util.concurrent.Future;
 import java.util.logging.Level;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipGludioGracia/32607.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/AirShipGludioGracia/32607.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipGludioGracia/32607.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/AirShipGludioGracia/32607.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipGludioGracia/32609.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/AirShipGludioGracia/32609.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipGludioGracia/32609.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/AirShipGludioGracia/32609.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipGludioGracia/AirShipGludioGracia.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
similarity index 94%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
index 8ecdb57c4c6590bc2e7672f4011462795878a682..2f4b3e7c1c342fcafe8b527d45082fd628002d91 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package vehicles.AirShipGludioGracia;
+package gracia.vehicles.AirShipGludioGracia;
 
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.instancemanager.AirShipManager;
@@ -109,9 +109,9 @@ public final class AirShipGludioGracia extends Quest implements Runnable
 	private boolean _foundAtcGracia = false;
 	private L2Npc _atcGracia = null;
 	
-	private AirShipGludioGracia()
+	public AirShipGludioGracia()
 	{
-		super(-1, AirShipGludioGracia.class.getSimpleName(), "vehicles");
+		super(-1, AirShipGludioGracia.class.getSimpleName(), "gracia/vehicles");
 		addStartNpc(CONTROLLERS);
 		addFirstTalkId(CONTROLLERS);
 		addTalkId(CONTROLLERS);
@@ -307,9 +307,4 @@ public final class AirShipGludioGracia extends Quest implements Runnable
 		}
 		return super.unload(removeFromList);
 	}
-	
-	public static void main(String[] args)
-	{
-		new AirShipGludioGracia();
-	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusNorthController/32606.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/KeucereusNorthController/32606.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusNorthController/32606.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/KeucereusNorthController/32606.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusNorthController/KeucereusNorthController.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/KeucereusNorthController/KeucereusNorthController.java
similarity index 87%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusNorthController/KeucereusNorthController.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/KeucereusNorthController/KeucereusNorthController.java
index 3d3cc9151cacba07f22da7d89d6a569de22b158e..8f6ecbfd6562f74227bff78254c95915a8356b3e 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusNorthController/KeucereusNorthController.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/KeucereusNorthController/KeucereusNorthController.java
@@ -16,13 +16,13 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package vehicles.KeucereusNorthController;
-
-import vehicles.AirShipController;
+package gracia.vehicles.KeucereusNorthController;
 
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.VehiclePathPoint;
 
+import gracia.vehicles.AirShipController;
+
 public final class KeucereusNorthController extends AirShipController
 {
 	private static final int DOCK_ZONE = 50602;
@@ -67,9 +67,9 @@ public final class KeucereusNorthController extends AirShipController
 		100
 	};
 	
-	private KeucereusNorthController()
+	public KeucereusNorthController()
 	{
-		super(-1, KeucereusNorthController.class.getSimpleName(), "vehicles");
+		super(-1, KeucereusNorthController.class.getSimpleName(), "gracia/vehicles");
 		addStartNpc(CONTROLLER_ID);
 		addFirstTalkId(CONTROLLER_ID);
 		addTalkId(CONTROLLER_ID);
@@ -94,9 +94,4 @@ public final class KeucereusNorthController extends AirShipController
 		
 		validityCheck();
 	}
-	
-	public static void main(String[] args)
-	{
-		new KeucereusNorthController();
-	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusSouthController/32517.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/KeucereusSouthController/32517.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusSouthController/32517.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/KeucereusSouthController/32517.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusSouthController/KeucereusSouthController.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/KeucereusSouthController/KeucereusSouthController.java
similarity index 87%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusSouthController/KeucereusSouthController.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/KeucereusSouthController/KeucereusSouthController.java
index 22841b6fd7050c0de37e02639d27dbcc5df61398..3086fd9dbe7c7ac90112211d26312b6b6339c609 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusSouthController/KeucereusSouthController.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/KeucereusSouthController/KeucereusSouthController.java
@@ -16,13 +16,13 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package vehicles.KeucereusSouthController;
-
-import vehicles.AirShipController;
+package gracia.vehicles.KeucereusSouthController;
 
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.VehiclePathPoint;
 
+import gracia.vehicles.AirShipController;
+
 public final class KeucereusSouthController extends AirShipController
 {
 	private static final int DOCK_ZONE = 50603;
@@ -67,9 +67,9 @@ public final class KeucereusSouthController extends AirShipController
 		100
 	};
 	
-	private KeucereusSouthController()
+	public KeucereusSouthController()
 	{
-		super(-1, KeucereusSouthController.class.getSimpleName(), "vehicles");
+		super(-1, KeucereusSouthController.class.getSimpleName(), "gracia/vehicles");
 		addStartNpc(CONTROLLER_ID);
 		addFirstTalkId(CONTROLLER_ID);
 		addTalkId(CONTROLLER_ID);
@@ -94,9 +94,4 @@ public final class KeucereusSouthController extends AirShipController
 		
 		validityCheck();
 	}
-	
-	public static void main(String[] args)
-	{
-		new KeucereusSouthController();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/SoDController/32605.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/SoDController/32605.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/SoDController/32605.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/SoDController/32605.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/SoDController/SoDController.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/SoDController/SoDController.java
similarity index 87%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/SoDController/SoDController.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/SoDController/SoDController.java
index af890dba46b3dd99cf4e5bbf155b4aef02a858fd..6b34515f78bdb61c261274c5a079c1b57077dbba 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/SoDController/SoDController.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/SoDController/SoDController.java
@@ -16,13 +16,13 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package vehicles.SoDController;
-
-import vehicles.AirShipController;
+package gracia.vehicles.SoDController;
 
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.VehiclePathPoint;
 
+import gracia.vehicles.AirShipController;
+
 public final class SoDController extends AirShipController
 {
 	private static final int DOCK_ZONE = 50601;
@@ -57,9 +57,9 @@ public final class SoDController extends AirShipController
 		100
 	};
 	
-	private SoDController()
+	public SoDController()
 	{
-		super(-1, SoDController.class.getSimpleName(), "vehicles");
+		super(-1, SoDController.class.getSimpleName(), "gracia/vehicles");
 		addStartNpc(CONTROLLER_ID);
 		addFirstTalkId(CONTROLLER_ID);
 		addTalkId(CONTROLLER_ID);
@@ -84,9 +84,4 @@ public final class SoDController extends AirShipController
 		
 		validityCheck();
 	}
-	
-	public static void main(String[] args)
-	{
-		new SoDController();
-	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/SoIController/32604.htm b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/SoIController/32604.htm
similarity index 100%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/SoIController/32604.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/SoIController/32604.htm
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/SoIController/SoIController.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/SoIController/SoIController.java
similarity index 88%
rename from L2J_DataPack_BETA/dist/game/data/scripts/vehicles/SoIController/SoIController.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/SoIController/SoIController.java
index 688f12b0c05cde0e898d2a7f9364cf7077deb1e6..e597440dcffc27e211947cb6f0c8eed4e4b9b082 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/SoIController/SoIController.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/vehicles/SoIController/SoIController.java
@@ -16,13 +16,13 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package vehicles.SoIController;
-
-import vehicles.AirShipController;
+package gracia.vehicles.SoIController;
 
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.VehiclePathPoint;
 
+import gracia.vehicles.AirShipController;
+
 public final class SoIController extends AirShipController
 {
 	private static final int DOCK_ZONE = 50600;
@@ -61,9 +61,9 @@ public final class SoIController extends AirShipController
 		50
 	};
 	
-	private SoIController()
+	public SoIController()
 	{
-		super(-1, SoIController.class.getSimpleName(), "vehicles");
+		super(-1, SoIController.class.getSimpleName(), "gracia/vehicles");
 		addStartNpc(CONTROLLER_ID);
 		addFirstTalkId(CONTROLLER_ID);
 		addTalkId(CONTROLLER_ID);
@@ -88,9 +88,4 @@ public final class SoIController extends AirShipController
 		
 		validityCheck();
 	}
-	
-	public static void main(String[] args)
-	{
-		new SoIController();
-	}
 }
\ No newline at end of file