diff --git a/.gradle/8.2.1/checksums/checksums.lock b/.gradle/8.2.1/checksums/checksums.lock
index 975eff9..62b9645 100644
Binary files a/.gradle/8.2.1/checksums/checksums.lock and b/.gradle/8.2.1/checksums/checksums.lock differ
diff --git a/.gradle/8.2.1/fileHashes/fileHashes.lock b/.gradle/8.2.1/fileHashes/fileHashes.lock
index 3c62e9d..636f1af 100644
--- a/.gradle/8.2.1/fileHashes/fileHashes.lock
+++ b/.gradle/8.2.1/fileHashes/fileHashes.lock
@@ -1 +1 @@
-�[�i5���]
\ No newline at end of file
+�[�i5���X�
\ No newline at end of file
diff --git a/.idea/modules/CinderLoE-Git.ideVirtualMain.iml b/.idea/modules/CinderLoE-Git.ideVirtualMain.iml
index 3ccf82a..74ea6e3 100644
--- a/.idea/modules/CinderLoE-Git.ideVirtualMain.iml
+++ b/.idea/modules/CinderLoE-Git.ideVirtualMain.iml
@@ -5,6 +5,7 @@
       <configuration>
         <autoDetectTypes>
           <platformType>MIXIN</platformType>
+          <platformType>MCP</platformType>
         </autoDetectTypes>
         <projectReimportVersion>1</projectReimportVersion>
       </configuration>
diff --git a/gradle.properties b/gradle.properties
index 0c79463..e846d4a 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,5 +1,5 @@
 modName = CinderLoE
-modVersion = 1.2.3
+modVersion = 1.2.4
 
 # This is a case-sensitive string to identify your mod. Convention is to use lower case.
 modId = cinder_loe
diff --git a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java
index a1e0f4c..420c611 100644
--- a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java
+++ b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java
@@ -8,13 +8,16 @@ import com.zivilon.cinder_loe.client.render.corrupt.*;
 import com.zivilon.cinder_loe.command.CommandCinderCharacter;
 import com.zivilon.cinder_loe.entity.*;
 import com.zivilon.cinder_loe.entity.corrupt.*;
+import com.zivilon.cinder_loe.entity.npc.*;
+import com.zivilon.cinder_loe.entity.trader.BladorthinSmith;
+import com.zivilon.cinder_loe.entity.trader.LimwaithFishmonger;
+import com.zivilon.cinder_loe.entity.trader.LimwaithShaman;
+import com.zivilon.cinder_loe.entity.trader.RedDwarfSmith;
 import com.zivilon.cinder_loe.items.*;
 import com.zivilon.cinder_loe.tileentity.*;
 import com.zivilon.cinder_loe.util.Utilities;
-import com.zivilon.cinder_loe.ItemRegistration;
 import com.zivilon.cindercore.CinderCore;
 import lotr.common.item.*;
-import net.minecraft.item.ItemSeedFood;
 import net.minecraft.potion.Potion;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -77,11 +80,11 @@ import net.minecraftforge.client.ClientCommandHandler;
 
 @Mod(
     modid = "cinder_loe",
-    version = "1.2.3",
+    version = "1.2.4",
     name = "CinderLoE",
     dependencies = "required-after:spongemixins@[1.1.0,);required-after:lotr",
     acceptedMinecraftVersions = "[1.7.10]",
-    acceptableRemoteVersions = "[1.2.3]")
+    acceptableRemoteVersions = "[1.2.4]")
 public class CinderLoE {
 
     @Instance("cinder_loe")
@@ -91,8 +94,6 @@ public class CinderLoE {
 
     // LOTR Materials
     public static LOTRMaterial MATERIAL_RED_DWARF;
-    public static LOTRMaterial WIZARD;
-    public static LOTRMaterial MATERIAL_LIMWAITH_BONE;
     public static LOTRMaterial MATERIAL_BONEMOLD;
     public static LOTRMaterial MATERIAL_LIMWAITH_WOOD;
     public static LOTRMaterial EVENT;
@@ -123,6 +124,7 @@ public class CinderLoE {
     public static Block bronzeChain;
     public static Block plaster;
     public static Block voidblock;
+  //  public static Block verticalWeaponRack;
 
     //Food Crop blocks
     public static Block onionCrop;
@@ -139,6 +141,7 @@ public class CinderLoE {
     public static Item frostblade;
     public static Item daggervoid;
     public static Item spearsolidgold;
+    public static Item spearUnnamed;
     public static Item whip;
     public static Item swordAsh;
     public static Item staffAsh;
@@ -302,13 +305,24 @@ public class CinderLoE {
         event.registerServerCommand(new CommandCinderCharacter());
     }
 
-    public void registerEntities() { // Last ID added: 41
+    public void registerEntities() { // Last ID added: 43
         GameRegistry.registerTileEntity(TileEntityMistBlock.class, "TileEntityMistBlock");
 
         int entityID = 7320; // Always increment entityID by 1 over the last entity to ensure unique IDs
       //  EntityRegistry.registerModEntity(HaradLevy.class, "HaradLevy", (entityID + 36), this, 64, 1, true);
       //  EntityRegistry.registerModEntity(DwarfLevy.class, "DwarfLevy", (entityID + 37), this, 64, 1, true);
 
+        // Traders
+        EntityRegistry.registerModEntity(RedDwarfSmith.class, "RedDwarfSmith", (entityID + 29), this, 64, 1, true);
+        EntityRegistry.registerModEntity(LimwaithFishmonger.class, "LimwaithFishmonger", (entityID + 33), this, 64, 1, true);
+        EntityRegistry.registerModEntity(LimwaithShaman.class, "LimwaithShaman", (entityID + 34), this, 64, 1, true);
+        EntityRegistry.registerModEntity(BladorthinSmith.class, "BladorthinSmith", (entityID + 43), this, 64, 1, true);
+
+
+        // Others
+
+        EntityRegistry.registerModEntity(DarkSpider.class, "DarkSpider", (entityID + 42), this, 64, 1, true);
+
         EntityRegistry.registerModEntity(CorruptDwarf.class, "CorruptDwarf", (entityID + 36), this, 64, 1, true);
         EntityRegistry.registerModEntity(CorruptElf.class, "CorruptElf", (entityID + 37), this, 64, 1, true);
         EntityRegistry.registerModEntity(CorruptEnt.class, "CorruptEnt", (entityID + 38), this, 64, 1, true);
@@ -324,7 +338,6 @@ public class CinderLoE {
         EntityRegistry.registerModEntity(RedDwarfArbalest.class, "RedDwarfArbalest", (entityID + 3), this, 64, 1, true);
         EntityRegistry.registerModEntity(RedDwarfBannerBearer.class, "RedDwarfBannerBearer", (entityID + 4), this, 64, 1, true);
         EntityRegistry.registerModEntity(RedDwarfCommander.class, "RedDwarfCommander", (entityID + 5), this, 64, 1, true);
-        EntityRegistry.registerModEntity(RedDwarfSmith.class, "RedDwarfSmith", (entityID + 29), this, 64, 1, true);
 
         EntityRegistry.registerModEntity(FangornBear.class, "FangornBear", (entityID + 6), this, 64, 1, true);
         EntityRegistry.registerModEntity(FangornWildBoar.class, "FangornWildBoar", (entityID + 7), this, 64, 1, true);
@@ -338,8 +351,6 @@ public class CinderLoE {
         EntityRegistry.registerModEntity(LimwaithBoneWarrior.class, "LimwaithBoneWarrior", (entityID + 32), this, 64, 1, true);
         EntityRegistry.registerModEntity(LimwaithBlowgunner.class, "LimwaithBlowgunner", (entityID + 12), this, 64, 1, true);
         EntityRegistry.registerModEntity(LimwaithBannerBearer.class, "LimwaithBannerBearer", (entityID + 13), this, 64, 1, true);
-        EntityRegistry.registerModEntity(LimwaithFishmonger.class, "LimwaithFishmonger", (entityID + 33), this, 64, 1, true);
-        EntityRegistry.registerModEntity(LimwaithShaman.class, "LimwaithShaman", (entityID + 34), this, 64, 1, true);
         EntityRegistry.registerModEntity(LimwaithChieftain.class, "LimwaithChieftain", (entityID + 14), this, 64, 1, true);
 
         EntityRegistry.registerModEntity(Wraith.class, "Wraith", (entityID + 15), this, 64, 1, true);
@@ -402,6 +413,10 @@ public class CinderLoE {
         // Unique
         dwarvenBrickRuned = (new RunedDwarvenBrick());
         GameRegistry.registerBlock(dwarvenBrickRuned, "dwarvenBrickRuned");
+      //  verticalWeaponRack = new VerticalWeaponRack();
+      //  GameRegistry.registerTileEntity(LOTRTileEntityWeaponRack.class, "verticalWeaponRack");
+      //  GameRegistry.registerBlock(verticalWeaponRack, "verticalWeaponRack");
+
 
         // Barrel
         fishBarrel = (new FishBarrel());
@@ -511,7 +526,7 @@ public class CinderLoE {
         * Item Registation, add up the "last ID added" upon adding a new item
         * Weapons will need to be linked
          */
-        // Last ID added: 96
+        // Last ID added: 97
 
         // ==Food Items==
         ItemRegistration.registerItem(onion, "onion", 89);
@@ -582,6 +597,7 @@ public class CinderLoE {
         frostblade = (new LOTRItemSword(EVENT)).setUnlocalizedName("lotr:frostblade").setTextureName("lotr:frostblade");
         daggervoid = (new VoidDagger(EVENT)).addWeaponDamage(5.0F).setUnlocalizedName("lotr:daggerVoid").setTextureName("lotr:daggerVoid").setCreativeTab(null);
         spearsolidgold = (new LOTRItemSpear(EVENT)).setUnlocalizedName("lotr:spearsolidgold").setTextureName("lotr:spearsolidgold").setCreativeTab(null);
+        spearUnnamed = (new UnnamedSpear(EVENT)).setUnlocalizedName("lotr:spearUnnamed").setTextureName("lotr:spearUnnamed").setCreativeTab(null);
         whip = (new Whip()).setUnlocalizedName("lotr:whip").setTextureName("lotr:whip");
 
 
@@ -589,10 +605,12 @@ public class CinderLoE {
         ItemRegistration.registerItem(frostblade, "frostblade", 30);
         ItemRegistration.registerItem(daggervoid, "daggerVoid", 96);
         ItemRegistration.registerItem(spearsolidgold, "spearsolidgold", 31);
+        ItemRegistration.registerItem(spearUnnamed, "spearUnnamed", 97);
         ItemRegistration.registerItem(whip, "whip", 32);
         linkLOTRWeapon(frostblade, "frostblade");
         linkLOTRWeapon(daggervoid, "daggerVoid");
         linkLOTRWeapon(spearsolidgold, "spearsolidgold");
+        linkLOTRWeapon(spearUnnamed, "spearUnnamed");
         linkLOTRWeapon(whip, "whip");
 
         //ASH
@@ -682,10 +700,9 @@ public class CinderLoE {
         bonemold = new Item().setUnlocalizedName("lotr:bonemold").setTextureName("lotr:bonemold").setCreativeTab((CreativeTabs) materials);
         ItemRegistration.registerItem(bonemold, "bonemold", 83);
 
-        MATERIAL_LIMWAITH_BONE = getLOTRMaterialByName("LIMWAITH_BONE");
         MATERIAL_LIMWAITH_WOOD = getLOTRMaterialByName("LIMWAITH_WOOD");
         MATERIAL_BONEMOLD = getLOTRMaterialByName("BONEMOLD");
-        if (MATERIAL_LIMWAITH_WOOD != null && MATERIAL_LIMWAITH_BONE != null) {
+        if (MATERIAL_LIMWAITH_WOOD != null && MATERIAL_BONEMOLD != null) {
             helmetLimwaith = (new LOTRItemArmor(MATERIAL_LIMWAITH_WOOD, 0)).setUnlocalizedName("lotr:helmetLimwaith").setTextureName("lotr:helmetLimwaith");
             bodyLimwaith = (new LOTRItemArmor(MATERIAL_LIMWAITH_WOOD, 1)).setUnlocalizedName("lotr:bodyLimwaith").setTextureName("lotr:bodyLimwaith");
             legsLimwaith = (new LOTRItemArmor(MATERIAL_LIMWAITH_WOOD, 2)).setUnlocalizedName("lotr:legsLimwaith").setTextureName("lotr:legsLimwaith");
@@ -696,12 +713,12 @@ public class CinderLoE {
             legsboneLimwaith = (new LOTRItemArmor(MATERIAL_BONEMOLD, 2)).setUnlocalizedName("lotr:legsboneLimwaith").setTextureName("lotr:legsboneLimwaith");
             bootsboneLimwaith = (new LOTRItemArmor(MATERIAL_BONEMOLD, 3)).setUnlocalizedName("lotr:bootsboneLimwaith").setTextureName("lotr:bootsboneLimwaith");
 
-            spearLimwaith = (new LOTRItemSpear(MATERIAL_LIMWAITH_BONE)).setUnlocalizedName("lotr:spearLimwaith").setTextureName("lotr:spearLimwaith");
-            truncheonLimwaith = (new LOTRItemSword(MATERIAL_LIMWAITH_BONE)).setUnlocalizedName("lotr:truncheonLimwaith").setTextureName("lotr:truncheonLimwaith");
-            battleaxeLimwaith = (new LOTRItemBattleaxe(MATERIAL_LIMWAITH_BONE)).setUnlocalizedName("lotr:battleaxeLimwaith").setTextureName("lotr:battleaxeLimwaith");
-            tridentLimwaith = (new LOTRItemTrident(MATERIAL_LIMWAITH_BONE)).setUnlocalizedName("lotr:tridentLimwaith").setTextureName("lotr:tridentLimwaith");
-            daggerLimwaith = (new LOTRItemDagger(MATERIAL_LIMWAITH_BONE)).setUnlocalizedName("lotr:daggerLimwaith").setTextureName("lotr:daggerLimwaith");
-            daggerLimwaithPoisoned = (new LOTRItemDagger(MATERIAL_LIMWAITH_BONE, LOTRItemDagger.DaggerEffect.POISON)).setUnlocalizedName("lotr:daggerLimwaithPoisoned").setTextureName("lotr:daggerLimwaithPoisoned");
+            spearLimwaith = (new LOTRItemSpear(MATERIAL_BONEMOLD)).setUnlocalizedName("lotr:spearLimwaith").setTextureName("lotr:spearLimwaith");
+            truncheonLimwaith = (new LOTRItemSword(MATERIAL_BONEMOLD)).setUnlocalizedName("lotr:truncheonLimwaith").setTextureName("lotr:truncheonLimwaith");
+            battleaxeLimwaith = (new LOTRItemBattleaxe(MATERIAL_BONEMOLD)).setUnlocalizedName("lotr:battleaxeLimwaith").setTextureName("lotr:battleaxeLimwaith");
+            tridentLimwaith = (new LOTRItemTrident(MATERIAL_BONEMOLD)).setUnlocalizedName("lotr:tridentLimwaith").setTextureName("lotr:tridentLimwaith");
+            daggerLimwaith = (new LOTRItemDagger(MATERIAL_BONEMOLD)).setUnlocalizedName("lotr:daggerLimwaith").setTextureName("lotr:daggerLimwaith");
+            daggerLimwaithPoisoned = (new LOTRItemDagger(MATERIAL_BONEMOLD, LOTRItemDagger.DaggerEffect.POISON)).setUnlocalizedName("lotr:daggerLimwaithPoisoned").setTextureName("lotr:daggerLimwaithPoisoned");
             blowgunLimwaith = (new LOTRItemBlowgun(LOTRMaterial.TAUREDAIN)).setUnlocalizedName("lotr:blowgunLimwaith").setTextureName("lotr:blowgunLimwaith");
 
             ItemRegistration.registerItem(helmetLimwaith, "helmetLimwaith", 47);
@@ -736,7 +753,7 @@ public class CinderLoE {
         MATERIAL_BREE = getLOTRMaterialByName("BREE");
         if (MATERIAL_BREE != null) {
             helmetBreeKettle = (new LOTRItemArmor(MATERIAL_BREE, 0, "helmet")).setUnlocalizedName("lotr:helmetBreeKettle").setTextureName("lotr:breekettlehelmet");
-            helmetBree = (new LOTRItemArmor(MATERIAL_BREE, 0, "helmet")).setUnlocalizedName("lotr:helmetBree").setTextureName("lotr:helmetBree");
+            helmetBree = (new LOTRItemArmor(MATERIAL_BREE, 0)).setUnlocalizedName("lotr:helmetBree").setTextureName("lotr:helmetBree");
             bodyBree = (new LOTRItemArmor(MATERIAL_BREE, 1)).setUnlocalizedName("lotr:bodyBree").setTextureName("lotr:bodyBree");
             legsBree = (new LOTRItemArmor(MATERIAL_BREE, 2)).setUnlocalizedName("lotr:legsBree").setTextureName("lotr:legsBree");
             bootsBree = (new LOTRItemArmor(MATERIAL_BREE, 3)).setUnlocalizedName("lotr:bootsBree").setTextureName("lotr:bootsBree");
@@ -798,6 +815,10 @@ public class CinderLoE {
        //     RenderingRegistry.registerEntityRenderingHandler(HaradLevy.class, new LOTRRenderNearHaradrim());
         //    RenderingRegistry.registerEntityRenderingHandler(DwarfLevy.class, new LOTRRenderDwarf());
 
+            RenderingRegistry.registerEntityRenderingHandler(BladorthinSmith.class, new LOTRRenderDorwinionElfVintner());
+
+            RenderingRegistry.registerEntityRenderingHandler(DarkSpider.class, new RenderDarkSpider());
+
             RenderingRegistry.registerEntityRenderingHandler(CorruptDwarf.class, new RenderCorruptDwarf());
             RenderingRegistry.registerEntityRenderingHandler(CorruptElf.class, new RenderCorruptElf());
             RenderingRegistry.registerEntityRenderingHandler(CorruptEnt.class, new RenderCorruptEnt());
@@ -976,6 +997,7 @@ public class CinderLoE {
         CinderCore.registerItemFallback(Block.getIdFromBlock(reeflessCoral), Block.getIdFromBlock(LOTRMod.coralReef), "cinder_loe", "1.2");
         CinderCore.registerItemFallback(Block.getIdFromBlock(plaster), Block.getIdFromBlock(Blocks.brick_block), "cinder_loe", "1.2.1");
         CinderCore.registerItemFallback(Block.getIdFromBlock(voidblock), Block.getIdFromBlock(Blocks.coal_block), "cinder_loe", "1.2.1");
+       // CinderCore.registerItemFallback(Block.getIdFromBlock(verticalWeaponRack), Block.getIdFromBlock(Blocks.fence), "cinder_loe", "1.2.4");
         // == Red Dwarf Items==
         CinderCore.registerItemFallback(Item.getIdFromItem(redDwarfSteel), Item.getIdFromItem(LOTRMod.dwarfSteel), "cinder_loe", "1.0");
         CinderCore.registerItemFallback(Item.getIdFromItem(spearRedDwarf), Item.getIdFromItem(LOTRMod.spearDwarven), "cinder_loe", "1.0");
@@ -1002,6 +1024,7 @@ public class CinderLoE {
         CinderCore.registerItemFallback(Item.getIdFromItem(frostblade), Item.getIdFromItem(LOTRMod.swordMithril), "cinder_loe", "1.0");
         CinderCore.registerItemFallback(Item.getIdFromItem(daggervoid), Item.getIdFromItem(LOTRMod.daggerMithril), "cinder_loe", "1.2.3");
         CinderCore.registerItemFallback(Item.getIdFromItem(spearsolidgold), Item.getIdFromItem(LOTRMod.spearMithril), "cinder_loe", "1.1");
+        CinderCore.registerItemFallback(Item.getIdFromItem(spearUnnamed), Item.getIdFromItem(LOTRMod.spearMithril), "cinder_loe", "1.2.4");
         CinderCore.registerItemFallback(Item.getIdFromItem(whip), Item.getIdFromItem(LOTRMod.balrogWhip), "cinder_loe", "1.2");
         // == Ash Forged ==
         CinderCore.registerItemFallback(Item.getIdFromItem(ingotAsh), Item.getIdFromItem(LOTRMod.galvorn), "cinder_loe", "1.2");
@@ -1080,6 +1103,9 @@ public class CinderLoE {
 
      //   CinderCore.registerEntityFallback(HaradLevy.class, LOTREntityNearHaradrim.class, "cinder_loe", "1.2.3");
      //   CinderCore.registerEntityFallback(DwarfLevy.class, LOTREntityDwarf.class, "cinder_loe", "1.2.3");
+        CinderCore.registerEntityFallback(DarkSpider.class, LOTREntityUtumnoIceSpider.class, "cinder_loe", "1.2.4");
+
+        CinderCore.registerEntityFallback(BladorthinSmith.class, LOTREntityDorwinionElf.class, "cinder_loe", "1.2.4");
 
         CinderCore.registerEntityFallback(CorruptDwarf.class, LOTREntityDwarf.class, "cinder_loe", "1.2.3");
         CinderCore.registerEntityFallback(CorruptElf.class, LOTREntityTormentedElf.class, "cinder_loe", "1.2.3");
@@ -1129,6 +1155,10 @@ public class CinderLoE {
         CinderCore.registerEntityFallback(BreeOutrider.class, LOTREntityBreeMan.class, "cinder_loe", "1.1");
 
         CinderCore.registerCustomFallback(42, 16, "banner", "cinder_loe", "1.2");
+        CinderCore.registerCustomFallback(43, 16, "banner", "cinder_loe", "1.2.4");
+        CinderCore.registerCustomFallback(44, 16, "banner", "cinder_loe", "1.2.4");
+        CinderCore.registerCustomFallback(45, 16, "banner", "cinder_loe", "1.2.4");
+        CinderCore.registerCustomFallback(46, 16, "banner", "cinder_loe", "1.2.4");
     }
 
     // Create unit trade entries here, out of the way of important code
diff --git a/src/main/java/com/zivilon/cinder_loe/Materials.java b/src/main/java/com/zivilon/cinder_loe/Materials.java
index 21ddfda..0a4b80b 100644
--- a/src/main/java/com/zivilon/cinder_loe/Materials.java
+++ b/src/main/java/com/zivilon/cinder_loe/Materials.java
@@ -14,9 +14,8 @@ public class Materials {
     public static void registerMaterials() {
         modifyMaterial("RED_DWARF", 700, 3.0F, 0.7F, 3, 7.0F, 10, CinderLoE.redDwarfSteel);
         modifyMaterial("WIZARD", 1000, 3.0F, 0.7F, 3, 7.0F, 10, null);
-        modifyMaterial("LIMWAITH_BONE", 250, 2.0F, 0.7F, 2, 6.0F, 10, null);
         modifyMaterial("BONEMOLD", 350, 2.0F, 0.6F, 2, 6.0F, 10, CinderLoE.bonemold);
-        modifyMaterial("LIMWAITH_WOOD", 230, 1.5F, 0.5F, 2, 5.0F, 10, null);
+        modifyMaterial("LIMWAITH_WOOD", 230, 1.5F, 0.5F, 2, 5.0F, 10, Item.getItemFromBlock(LOTRMod.driedReeds));
         modifyMaterial("EVENT", 2400, 5.0F, 0.0F, 0, 9.0F, 10, null);
         modifyMaterial("BREE", 350, 2.5F, 0.6F, 2, 6.0F, 10, Items.iron_ingot);
         modifyMaterial("BATTLENUN", 300, 3F, 0.6F, 2, 6.0F, 10, Items.iron_ingot);
diff --git a/src/main/java/com/zivilon/cinder_loe/blocks/VerticalWeaponRack.java b/src/main/java/com/zivilon/cinder_loe/blocks/VerticalWeaponRack.java
new file mode 100644
index 0000000..3cde8ed
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/blocks/VerticalWeaponRack.java
@@ -0,0 +1,24 @@
+package com.zivilon.cinder_loe.blocks;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import lotr.common.block.LOTRBlockWeaponRack;
+import lotr.common.tileentity.LOTRTileEntityWeaponRack;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockContainer;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.init.Blocks;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+public class VerticalWeaponRack extends LOTRBlockWeaponRack {
+    public VerticalWeaponRack() {
+        super();
+        this.setHardness(0.5f);
+        this.setResistance(1.0f);
+        this.setStepSound(Block.soundTypeWood);
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/character/CharacterEventListener.java b/src/main/java/com/zivilon/cinder_loe/character/CharacterEventListener.java
index 9a881c7..b7c00d0 100644
--- a/src/main/java/com/zivilon/cinder_loe/character/CharacterEventListener.java
+++ b/src/main/java/com/zivilon/cinder_loe/character/CharacterEventListener.java
@@ -2,12 +2,9 @@ package com.zivilon.cinder_loe.character;
 
 import cpw.mods.fml.common.eventhandler.SubscribeEvent;
 import cpw.mods.fml.common.eventhandler.EventPriority;
-import cpw.mods.fml.common.FMLCommonHandler;
 import net.minecraftforge.common.MinecraftForge;
 import net.minecraftforge.event.entity.living.LivingHurtEvent;
 
-import net.minecraft.command.IEntitySelector;
-import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLiving;
 import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.passive.EntityAnimal;
@@ -19,8 +16,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import com.zivilon.cinder_loe.character.CharacterRoleAPI;
-import com.zivilon.cinder_loe.entity.FangornAnimal;
+import com.zivilon.cinder_loe.entity.npc.FangornAnimal;
 
 public class CharacterEventListener {
 
diff --git a/src/main/java/com/zivilon/cinder_loe/client/model/ModelBreeKettleHelmet.java b/src/main/java/com/zivilon/cinder_loe/client/model/ModelBreeKettleHelmet.java
index baddf15..b7835de 100644
--- a/src/main/java/com/zivilon/cinder_loe/client/model/ModelBreeKettleHelmet.java
+++ b/src/main/java/com/zivilon/cinder_loe/client/model/ModelBreeKettleHelmet.java
@@ -1,32 +1,46 @@
 package com.zivilon.cinder_loe.client.model;
 
-import net.minecraft.client.model.ModelBiped;
+import lotr.client.model.LOTRModelBiped;
 import net.minecraft.client.model.ModelRenderer;
 import net.minecraft.entity.Entity;
 
-/**
- * Created using Tabula 4.1.1
- */
-public class ModelBreeKettleHelmet extends ModelBiped {
+public class ModelBreeKettleHelmet extends LOTRModelBiped {
     public ModelRenderer shape9;
 
     public ModelBreeKettleHelmet(float f) {
-        super(f);
+        super(f); // Call the parent constructor to initialize the biped parts
+
         this.textureWidth = 64;
         this.textureHeight = 32;
-        this.bipedHead = new ModelRenderer(this, 0, 0);
-        this.bipedHead.setRotationPoint(0.0F, 0.0F, 0.0F);
-        this.bipedHead.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 1.0F);
+
+        // Define the shape9 part and attach it to bipedHead
         this.shape9 = new ModelRenderer(this, 0, 16);
         this.shape9.setRotationPoint(0.0F, 0.0F, 0.0F);
-        this.shape9.addBox(-7.0F, -4.75F, -7.0F, 14, 0, 14, 1.75F);
-        this.bipedHead.addChild(shape9);
+        //shape9.addBox(0F, -13F, -4F, 0, 4, 10);
+        this.shape9.addBox(-7.0F, -6.0F, -7.0F, 14, 0, 14, 0.0F);
+
+        // Clear any previously defined parts for the bipedHead
+        this.bipedHead.cubeList.clear();
+
+        // Define the main helmet part and attach shape9 to it
+        this.bipedHead = new ModelRenderer(this, 0, 0);
+        this.bipedHead.setRotationPoint(0.0F, 0.0F, 0.0F);
+       // this.bipedHead.addBox(-4.5F, -9.0F, -4.5F, 9, 9, 9, 0.5F); // Adjusted position and scale
+        this.bipedHead.addBox(-4F, -8F, -4F, 8, 8, 8, f); // Adjusted position and scale (f)
+        this.bipedHead.addChild(this.shape9);
+
+        // Clear unnecessary parts
+        this.bipedHeadwear.cubeList.clear();
+        this.bipedBody.cubeList.clear();
+        this.bipedRightArm.cubeList.clear();
+        this.bipedLeftArm.cubeList.clear();
+        this.bipedRightLeg.cubeList.clear();
+        this.bipedLeftLeg.cubeList.clear();
     }
 
     @Override
     public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
         this.bipedHead.render(f5);
-//        this.shape9.render(f5);
     }
 
     /**
diff --git a/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornAuroch.java b/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornAuroch.java
index 7fdd37f..2921aa7 100644
--- a/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornAuroch.java
+++ b/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornAuroch.java
@@ -4,9 +4,6 @@ import net.minecraft.client.model.ModelBase;
 import net.minecraft.client.model.ModelRenderer;
 import net.minecraft.entity.Entity;
 import net.minecraft.util.MathHelper;
-import org.lwjgl.opengl.GL11;
-
-import com.zivilon.cinder_loe.entity.FangornAuroch;
 
 public class ModelFangornAuroch extends ModelBase {
     public ModelRenderer body;
diff --git a/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornElk.java b/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornElk.java
index 50e1a37..80829f9 100644
--- a/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornElk.java
+++ b/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornElk.java
@@ -1,6 +1,5 @@
 package com.zivilon.cinder_loe.client.model;
 
-import lotr.client.LOTRTickHandlerClient;
 import lotr.common.LOTRMod;
 import net.minecraft.client.model.ModelBase;
 import net.minecraft.client.model.ModelRenderer;
@@ -8,7 +7,7 @@ import net.minecraft.entity.Entity;
 import net.minecraft.util.MathHelper;
 import org.lwjgl.opengl.GL11;
 
-import com.zivilon.cinder_loe.entity.FangornElk;
+import com.zivilon.cinder_loe.entity.npc.FangornElk;
 
 public class ModelFangornElk extends ModelBase {
   private ModelRenderer body;
diff --git a/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornWolf.java b/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornWolf.java
index c08dc8b..6560992 100644
--- a/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornWolf.java
+++ b/src/main/java/com/zivilon/cinder_loe/client/model/ModelFangornWolf.java
@@ -4,12 +4,10 @@ import cpw.mods.fml.relauncher.Side;
 import cpw.mods.fml.relauncher.SideOnly;
 import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.passive.EntityWolf;
 import net.minecraft.util.MathHelper;
-import org.lwjgl.opengl.GL11;
 import net.minecraft.client.model.ModelBase;
 import net.minecraft.client.model.ModelRenderer;
-import com.zivilon.cinder_loe.entity.FangornWolf;
+import com.zivilon.cinder_loe.entity.npc.FangornWolf;
 
 @SideOnly(Side.CLIENT)
 public class ModelFangornWolf extends ModelBase {
diff --git a/src/main/java/com/zivilon/cinder_loe/client/model/Modelverticalweaponrack.java b/src/main/java/com/zivilon/cinder_loe/client/model/Modelverticalweaponrack.java
new file mode 100644
index 0000000..eaf1b54
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/client/model/Modelverticalweaponrack.java
@@ -0,0 +1,92 @@
+package com.zivilon.cinder_loe.client.model;
+
+
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.model.ModelRenderer;
+import net.minecraft.entity.Entity;
+
+/**
+ * Vertical Weapon rack - Cleric_red
+ * Created using Tabula 4.1.1
+ */
+public class Modelverticalweaponrack extends ModelBase {
+    public ModelRenderer Post;
+    public ModelRenderer Plate;
+    public ModelRenderer Post_1;
+    public ModelRenderer Base;
+    public ModelRenderer HolderBottom;
+    public ModelRenderer HolderBottom_1;
+    public ModelRenderer HolderBottom_2;
+    public ModelRenderer HolderTop;
+    public ModelRenderer HolderTop_1;
+    public ModelRenderer HolderTop_2;
+    public boolean onWall = true;
+
+    public Modelverticalweaponrack() {
+        this.textureWidth = 64;
+        this.textureHeight = 32;
+        this.HolderBottom_2 = new ModelRenderer(this, 0, 17);
+        this.HolderBottom_2.setRotationPoint(-1.0F, 20.0F, 2.0F);
+        this.HolderBottom_2.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F);
+        this.setRotateAngle(HolderBottom_2, 0.0F, 1.5707963267948966F, 0.0F);
+        this.Base = new ModelRenderer(this, 0, 0);
+        this.Base.setRotationPoint(-8.0F, 10.0F, 2.5F);
+        this.Base.addBox(0.0F, 0.0F, 0.0F, 5, 14, 2, 0.0F);
+        this.setRotateAngle(Base, 0.0F, 1.5707963267948966F, 0.0F);
+        this.HolderTop_1 = new ModelRenderer(this, 0, 17);
+        this.HolderTop_1.setRotationPoint(-1.0F, 12.0F, -1.0F);
+        this.HolderTop_1.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F);
+        this.setRotateAngle(HolderTop_1, 0.0F, 1.5707963267948966F, 0.0F);
+        this.HolderTop = new ModelRenderer(this, 5, 17);
+        this.HolderTop.setRotationPoint(-1.0F, 12.0F, 2.0F);
+        this.HolderTop.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F);
+        this.setRotateAngle(HolderTop, 0.0F, 1.5707963267948966F, 0.0F);
+        this.Post_1 = new ModelRenderer(this, 14, 0);
+        this.Post_1.setRotationPoint(-6.0F, 20.0F, 1.0F);
+        this.Post_1.addBox(0.0F, 0.0F, 0.0F, 2, 2, 3, 0.0F);
+        this.setRotateAngle(Post_1, 0.0F, 1.5707963267948966F, 0.0F);
+        this.Plate = new ModelRenderer(this, 24, 0);
+        this.Plate.setRotationPoint(-3.0F, 10.0F, 1.5F);
+        this.Plate.addBox(0.0F, 0.0F, 0.0F, 3, 14, 1, 0.0F);
+        this.setRotateAngle(Plate, 0.0F, 1.5707963267948966F, 0.0F);
+        this.HolderTop_2 = new ModelRenderer(this, 0, 17);
+        this.HolderTop_2.setRotationPoint(-2.0F, 12.0F, 2.0F);
+        this.HolderTop_2.addBox(0.0F, 0.0F, 0.0F, 4, 2, 1, 0.0F);
+        this.setRotateAngle(HolderTop_2, 0.0F, 1.5707963267948966F, 0.0F);
+        this.HolderBottom = new ModelRenderer(this, 5, 17);
+        this.HolderBottom.setRotationPoint(-1.0F, 20.0F, -1.0F);
+        this.HolderBottom.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F);
+        this.setRotateAngle(HolderBottom, 0.0F, 1.5707963267948966F, 0.0F);
+        this.HolderBottom_1 = new ModelRenderer(this, 0, 17);
+        this.HolderBottom_1.setRotationPoint(-2.0F, 20.0F, 2.0F);
+        this.HolderBottom_1.addBox(0.0F, 0.0F, 0.0F, 4, 2, 1, 0.0F);
+        this.setRotateAngle(HolderBottom_1, 0.0F, 1.5707963267948966F, 0.0F);
+        this.Post = new ModelRenderer(this, 14, 0);
+        this.Post.setRotationPoint(-6.0F, 12.0F, 1.0F);
+        this.Post.addBox(0.0F, 0.0F, 0.0F, 2, 2, 3, 0.0F);
+        this.setRotateAngle(Post, 0.0F, 1.5707963267948966F, 0.0F);
+    }
+
+    @Override
+    public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
+        this.HolderBottom_2.render(f5);
+        this.Base.render(f5);
+        this.HolderTop_1.render(f5);
+        this.HolderTop.render(f5);
+        this.Post_1.render(f5);
+        this.Plate.render(f5);
+        this.HolderTop_2.render(f5);
+        this.HolderBottom.render(f5);
+        this.HolderBottom_1.render(f5);
+        this.Post.render(f5);
+    }
+
+    /**
+     * This is a helper function from Tabula to set the rotation of model parts
+     */
+    public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) {
+        modelRenderer.rotateAngleX = x;
+        modelRenderer.rotateAngleY = y;
+        modelRenderer.rotateAngleZ = z;
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/RenderBattleNun.java b/src/main/java/com/zivilon/cinder_loe/client/render/RenderBattleNun.java
index d4097a8..2be6d72 100644
--- a/src/main/java/com/zivilon/cinder_loe/client/render/RenderBattleNun.java
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/RenderBattleNun.java
@@ -1,6 +1,6 @@
 package com.zivilon.cinder_loe.client.render;
 
-import com.zivilon.cinder_loe.entity.BattleNun;
+import com.zivilon.cinder_loe.entity.npc.BattleNun;
 import lotr.client.model.LOTRModelHuman;
 import lotr.client.render.entity.LOTRRenderBiped;
 import lotr.client.render.entity.LOTRRandomSkins;
@@ -12,8 +12,6 @@ import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLiving;
 import net.minecraft.util.ResourceLocation;
 
-import com.zivilon.cinder_loe.entity.Limwaith;
-
 public class RenderBattleNun extends LOTRRenderBiped {
 
     public static LOTRRandomSkins skinsFemale;
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/RenderDarkSpider.java b/src/main/java/com/zivilon/cinder_loe/client/render/RenderDarkSpider.java
new file mode 100644
index 0000000..0dbe36d
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/RenderDarkSpider.java
@@ -0,0 +1,14 @@
+package com.zivilon.cinder_loe.client.render;
+
+import lotr.client.render.entity.LOTRRenderSpiderBase;
+import lotr.client.render.entity.LOTRRenderUtumnoIceSpider;
+import net.minecraft.entity.Entity;
+import net.minecraft.util.ResourceLocation;
+
+public class RenderDarkSpider extends LOTRRenderUtumnoIceSpider {
+    private static ResourceLocation spiderSkin = new ResourceLocation("cinder_loe:mob/spider/spider_dark.png");
+
+    protected ResourceLocation getEntityTexture(Entity entity) {
+        return spiderSkin;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornAuroch.java b/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornAuroch.java
index ab03624..dc0b76b 100644
--- a/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornAuroch.java
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornAuroch.java
@@ -8,7 +8,7 @@ import net.minecraft.entity.Entity;
 import net.minecraft.util.ResourceLocation;
 
 import com.zivilon.cinder_loe.client.model.ModelFangornAuroch;
-import com.zivilon.cinder_loe.entity.FangornAuroch;
+import com.zivilon.cinder_loe.entity.npc.FangornAuroch;
 
 public class RenderFangornAuroch extends RenderLiving {
   public static LOTRRandomSkins aurochsSkins;
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornBear.java b/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornBear.java
index 8876ae0..12d0daa 100644
--- a/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornBear.java
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornBear.java
@@ -1,11 +1,10 @@
 package com.zivilon.cinder_loe.client.render;
 
-import com.zivilon.cinder_loe.entity.FangornBear;
+import com.zivilon.cinder_loe.entity.npc.FangornBear;
 
 import java.util.HashMap;
 import java.util.Map;
 import lotr.client.model.LOTRModelBear;
-import lotr.client.render.entity.LOTRRenderBear;
 import lotr.common.entity.animal.LOTREntityBear;
 import net.minecraft.client.model.ModelBase;
 import net.minecraft.client.renderer.entity.RenderLiving;
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornElk.java b/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornElk.java
index 16f3ced..f7d3824 100644
--- a/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornElk.java
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornElk.java
@@ -2,16 +2,13 @@ package com.zivilon.cinder_loe.client.render;
 
 import lotr.common.entity.LOTRRandomSkinEntity;
 import lotr.client.render.entity.LOTRRandomSkins;
-import lotr.common.entity.animal.LOTREntityElk;
-import lotr.common.entity.npc.LOTRNPCMount;
 import net.minecraft.client.model.ModelBase;
 import net.minecraft.client.renderer.entity.RenderLiving;
 import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.util.ResourceLocation;
 
 import com.zivilon.cinder_loe.client.model.ModelFangornElk;
-import com.zivilon.cinder_loe.entity.FangornElk;
+import com.zivilon.cinder_loe.entity.npc.FangornElk;
 
 public class RenderFangornElk extends RenderLiving {
   private static LOTRRandomSkins elkSkins;
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornWolf.java b/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornWolf.java
index 05153c4..454233e 100644
--- a/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornWolf.java
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/RenderFangornWolf.java
@@ -1,15 +1,10 @@
 package com.zivilon.cinder_loe.client.render;
 
-import lotr.common.entity.npc.LOTRNPCMount;
-import lotr.client.render.entity.LOTRRenderHorse;
-
 import net.minecraft.client.model.ModelBase;
 import net.minecraft.client.renderer.entity.RenderLiving;
 import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.util.ResourceLocation;
 
-import com.zivilon.cinder_loe.entity.FangornWolf;
 import com.zivilon.cinder_loe.client.model.ModelFangornWolf;
 
 public class RenderFangornWolf extends RenderLiving {
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/RenderLimwaith.java b/src/main/java/com/zivilon/cinder_loe/client/render/RenderLimwaith.java
index 783c0e5..75d923b 100644
--- a/src/main/java/com/zivilon/cinder_loe/client/render/RenderLimwaith.java
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/RenderLimwaith.java
@@ -4,7 +4,6 @@ import lotr.client.model.LOTRModelHuman;
 import lotr.client.render.entity.LOTRRenderBiped;
 import lotr.client.render.entity.LOTRRandomSkins;
 import lotr.common.entity.LOTRRandomSkinEntity;
-import lotr.common.entity.npc.LOTREntityMoredain;
 import lotr.common.entity.npc.LOTREntityNPC;
 import net.minecraft.client.model.ModelBase;
 import net.minecraft.client.model.ModelBiped;
@@ -12,7 +11,7 @@ import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLiving;
 import net.minecraft.util.ResourceLocation;
 
-import com.zivilon.cinder_loe.entity.Limwaith;
+import com.zivilon.cinder_loe.entity.npc.Limwaith;
 
 public class RenderLimwaith extends LOTRRenderBiped {
     public static LOTRRandomSkins skinsMale;
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/RenderLimwaithShaman.java b/src/main/java/com/zivilon/cinder_loe/client/render/RenderLimwaithShaman.java
index 8968d03..6efa0d2 100644
--- a/src/main/java/com/zivilon/cinder_loe/client/render/RenderLimwaithShaman.java
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/RenderLimwaithShaman.java
@@ -1,16 +1,9 @@
 package com.zivilon.cinder_loe.client.render;
 
-import com.zivilon.cinder_loe.entity.Limwaith;
-import lotr.client.model.LOTRModelHuman;
+import com.zivilon.cinder_loe.entity.npc.Limwaith;
 import lotr.client.render.entity.LOTRRandomSkins;
-import lotr.client.render.entity.LOTRRenderBiped;
-import lotr.common.entity.LOTRRandomSkinEntity;
-import lotr.common.entity.npc.LOTREntityNPC;
 import net.minecraft.client.model.ModelBase;
-import net.minecraft.client.model.ModelBiped;
-import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLiving;
-import net.minecraft.util.ResourceLocation;
 
 public class RenderLimwaithShaman extends RenderLimwaith {
     private static LOTRRandomSkins outfits;
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/block/Renderverticalweaponrack.java b/src/main/java/com/zivilon/cinder_loe/client/render/block/Renderverticalweaponrack.java
new file mode 100644
index 0000000..dcbc34e
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/block/Renderverticalweaponrack.java
@@ -0,0 +1,144 @@
+package com.zivilon.cinder_loe.client.render.block;
+
+import com.zivilon.cinder_loe.client.model.Modelverticalweaponrack;
+import com.zivilon.cinder_loe.tileentity.TileEntityMistBlock;
+import lotr.client.model.LOTRModelWeaponRack;
+import lotr.client.render.item.LOTRRenderBow;
+import lotr.common.tileentity.LOTRTileEntityWeaponRack;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.FontRenderer;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.entity.RenderManager;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.util.ResourceLocation;
+import net.minecraftforge.client.IItemRenderer;
+import org.lwjgl.opengl.GL11;
+
+public class Renderverticalweaponrack extends TileEntitySpecialRenderer {
+    private static ResourceLocation rackTexture = new ResourceLocation("lotr:item/verticalweaponRack.png");
+    private static Modelverticalweaponrack rackModel = new Modelverticalweaponrack();
+    public void renderTileEntityAt(TileEntity tileentity, double d, double d1, double d2, float f) {
+        LOTRTileEntityWeaponRack weaponRack = (LOTRTileEntityWeaponRack)tileentity;
+        GL11.glPushMatrix();
+        GL11.glDisable((int)2884);
+        GL11.glEnable((int)32826);
+        GL11.glEnable((int)3008);
+        GL11.glTranslatef((float)((float)d + 0.5f), (float)((float)d1 + 1.5f), (float)((float)d2 + 0.5f));
+        int meta = weaponRack.getBlockMetadata();
+        int dir = meta & 3;
+        boolean wall = (meta & 4) != 0;
+        switch (dir) {
+            case 0: {
+                GL11.glRotatef((float)0.0f, (float)0.0f, (float)1.0f, (float)0.0f);
+                break;
+            }
+            case 1: {
+                GL11.glRotatef((float)270.0f, (float)0.0f, (float)1.0f, (float)0.0f);
+                break;
+            }
+            case 2: {
+                GL11.glRotatef((float)180.0f, (float)0.0f, (float)1.0f, (float)0.0f);
+                break;
+            }
+            case 3: {
+                GL11.glRotatef((float)90.0f, (float)0.0f, (float)1.0f, (float)0.0f);
+            }
+        }
+        if (wall) {
+            GL11.glTranslatef((float)0.0f, (float)0.375f, (float)-0.5f);
+        }
+        GL11.glScalef((float)-1.0f, (float)-1.0f, (float)1.0f);
+        float scale = 0.0625f;
+        this.bindTexture(rackTexture);
+        Renderverticalweaponrack.rackModel.onWall = wall;
+        rackModel.render(null, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, scale);
+        ItemStack weaponItem = weaponRack.getWeaponItem();
+        if (weaponItem != null) {
+            float weaponScale = 0.625f;
+            GL11.glScalef((float)weaponScale, (float)weaponScale, (float)weaponScale);
+            GL11.glScalef((float)-1.0f, (float)1.0f, (float)1.0f);
+            GL11.glTranslatef((float)0.0f, (float)0.52f, (float)0.0f);
+            if (wall) {
+                GL11.glTranslatef((float)0.0f, (float)1.1f, (float)0.51f);
+            }
+            GL11.glRotatef((float)45.0f, (float)0.0f, (float)0.0f, (float)1.0f);
+            GL11.glTranslatef((float)0.9375f, (float)0.0625f, (float)0.0f);
+            GL11.glRotatef((float)-335.0f, (float)0.0f, (float)0.0f, (float)1.0f);
+            GL11.glRotatef((float)-50.0f, (float)0.0f, (float)1.0f, (float)0.0f);
+            GL11.glScalef((float)0.6666667f, (float)0.6666667f, (float)0.6666667f);
+            GL11.glTranslatef((float)0.0f, (float)0.3f, (float)0.0f);
+            RenderManager renderManager = RenderManager.instance;
+            int passes = 1;
+            if (weaponItem.getItem().requiresMultipleRenderPasses()) {
+                passes = weaponItem.getItem().getRenderPasses(weaponItem.getItemDamage());
+            }
+            LOTRRenderBow.renderingWeaponRack = true;
+            for (int pass = 0; pass < passes; ++pass) {
+                int color = weaponItem.getItem().getColorFromItemStack(weaponItem, pass);
+                float r = (float)(color >> 16 & 0xFF) / 255.0f;
+                float g = (float)(color >> 8 & 0xFF) / 255.0f;
+                float b = (float)(color & 0xFF) / 255.0f;
+                GL11.glColor4f((float)r, (float)g, (float)b, (float)1.0f);
+                renderManager.itemRenderer.renderItem(weaponRack.getEntityForRender(), weaponItem, 0, IItemRenderer.ItemRenderType.EQUIPPED);
+            }
+            LOTRRenderBow.renderingWeaponRack = false;
+        }
+        GL11.glEnable((int)2884);
+        GL11.glDisable((int)32826);
+        GL11.glPopMatrix();
+        this.renderWeaponName(weaponRack, d + 0.5, d1 + 0.75, d2 + 0.5);
+    }
+
+    private void renderWeaponName(LOTRTileEntityWeaponRack rack, double d, double d1, double d2) {
+        MovingObjectPosition mop = Minecraft.getMinecraft().objectMouseOver;
+        if (mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && mop.blockX == rack.xCoord && mop.blockY == rack.yCoord && mop.blockZ == rack.zCoord) {
+            ItemStack weaponItem = rack.getWeaponItem();
+            if (Minecraft.isGuiEnabled() && weaponItem != null && weaponItem.hasDisplayName()) {
+                float f2;
+                RenderManager renderManager = RenderManager.instance;
+                FontRenderer fontRenderer = this.func_147498_b();
+                float f = 1.6f;
+                float f1 = 0.016666668f * f;
+                double dSq = renderManager.livingPlayer.getDistanceSq((double)rack.xCoord + 0.5, (double)rack.yCoord + 0.5, (double)rack.zCoord);
+                if (dSq < (double)((f2 = 64.0f) * f2)) {
+                    String name = weaponItem.getDisplayName();
+                    GL11.glPushMatrix();
+                    GL11.glTranslatef((float)((float)d), (float)((float)d1 + 0.5f), (float)((float)d2));
+                    GL11.glNormal3f((float)0.0f, (float)1.0f, (float)0.0f);
+                    GL11.glRotatef((float)(-renderManager.playerViewY), (float)0.0f, (float)1.0f, (float)0.0f);
+                    GL11.glRotatef((float)renderManager.playerViewX, (float)1.0f, (float)0.0f, (float)0.0f);
+                    GL11.glScalef((float)(-f1), (float)(-f1), (float)f1);
+                    GL11.glDisable((int)2896);
+                    GL11.glDepthMask((boolean)false);
+                    GL11.glDisable((int)2929);
+                    GL11.glEnable((int)3042);
+                    OpenGlHelper.glBlendFunc((int)770, (int)771, (int)1, (int)0);
+                    Tessellator tessellator = Tessellator.instance;
+                    int b0 = 0;
+                    GL11.glDisable((int)3553);
+                    tessellator.startDrawingQuads();
+                    int j = fontRenderer.getStringWidth(name) / 2;
+                    tessellator.setColorRGBA_F(0.0f, 0.0f, 0.0f, 0.25f);
+                    tessellator.addVertex((double)(-j - 1), (double)(-1 + b0), 0.0);
+                    tessellator.addVertex((double)(-j - 1), (double)(8 + b0), 0.0);
+                    tessellator.addVertex((double)(j + 1), (double)(8 + b0), 0.0);
+                    tessellator.addVertex((double)(j + 1), (double)(-1 + b0), 0.0);
+                    tessellator.draw();
+                    GL11.glEnable((int)3553);
+                    fontRenderer.drawString(name, -fontRenderer.getStringWidth(name) / 2, b0, 0x20FFFFFF);
+                    GL11.glEnable((int)2929);
+                    GL11.glDepthMask((boolean)true);
+                    fontRenderer.drawString(name, -fontRenderer.getStringWidth(name) / 2, b0, -1);
+                    GL11.glEnable((int)2896);
+                    GL11.glDisable((int)3042);
+                    GL11.glColor4f((float)1.0f, (float)1.0f, (float)1.0f, (float)1.0f);
+                    GL11.glPopMatrix();
+                }
+            }
+        }
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRBannerAdder.java b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRBannerAdder.java
index e158c8d..55d227f 100644
--- a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRBannerAdder.java
+++ b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRBannerAdder.java
@@ -26,6 +26,10 @@ public class LOTRBannerAdder implements IClassTransformer {
         custom_banners = new ArrayList<>();
         // Arguments: enum name, texture name, ID, faction name
         register("RED_DWARF", "redDwarf", 42, "DURINS_FOLK");
+        register("LIMWAITH", "limwaith", 43, "MORWAITH");
+        register("RED", "red", 44, "GONDOR");
+        register("BLUE", "blue", 45, "GONDOR");
+        register("GREEN", "green", 46, "GONDOR");
 //        register("TEST", "test", 43, "GONDOR");
     }
 
diff --git a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java
index 4c95630..7df320c 100644
--- a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java
+++ b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java
@@ -22,7 +22,7 @@ public class LOTRWeaponLinker implements IClassTransformer {
                 "spearRedDwarf", "crossbowRedDwarf", "swordRedDwarf", "battleaxeRedDwarf", "pikeRedDwarf", "daggerRedDwarf", "daggerRedDwarfPoisoned", "hammerRedDwarf",
                 "radagastStaff", "alatarStaff", "pallandoStaff", "sarumanStaff",
                 "spearLimwaith", "tridentLimwaith", "daggerLimwaith", "daggerLimwaithPoisoned", "truncheonLimwaith", "battleaxeLimwaith", "blowgunLimwaith",
-                "frostblade", "spearsolidgold", "whip",
+                "frostblade", "spearsolidgold", "whip", "spearUnnamed",
                 "swordBree",
                 "maceArnor",
                 "daggerAsh","bowAsh","hammerAsh","pikeAsh","battleaxeAsh","swordAsh","spearAsh", "staffAsh");
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/DarkSpider.java b/src/main/java/com/zivilon/cinder_loe/entity/DarkSpider.java
new file mode 100644
index 0000000..2a0ceed
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/entity/DarkSpider.java
@@ -0,0 +1,90 @@
+package com.zivilon.cinder_loe.entity;
+
+import com.zivilon.cinder_loe.CinderLoE;
+import lotr.common.LOTRFoods;
+import lotr.common.LOTRMod;
+import lotr.common.entity.ai.*;
+import lotr.common.entity.animal.LOTREntityHorse;
+import lotr.common.entity.npc.*;
+import lotr.common.fac.LOTRFaction;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLiving;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.SharedMonsterAttributes;
+import net.minecraft.entity.ai.*;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class DarkSpider extends LOTREntitySpiderBase {
+    public static int VENOM_DARK = 3;
+    public DarkSpider(World world) {
+        super(world);
+    }
+    @Override
+    protected int getRandomSpiderScale() {
+        return this.rand.nextInt(4);
+    }
+    @Override
+    protected int getRandomSpiderType() {
+        return VENOM_DARK;
+    }
+    @Override
+    public LOTRFaction getFaction() {
+        return LOTRFaction.UTUMNO;
+    }
+
+    @Override
+    public boolean attackEntityAsMob(Entity entity) {
+        if (super.attackEntityAsMob(entity)) {
+            if (entity instanceof EntityLivingBase) {
+                ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(Potion.blindness.id, 200, 0));
+            }
+            return true;
+        }
+        return false;
+    }
+    @Override
+    protected boolean canRideSpider() {
+        return false;
+    }
+    @Override
+    public void attackEntityWithRangedAttack(EntityLivingBase p_82196_1_, float p_82196_2_) {
+    }
+    @Override
+    public boolean attackEntityFrom(DamageSource source, float amount) {
+        if (source.getEntity() instanceof  EntityLivingBase) {
+            EntityLivingBase attacker = (EntityLivingBase) source.getEntity();
+            if (attacker instanceof  EntityPlayer) {
+                EntityPlayer player = (EntityPlayer) attacker;
+                if (this.getSpiderScale() > 4 && this.rand.nextDouble() < 0.5) {
+                    spawnDarkSpiders(player);
+                }
+            }
+        }
+        return super.attackEntityFrom(source, amount);
+    }
+    private void spawnDarkSpiders(EntityPlayer player) {
+        World world = player.worldObj;
+        for (int i = 0; i < 10; i++) {
+            DarkSpider babySpider = new DarkSpider(world);
+            babySpider.setLocationAndAngles(player.posX, player.posY, player.posZ, player.rotationYaw, 0.0F);
+            babySpider.setSpiderScale(0);
+            babySpider.setHealth(10);
+            world.spawnEntityInWorld(babySpider);
+        }
+    }
+    @Override
+    public ItemStack getPickedResult(MovingObjectPosition target) {
+        return null;
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/SpeechBankModifier.java b/src/main/java/com/zivilon/cinder_loe/entity/SpeechBankModifier.java
index 30386ed..41e8133 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/SpeechBankModifier.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/SpeechBankModifier.java
@@ -77,6 +77,8 @@ public class SpeechBankModifier {
         speechBanks.put("arnorSoldier/soldier/friendly", loadSpeechLines("arnorSoldier/soldier/friendly"));
         speechBanks.put("arnorSoldier/soldier/hired", loadSpeechLines("arnorSoldier/soldier/hired"));
         speechBanks.put("arnorSoldier/soldier/hostile", loadSpeechLines("arnorSoldier/soldier/hostile"));
+        speechBanks.put("corruptSpeak/all/neutral", loadSpeechLines("corruptSpeak/all/neutral"));
+        speechBanks.put("corruptSpeak/all/hostile", loadSpeechLines("corruptSpeak/all/hostile"));
         return speechBanks;
     }
 
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptDwarf.java b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptDwarf.java
index 93b24db..23547e9 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptDwarf.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptDwarf.java
@@ -56,8 +56,8 @@ public class CorruptDwarf extends LOTREntityDwarf {
     @Override
     public String getSpeechBank(EntityPlayer entityplayer) {
         if (this.isFriendlyAndAligned(entityplayer)) {
-            return "corrupt/neutral";
+            return "corruptSpeak/all/neutral";
         }
-        return "corrupt/hostile";
+        return "corruptSpeak/all/hostile";
     }
 }
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptElf.java b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptElf.java
index a8c6dc7..765578f 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptElf.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptElf.java
@@ -86,9 +86,9 @@ public class CorruptElf  extends LOTREntityElf {
     @Override
     public String getSpeechBank(EntityPlayer entityplayer) {
         if (this.isFriendlyAndAligned(entityplayer)) {
-            return "corrupt/neutral";
+            return "corruptSpeak/all/neutral";
         }
-        return "corrupt/hostile";
+        return "corruptSpeak/all/hostile";
     }
 
     @Override
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptHobbit.java b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptHobbit.java
index f7dbbab..36021e6 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptHobbit.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptHobbit.java
@@ -81,9 +81,9 @@ public class CorruptHobbit extends LOTREntityHobbitBounder {
     @Override
     public String getSpeechBank(EntityPlayer entityplayer) {
         if (this.isFriendlyAndAligned(entityplayer)) {
-            return "corrupt/neutral";
+            return "corruptSpeak/all/neutral";
         }
-        return "corrupt/hostile";
+        return "corruptSpeak/all/hostile";
     }
     @Override
     protected void dropFewItems(boolean flag, int i) {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptMan.java b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptMan.java
index f3ac4a0..a61ff5b 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptMan.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptMan.java
@@ -86,9 +86,9 @@ public class CorruptMan extends LOTREntityGondorMan {
     @Override
     public String getSpeechBank(EntityPlayer entityplayer) {
         if (this.isFriendlyAndAligned(entityplayer)) {
-            return "corrupt/neutral";
+            return "corruptSpeak/all/neutral";
         }
-        return "corrupt/hostile";
+        return "corruptSpeak/all/hostile";
     }
     @Override
     public LOTRMiniQuest createMiniQuest() {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptOrc.java b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptOrc.java
index 2b7e6a0..6c973fb 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptOrc.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptOrc.java
@@ -63,9 +63,9 @@ public class CorruptOrc extends LOTREntityOrc {
     @Override
     public String getSpeechBank(EntityPlayer entityplayer) {
         if (this.isFriendlyAndAligned(entityplayer)) {
-            return "corrupt/neutral";
+            return "corruptSpeak/all/neutral";
         }
-        return "corrupt/hostile";
+        return "corruptSpeak/all/hostile";
     }
     @Override
     public float getAlignmentBonus() {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/ArnorBannerBearer.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorBannerBearer.java
similarity index 94%
rename from src/main/java/com/zivilon/cinder_loe/entity/ArnorBannerBearer.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorBannerBearer.java
index bd73ba8..e0b7f95 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/ArnorBannerBearer.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorBannerBearer.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.entity.npc.LOTRBannerBearer;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/ArnorCaptain.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorCaptain.java
similarity index 96%
rename from src/main/java/com/zivilon/cinder_loe/entity/ArnorCaptain.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorCaptain.java
index 7f892f0..d21019a 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/ArnorCaptain.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorCaptain.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.LOTRCapes;
@@ -7,7 +7,6 @@ import lotr.common.LOTRMod;
 import lotr.common.entity.npc.LOTRUnitTradeEntries;
 import lotr.common.entity.npc.LOTRUnitTradeable;
 import lotr.common.world.spawning.LOTRInvasions;
-import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.IEntityLivingData;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.item.ItemStack;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/ArnorSoldier.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorSoldier.java
similarity index 98%
rename from src/main/java/com/zivilon/cinder_loe/entity/ArnorSoldier.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorSoldier.java
index e9aeda5..5dc2415 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/ArnorSoldier.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorSoldier.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.entity.ai.LOTREntityAIAttackOnCollide;
 import lotr.common.entity.npc.LOTREntityDunedain;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/ArnorSoldierArcher.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorSoldierArcher.java
similarity index 81%
rename from src/main/java/com/zivilon/cinder_loe/entity/ArnorSoldierArcher.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorSoldierArcher.java
index 91f964a..be47169 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/ArnorSoldierArcher.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/ArnorSoldierArcher.java
@@ -1,18 +1,11 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
-import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.LOTRMod;
-import lotr.common.LOTRShields;
 import lotr.common.entity.ai.LOTREntityAIRangedAttack;
 import lotr.common.entity.npc.LOTREntityNPC;
-import lotr.common.entity.projectile.LOTREntityDart;
-import lotr.common.item.LOTRItemBlowgun;
-import lotr.common.item.LOTRItemDart;
 import net.minecraft.entity.*;
 import net.minecraft.entity.ai.EntityAIBase;
-import net.minecraft.entity.ai.EntityAISwimming;
 import net.minecraft.item.ItemStack;
-import net.minecraft.util.MovingObjectPosition;
 import net.minecraft.world.World;
 
 public class ArnorSoldierArcher extends ArnorSoldier {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/BattleNun.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/BattleNun.java
similarity index 83%
rename from src/main/java/com/zivilon/cinder_loe/entity/BattleNun.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/BattleNun.java
index 6b767bd..b50d298 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/BattleNun.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/BattleNun.java
@@ -1,15 +1,9 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import com.zivilon.cinder_loe.CinderLoE;
-import lotr.common.LOTRAchievement;
-import lotr.common.LOTRShields;
-import lotr.common.entity.npc.LOTREntityDunedain;
-import lotr.common.entity.npc.LOTREntityMoredain;
-import lotr.common.entity.npc.LOTRNPCMount;
 import lotr.common.quest.LOTRMiniQuest;
 import lotr.common.quest.LOTRMiniQuestFactory;
 import net.minecraft.entity.IEntityLivingData;
-import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.item.ItemStack;
 import net.minecraft.world.World;
 
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/BreeCaptain.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/BreeCaptain.java
similarity index 98%
rename from src/main/java/com/zivilon/cinder_loe/entity/BreeCaptain.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/BreeCaptain.java
index 1d4239e..8788ced 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/BreeCaptain.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/BreeCaptain.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.LOTRAchievement;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/BreeCrossbowman.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/BreeCrossbowman.java
similarity index 89%
rename from src/main/java/com/zivilon/cinder_loe/entity/BreeCrossbowman.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/BreeCrossbowman.java
index 6f6af37..74ed3b3 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/BreeCrossbowman.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/BreeCrossbowman.java
@@ -1,8 +1,6 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
-import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.LOTRMod;
-import lotr.common.entity.ai.LOTREntityAIAttackOnCollide;
 import lotr.common.entity.ai.LOTREntityAIRangedAttack;
 import lotr.common.entity.npc.LOTREntityNPC;
 import net.minecraft.entity.EntityLiving;
@@ -10,7 +8,6 @@ import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.IEntityLivingData;
 import net.minecraft.entity.ai.EntityAIBase;
 import net.minecraft.item.ItemStack;
-import net.minecraft.util.MovingObjectPosition;
 import net.minecraft.world.World;
 
 public class BreeCrossbowman extends BreeSoldier {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/BreeOutrider.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/BreeOutrider.java
similarity index 99%
rename from src/main/java/com/zivilon/cinder_loe/entity/BreeOutrider.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/BreeOutrider.java
index 412c90b..bc162bc 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/BreeOutrider.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/BreeOutrider.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.*;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/BreeSoldier.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/BreeSoldier.java
similarity index 96%
rename from src/main/java/com/zivilon/cinder_loe/entity/BreeSoldier.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/BreeSoldier.java
index f38af2b..6d06285 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/BreeSoldier.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/BreeSoldier.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.LOTRMod;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/BreeSoldierBannerBearer.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/BreeSoldierBannerBearer.java
similarity index 93%
rename from src/main/java/com/zivilon/cinder_loe/entity/BreeSoldierBannerBearer.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/BreeSoldierBannerBearer.java
index 00b21b8..ad53c97 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/BreeSoldierBannerBearer.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/BreeSoldierBannerBearer.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.entity.npc.LOTRBannerBearer;
 import lotr.common.item.LOTRItemBanner;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/DwarfLevy.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/DwarfLevy.java
similarity index 98%
rename from src/main/java/com/zivilon/cinder_loe/entity/DwarfLevy.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/DwarfLevy.java
index 29a3d5c..55dbf2d 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/DwarfLevy.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/DwarfLevy.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.LOTRMod;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/FangornAnimal.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornAnimal.java
similarity index 98%
rename from src/main/java/com/zivilon/cinder_loe/entity/FangornAnimal.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/FangornAnimal.java
index e13fc52..e073486 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/FangornAnimal.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornAnimal.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.LOTRAchievement;
 import lotr.common.LOTRFoods;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/FangornAuroch.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornAuroch.java
similarity index 89%
rename from src/main/java/com/zivilon/cinder_loe/entity/FangornAuroch.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/FangornAuroch.java
index 4bc6a30..7894ac7 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/FangornAuroch.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornAuroch.java
@@ -1,23 +1,16 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.LOTRMod;
-import net.minecraft.block.Block;
 import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.IEntityLivingData;
 import net.minecraft.entity.SharedMonsterAttributes;
-import net.minecraft.entity.ai.EntityAIBase;
 import net.minecraft.init.Items;
 import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
 import net.minecraft.util.DamageSource;
 import net.minecraft.world.World;
 import net.minecraft.util.MovingObjectPosition;
 
-import java.util.List;
-
 import com.zivilon.cinder_loe.CinderLoE;
-import com.zivilon.cinder_loe.entity.FangornAnimal;
 
 public class FangornAuroch extends FangornAnimal {
     public FangornAuroch(World world) {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/FangornBear.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornBear.java
similarity index 96%
rename from src/main/java/com/zivilon/cinder_loe/entity/FangornBear.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/FangornBear.java
index 8ab23b0..866f8c4 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/FangornBear.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornBear.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.LOTRMod;
 import lotr.common.entity.animal.LOTREntityBear;
@@ -7,8 +7,6 @@ import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.IEntityLivingData;
 import net.minecraft.entity.SharedMonsterAttributes;
-import net.minecraft.entity.ai.EntityAIBase;
-import net.minecraft.init.Items;
 import net.minecraft.item.ItemStack;
 import net.minecraft.nbt.NBTTagCompound;
 import net.minecraft.util.DamageSource;
@@ -18,7 +16,6 @@ import net.minecraft.world.World;
 import java.util.List;
 
 import com.zivilon.cinder_loe.CinderLoE;
-import com.zivilon.cinder_loe.entity.FangornAnimal;
 
 public class FangornBear extends FangornAnimal {
     public FangornBear(World world) {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/FangornElk.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornElk.java
similarity index 89%
rename from src/main/java/com/zivilon/cinder_loe/entity/FangornElk.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/FangornElk.java
index aff8ddc..0d6657e 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/FangornElk.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornElk.java
@@ -1,24 +1,18 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.LOTRMod;
-import net.minecraft.block.Block;
 import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.IEntityLivingData;
 import net.minecraft.entity.SharedMonsterAttributes;
-import net.minecraft.entity.ai.EntityAIBase;
 import net.minecraft.init.Items;
 import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
 import net.minecraft.util.DamageSource;
 import net.minecraft.util.MovingObjectPosition;
 import net.minecraft.world.World;
 
-import java.util.List;
 import java.util.UUID;
 
 import com.zivilon.cinder_loe.CinderLoE;
-import com.zivilon.cinder_loe.entity.FangornAnimal;
 
 public class FangornElk extends FangornAnimal {
     public FangornElk(World world) {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/FangornWildBoar.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornWildBoar.java
similarity index 87%
rename from src/main/java/com/zivilon/cinder_loe/entity/FangornWildBoar.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/FangornWildBoar.java
index 239ec53..c1c4d6c 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/FangornWildBoar.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornWildBoar.java
@@ -1,23 +1,15 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
-import lotr.common.LOTRMod;
-import net.minecraft.block.Block;
 import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.IEntityLivingData;
 import net.minecraft.entity.SharedMonsterAttributes;
-import net.minecraft.entity.ai.EntityAIBase;
 import net.minecraft.init.Items;
 import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
 import net.minecraft.util.DamageSource;
 import net.minecraft.util.MovingObjectPosition;
 import net.minecraft.world.World;
 
-import java.util.List;
-
 import com.zivilon.cinder_loe.CinderLoE;
-import com.zivilon.cinder_loe.entity.FangornAnimal;
 
 public class FangornWildBoar extends FangornAnimal {
     public FangornWildBoar(World world) {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/FangornWolf.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornWolf.java
similarity index 82%
rename from src/main/java/com/zivilon/cinder_loe/entity/FangornWolf.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/FangornWolf.java
index a71243e..efc7e64 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/FangornWolf.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/FangornWolf.java
@@ -1,23 +1,12 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
-import lotr.common.LOTRMod;
-import net.minecraft.block.Block;
 import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.IEntityLivingData;
 import net.minecraft.entity.SharedMonsterAttributes;
-import net.minecraft.entity.ai.EntityAIBase;
 import net.minecraft.init.Items;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
 import net.minecraft.util.DamageSource;
 import net.minecraft.world.World;
 
-import java.util.List;
-
-import com.zivilon.cinder_loe.CinderLoE;
-import com.zivilon.cinder_loe.entity.FangornAnimal;
-
 public class FangornWolf extends FangornAnimal {
     public FangornWolf(World world) {
         super(world);
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/HaradLevy.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/HaradLevy.java
similarity index 98%
rename from src/main/java/com/zivilon/cinder_loe/entity/HaradLevy.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/HaradLevy.java
index f7b004e..154c2cb 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/HaradLevy.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/HaradLevy.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.LOTRMod;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/Limwaith.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/Limwaith.java
similarity index 98%
rename from src/main/java/com/zivilon/cinder_loe/entity/Limwaith.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/Limwaith.java
index 7dfaccc..47e2442 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/Limwaith.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/Limwaith.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.entity.npc.LOTREntityMoredain;
 import lotr.common.entity.npc.LOTRNPCMount;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithBannerBearer.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithBannerBearer.java
similarity index 71%
rename from src/main/java/com/zivilon/cinder_loe/entity/LimwaithBannerBearer.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithBannerBearer.java
index a7645da..5a56611 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithBannerBearer.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithBannerBearer.java
@@ -1,12 +1,12 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.entity.npc.LOTRBannerBearer;
 import lotr.common.item.LOTRItemBanner;
+import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.world.World;
 import net.minecraft.util.MovingObjectPosition;
 import net.minecraft.item.ItemStack;
 
-import com.zivilon.cinder_loe.entity.LimwaithWarrior;
 import com.zivilon.cinder_loe.CinderLoE;
 
 public class LimwaithBannerBearer extends LimwaithWarrior implements LOTRBannerBearer {
@@ -15,10 +15,15 @@ public class LimwaithBannerBearer extends LimwaithWarrior implements LOTRBannerB
     }
 
     public LOTRItemBanner.BannerType getBannerType() {
-        return LOTRItemBanner.BannerType.MOREDAIN;
+        return LOTRItemBanner.BannerType.forID(43);
     }
     @Override
     public ItemStack getPickedResult(MovingObjectPosition target) {
         return new ItemStack(CinderLoE.limwaithBannerBearerSpawnEgg, 1);
     }
+
+    @Override
+    public void attackEntityWithRangedAttack(EntityLivingBase p_82196_1_, float p_82196_2_) {
+
+    }
 }
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithBlowgunner.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithBlowgunner.java
similarity index 87%
rename from src/main/java/com/zivilon/cinder_loe/entity/LimwaithBlowgunner.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithBlowgunner.java
index 3b1f43b..871b0bd 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithBlowgunner.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithBlowgunner.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.LOTRMod;
 import lotr.common.entity.ai.LOTREntityAIRangedAttack;
@@ -7,23 +7,15 @@ import lotr.common.item.LOTRItemBlowgun;
 import lotr.common.item.LOTRItemDart;
 
 import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLiving;
 import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.IEntityLivingData;
 import net.minecraft.entity.SharedMonsterAttributes;
 import net.minecraft.entity.ai.EntityAIBase;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Blocks;
-import net.minecraft.init.Items;
 import net.minecraft.item.ItemStack;
-import net.minecraft.util.MathHelper;
 import net.minecraft.util.MovingObjectPosition;
-import net.minecraft.util.StatCollector;
 import net.minecraft.world.World;
-import net.minecraft.world.biome.BiomeGenBase;
 
 import com.zivilon.cinder_loe.CinderLoE;
-import com.zivilon.cinder_loe.entity.Limwaith;
 
 public class LimwaithBlowgunner extends Limwaith {
     public LimwaithBlowgunner(World world) {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithBoneWarrior.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithBoneWarrior.java
similarity index 97%
rename from src/main/java/com/zivilon/cinder_loe/entity/LimwaithBoneWarrior.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithBoneWarrior.java
index 7d00cfb..acc542a 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithBoneWarrior.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithBoneWarrior.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.LOTRShields;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithChieftain.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithChieftain.java
similarity index 95%
rename from src/main/java/com/zivilon/cinder_loe/entity/LimwaithChieftain.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithChieftain.java
index b3d0823..cca0039 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithChieftain.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithChieftain.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.IEntityLivingData;
@@ -12,7 +12,6 @@ import lotr.common.entity.npc.LOTRUnitTradeable;
 import lotr.common.entity.npc.LOTRUnitTradeEntries;
 import lotr.common.world.spawning.LOTRInvasions;
 
-import com.zivilon.cinder_loe.entity.LimwaithWarrior;
 import com.zivilon.cinder_loe.CinderLoE;
 
 public class LimwaithChieftain extends LimwaithBoneWarrior implements LOTRUnitTradeable  {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithWarrior.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithWarrior.java
similarity index 58%
rename from src/main/java/com/zivilon/cinder_loe/entity/LimwaithWarrior.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithWarrior.java
index 981dfcc..26b703d 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithWarrior.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/LimwaithWarrior.java
@@ -1,45 +1,12 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
-import lotr.common.entity.npc.LOTREntityMoredain;
-import lotr.common.entity.npc.LOTRNPCMount;
-import lotr.common.LOTRAchievement;
-import lotr.common.LOTRFoods;
-import lotr.common.LOTRMod;
 import lotr.common.LOTRShields;
-import lotr.common.entity.ai.LOTREntityAIAttackOnCollide;
-import lotr.common.entity.ai.LOTREntityAIDrink;
-import lotr.common.entity.ai.LOTREntityAIEat;
-import lotr.common.entity.ai.LOTREntityAIFollowHiringPlayer;
-import lotr.common.entity.ai.LOTREntityAIHiredRemainStill;
-import lotr.common.entity.animal.LOTREntityZebra;
-import lotr.common.fac.LOTRFaction;
-import lotr.common.quest.LOTRMiniQuest;
-import lotr.common.quest.LOTRMiniQuestFactory;
-import lotr.common.world.structure.LOTRChestContents;
-import net.minecraft.block.Block;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLiving;
 import net.minecraft.entity.IEntityLivingData;
-import net.minecraft.entity.SharedMonsterAttributes;
-import net.minecraft.entity.ai.EntityAIBase;
-import net.minecraft.entity.ai.EntityAILookIdle;
-import net.minecraft.entity.ai.EntityAIOpenDoor;
-import net.minecraft.entity.ai.EntityAISwimming;
-import net.minecraft.entity.ai.EntityAIWander;
-import net.minecraft.entity.ai.EntityAIWatchClosest;
-import net.minecraft.entity.ai.EntityAIWatchClosest2;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Blocks;
-import net.minecraft.init.Items;
 import net.minecraft.item.ItemStack;
-import net.minecraft.util.MathHelper;
-import net.minecraft.util.StatCollector;
 import net.minecraft.util.MovingObjectPosition;
 import net.minecraft.world.World;
-import net.minecraft.world.biome.BiomeGenBase;
 
 import com.zivilon.cinder_loe.CinderLoE;
-import com.zivilon.cinder_loe.entity.Limwaith;
 
 public class LimwaithWarrior extends Limwaith {
     public LimwaithWarrior(World world) {
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/RedDwarfArbalest.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfArbalest.java
similarity index 97%
rename from src/main/java/com/zivilon/cinder_loe/entity/RedDwarfArbalest.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfArbalest.java
index 775b33b..b86eb2e 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/RedDwarfArbalest.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfArbalest.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.entity.npc.LOTREntityDwarfAxeThrower;
 import lotr.common.LOTRMod;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/RedDwarfBannerBearer.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfBannerBearer.java
similarity index 71%
rename from src/main/java/com/zivilon/cinder_loe/entity/RedDwarfBannerBearer.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfBannerBearer.java
index 7df9cff..6b0023a 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/RedDwarfBannerBearer.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfBannerBearer.java
@@ -1,8 +1,7 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
-import lotr.common.LOTRMod;
 import lotr.common.item.LOTRItemBanner;
-import net.minecraft.entity.IEntityLivingData;
+import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.item.ItemStack;
 import net.minecraft.world.World;
 import lotr.common.entity.npc.LOTRBannerBearer;
@@ -16,10 +15,15 @@ public class RedDwarfBannerBearer extends RedDwarfWarrior implements LOTRBannerB
     }
       
     public LOTRItemBanner.BannerType getBannerType() {
-        return LOTRItemBanner.BannerType.DWARF;
+        return LOTRItemBanner.BannerType.forID(42);
     }
     @Override
     public ItemStack getPickedResult(MovingObjectPosition target) {
         return new ItemStack(CinderLoE.redDwarfBannerBearerSpawnEgg, 1);
     }
+
+    @Override
+    public void attackEntityWithRangedAttack(EntityLivingBase p_82196_1_, float p_82196_2_) {
+
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/RedDwarfCommander.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfCommander.java
similarity index 97%
rename from src/main/java/com/zivilon/cinder_loe/entity/RedDwarfCommander.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfCommander.java
index dfba8a2..0888b6c 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/RedDwarfCommander.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfCommander.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.LOTRMod;
 import net.minecraft.entity.IEntityLivingData;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/RedDwarfWarrior.java b/src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfWarrior.java
similarity index 98%
rename from src/main/java/com/zivilon/cinder_loe/entity/RedDwarfWarrior.java
rename to src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfWarrior.java
index d423e4d..4005ae1 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/RedDwarfWarrior.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/npc/RedDwarfWarrior.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.npc;
 
 import lotr.common.entity.npc.LOTREntityDwarfWarrior;
 import lotr.common.LOTRMod;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/trader/BladorthinSmith.java b/src/main/java/com/zivilon/cinder_loe/entity/trader/BladorthinSmith.java
new file mode 100644
index 0000000..b801263
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/entity/trader/BladorthinSmith.java
@@ -0,0 +1,106 @@
+package com.zivilon.cinder_loe.entity.trader;
+
+import com.zivilon.cinder_loe.CinderLoE;
+import lotr.common.LOTRFoods;
+import lotr.common.LOTRLevelData;
+import lotr.common.LOTRMod;
+import lotr.common.entity.npc.*;
+import lotr.common.entity.npc.LOTRTradeEntries.TradeType;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.IEntityLivingData;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.world.World;
+
+public class BladorthinSmith extends LOTREntityDorwinionElf implements LOTRTradeable.Smith {
+    public static LOTRTradeEntries BLADORTHIN_SMITH_BUY;
+    public static LOTRTradeEntries BLADORTHIN_SMITH_SELL;
+
+    public BladorthinSmith(World world) {
+        super(world);
+    }
+
+    public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) {
+        data = super.onSpawnWithEgg(data);
+        this.npcItemsInv.setMeleeWeapon(new ItemStack(LOTRMod.blacksmithHammer));
+        this.npcItemsInv.setIdleItem(this.npcItemsInv.getMeleeWeapon());
+        return data;
+    }
+
+    public LOTRTradeEntries getBuyPool() {
+        return BLADORTHIN_SMITH_BUY;
+    }
+
+    public LOTRTradeEntries getSellPool() {
+        return BLADORTHIN_SMITH_SELL;
+    }
+
+    public float getAlignmentBonus() {
+        return 2.0F;
+    }
+
+    protected void dropFewItems(boolean flag, int i) {
+        super.dropFewItems(flag, i);
+    }
+
+    public boolean canTradeWith(EntityPlayer entityplayer) {
+        return (LOTRLevelData.getData(entityplayer).getAlignment(getFaction()) >= 100.0F && isFriendlyAndAligned(entityplayer));
+    }
+
+    static {
+        BLADORTHIN_SMITH_BUY = new LOTRTradeEntries(TradeType.BUY,
+            new LOTRTradeEntry[] {
+                new LOTRTradeEntry(new ItemStack(LOTRMod.dorwinionTable), 100),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.swordDorwinionElf), 18),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.daggerDorwinionElf), 14),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.spearBladorthin), 20),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.helmetDorwinionElf), 18),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.bodyDorwinionElf), 25),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.legsDorwinionElf), 22),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.bootsDorwinionElf), 16),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.dorwinionElfBow), 15),
+                new LOTRTradeEntry(new ItemStack(Items.arrow, 4), 3)
+            }
+        );
+
+        BLADORTHIN_SMITH_SELL = new LOTRTradeEntries(TradeType.SELL,
+            new LOTRTradeEntry[] {
+                new LOTRTradeEntry(new ItemStack(Blocks.iron_ore), 5),
+                new LOTRTradeEntry(new ItemStack(Blocks.gold_ore), 15),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.oreCopper), 5),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.oreTin), 5),
+                new LOTRTradeEntry(new ItemStack(Items.iron_ingot), 3),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.elfSteel), 3),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.bronze), 3),
+                new LOTRTradeEntry(new ItemStack(Items.gold_ingot), 15),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.diamond), 25),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.emerald), 15),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.ruby), 12),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.opal), 10),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.amber), 10),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.topaz), 8),
+                new LOTRTradeEntry(new ItemStack(Items.coal, 2, Short.MAX_VALUE), 1),
+                new LOTRTradeEntry(new ItemStack(Items.lava_bucket), 16),
+                new LOTRTradeEntry(new ItemStack(Items.stick, 8), 1),
+                new LOTRTradeEntry(new ItemStack(Items.string, 3), 1),
+                new LOTRTradeEntry(new ItemStack(LOTRMod.mithrilNugget), 35)
+            }
+        );
+    }
+
+    @Override
+    public void onPlayerTrade(EntityPlayer entityplayer, TradeType type, ItemStack itemstack) {
+    }
+
+    @Override
+    public void attackEntityWithRangedAttack(EntityLivingBase p_82196_1_, float p_82196_2_) {
+    }
+    @Override
+    public ItemStack getPickedResult(MovingObjectPosition target) {
+        return null;
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithFishmonger.java b/src/main/java/com/zivilon/cinder_loe/entity/trader/LimwaithFishmonger.java
similarity index 91%
rename from src/main/java/com/zivilon/cinder_loe/entity/LimwaithFishmonger.java
rename to src/main/java/com/zivilon/cinder_loe/entity/trader/LimwaithFishmonger.java
index e1b61d8..4af380c 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithFishmonger.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/trader/LimwaithFishmonger.java
@@ -1,18 +1,15 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.trader;
 
 import com.zivilon.cinder_loe.CinderLoE;
+import com.zivilon.cinder_loe.entity.npc.Limwaith;
 import lotr.common.LOTRLevelData;
 import lotr.common.LOTRMod;
-import lotr.common.entity.npc.LOTREntityDwarf;
 import lotr.common.entity.npc.LOTRTradeEntries;
 import lotr.common.entity.npc.LOTRTradeEntries.TradeType;
-import lotr.common.entity.npc.LOTRTradeEntry;
 import lotr.common.entity.npc.LOTRTradeable;
 import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.IEntityLivingData;
 import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Blocks;
-import net.minecraft.init.Items;
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import net.minecraft.world.World;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithShaman.java b/src/main/java/com/zivilon/cinder_loe/entity/trader/LimwaithShaman.java
similarity index 96%
rename from src/main/java/com/zivilon/cinder_loe/entity/LimwaithShaman.java
rename to src/main/java/com/zivilon/cinder_loe/entity/trader/LimwaithShaman.java
index d5b0b96..17f31bc 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/LimwaithShaman.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/trader/LimwaithShaman.java
@@ -1,15 +1,13 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.trader;
 
 import com.zivilon.cinder_loe.CinderLoE;
-import lotr.common.LOTRFoods;
+import com.zivilon.cinder_loe.entity.npc.Limwaith;
 import lotr.common.LOTRLevelData;
 import lotr.common.LOTRMod;
-import lotr.common.entity.npc.LOTREntityDwarf;
 import lotr.common.entity.npc.LOTRTradeEntries;
 import lotr.common.entity.npc.LOTRTradeEntries.TradeType;
 import lotr.common.entity.npc.LOTRTradeEntry;
 import lotr.common.entity.npc.LOTRTradeable;
-import lotr.common.item.LOTRItemMug;
 import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.IEntityLivingData;
 import net.minecraft.entity.player.EntityPlayer;
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/RedDwarfSmith.java b/src/main/java/com/zivilon/cinder_loe/entity/trader/RedDwarfSmith.java
similarity index 99%
rename from src/main/java/com/zivilon/cinder_loe/entity/RedDwarfSmith.java
rename to src/main/java/com/zivilon/cinder_loe/entity/trader/RedDwarfSmith.java
index a02002d..f7680b0 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/RedDwarfSmith.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/trader/RedDwarfSmith.java
@@ -1,4 +1,4 @@
-package com.zivilon.cinder_loe.entity;
+package com.zivilon.cinder_loe.entity.trader;
 
 import lotr.common.entity.npc.LOTRTradeEntries;
 import lotr.common.entity.npc.LOTRTradeEntries.TradeType;
diff --git a/src/main/java/com/zivilon/cinder_loe/items/RadagastStaff.java b/src/main/java/com/zivilon/cinder_loe/items/RadagastStaff.java
index b13c219..d01d670 100644
--- a/src/main/java/com/zivilon/cinder_loe/items/RadagastStaff.java
+++ b/src/main/java/com/zivilon/cinder_loe/items/RadagastStaff.java
@@ -1,28 +1,22 @@
 package com.zivilon.cinder_loe.items;
 
 
-import cpw.mods.fml.common.network.simpleimpl.IMessage;
-import lotr.common.LOTRCreativeTabs;
-import net.minecraft.creativetab.CreativeTabs;
 import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.passive.EntityAnimal;
 import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.EnumAction;
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import net.minecraft.util.AxisAlignedBB;
 import net.minecraft.world.World;
 
 import com.zivilon.cinder_loe.util.BlockPos;
-import com.zivilon.cinder_loe.items.WizardStaff;
-import com.zivilon.cinder_loe.entity.FangornBear;
-import com.zivilon.cinder_loe.entity.FangornWildBoar;
-import com.zivilon.cinder_loe.entity.FangornAuroch;
-import com.zivilon.cinder_loe.entity.FangornElk;
-import com.zivilon.cinder_loe.entity.FangornAnimal;
+import com.zivilon.cinder_loe.entity.npc.FangornBear;
+import com.zivilon.cinder_loe.entity.npc.FangornWildBoar;
+import com.zivilon.cinder_loe.entity.npc.FangornAuroch;
+import com.zivilon.cinder_loe.entity.npc.FangornElk;
+import com.zivilon.cinder_loe.entity.npc.FangornAnimal;
 
-import lotr.common.item.LOTRMaterial;
 import java.util.Random;
 
 
diff --git a/src/main/java/com/zivilon/cinder_loe/items/UnnamedSpear.java b/src/main/java/com/zivilon/cinder_loe/items/UnnamedSpear.java
new file mode 100644
index 0000000..877da04
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/items/UnnamedSpear.java
@@ -0,0 +1,37 @@
+package com.zivilon.cinder_loe.items;
+
+import lotr.common.item.LOTRItemSpear;
+import lotr.common.item.LOTRItemSword;
+import lotr.common.item.LOTRMaterial;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+
+public class UnnamedSpear extends LOTRItemSpear {
+    private static final  double ARMOR_DAMAGE = 0.025; // Default is 5%
+
+    public UnnamedSpear(LOTRMaterial material) {
+        super(material);
+    }
+
+    @Override
+    public boolean hitEntity(ItemStack itemStack, EntityLivingBase target, EntityLivingBase attacker) {
+        if (target instanceof EntityPlayer) {
+            EntityPlayer player = (EntityPlayer) target;
+            for (int i = 0; i < 4; i++) {
+                ItemStack armorPiece = player.getCurrentArmor(i);
+                if (armorPiece != null) {
+                    int currentDurabilty = armorPiece.getMaxDamage() - armorPiece.getItemDamage();
+                    int damageAmount = (int) (currentDurabilty * ARMOR_DAMAGE);
+
+                    if (damageAmount < 1) {
+                        damageAmount = 1;
+                    }
+
+                    armorPiece.damageItem(damageAmount, player);
+                }
+            }
+        }
+        return true;
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRArmorModels.java b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRArmorModels.java
index ff3ff06..f6c3eca 100644
--- a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRArmorModels.java
+++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRArmorModels.java
@@ -4,7 +4,6 @@ import com.zivilon.cinder_loe.CinderLoE;
 import com.zivilon.cinder_loe.client.model.ModelBreeKettleHelmet;
 import com.zivilon.cinder_loe.client.model.ModelRedDwarfHelmet;
 import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Overwrite;
 import org.spongepowered.asm.mixin.Shadow;
 
 import java.util.HashMap;
@@ -28,8 +27,6 @@ import lotr.client.model.LOTRModelHarnedorChestplate;
 import lotr.client.model.LOTRModelHarnedorHelmet;
 import lotr.client.model.LOTRModelHeadPlate;
 import lotr.client.model.LOTRModelHighElvenHelmet;
-import lotr.client.model.LOTRModelHighElvenHelmet;
-import lotr.client.model.LOTRModelHighElvenHelmet;
 import lotr.client.model.LOTRModelLeatherHat;
 import lotr.client.model.LOTRModelMoredainLionHelmet;
 import lotr.client.model.LOTRModelMorgulHelmet;
@@ -42,7 +39,6 @@ import lotr.client.model.LOTRModelTauredainChieftainHelmet;
 import lotr.client.model.LOTRModelTauredainGoldHelmet;
 import lotr.client.model.LOTRModelUmbarHelmet;
 import lotr.client.model.LOTRModelUrukHelmet;
-import lotr.client.model.LOTRModelUrukHelmet;
 import lotr.client.model.LOTRModelWingedHelmet;
 import lotr.common.LOTRMod;
 
diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRContainerAnvil.java b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRContainerAnvil.java
index db8a133..5f84c47 100644
--- a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRContainerAnvil.java
+++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRContainerAnvil.java
@@ -55,7 +55,7 @@ public class MixinLOTRContainerAnvil {
             return (materialItem.getItem() == CinderLoE.redDwarfSteel);
         if (material == CinderLoE.MATERIAL_ASH.toToolMaterial())
             return (materialItem.getItem() == CinderLoE.ingotAsh);
-        if (material == CinderLoE.MATERIAL_LIMWAITH_BONE.toToolMaterial())
+        if (material == CinderLoE.MATERIAL_BONEMOLD.toToolMaterial())
             return (materialItem.getItem() == CinderLoE.bonemold);
         if (material == CinderLoE.EVENT.toToolMaterial())
             return LOTRMod.isOreNameEqual(materialItem, "ice");
@@ -73,6 +73,8 @@ public class MixinLOTRContainerAnvil {
                 return (materialItem.getItem() == Items.iron_ingot);
             if (armorMaterial == CinderLoE.MATERIAL_BATTLENUN.toArmorMaterial())
                 return (materialItem.getItem() == Items.iron_ingot);
+            if (armorMaterial == CinderLoE.MATERIAL_BONEMOLD.toArmorMaterial())
+                return (materialItem.getItem() == CinderLoE.bonemold);
         }
 
         return false;
diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRTileEntityDwarvenForge.java b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRTileEntityDwarvenForge.java
index 4631a3e..1b86f7f 100644
--- a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRTileEntityDwarvenForge.java
+++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRTileEntityDwarvenForge.java
@@ -1,5 +1,6 @@
 package com.zivilon.cinder_loe.mixins;
 
+import net.minecraft.init.Blocks;
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import net.minecraft.init.Items;
@@ -18,17 +19,18 @@ import java.lang.reflect.Field;
 
 import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.LOTRMod;
+import org.spongepowered.asm.mixin.Unique;
 
 @Mixin(LOTRTileEntityDwarvenForge.class)
 public abstract class MixinLOTRTileEntityDwarvenForge {
     protected boolean isCopper(ItemStack itemstack) {
         return (LOTRMod.isOreNameEqual(itemstack, "oreCopper") || LOTRMod.isOreNameEqual(itemstack, "ingotCopper"));
     }
-  
+
     protected boolean isTin(ItemStack itemstack) {
         return (LOTRMod.isOreNameEqual(itemstack, "oreTin") || LOTRMod.isOreNameEqual(itemstack, "ingotTin"));
     }
-  
+
     protected boolean isIron(ItemStack itemstack) {
         return (LOTRMod.isOreNameEqual(itemstack, "oreIron") || LOTRMod.isOreNameEqual(itemstack, "ingotIron"));
     }
@@ -36,6 +38,15 @@ public abstract class MixinLOTRTileEntityDwarvenForge {
     protected boolean isCoal(ItemStack itemstack) {
         return (itemstack.getItem() == Items.coal);
     }
+    @Unique
+    protected boolean cinderLoE_Git$isMithril(ItemStack itemstack) {
+        return itemstack.getItem() == Item.getItemFromBlock(LOTRMod.oreMithril) || itemstack.getItem() == LOTRMod.mithril;
+    }
+
+    @Unique
+    protected boolean cinderLoE_Git$isCoalBlock(ItemStack itemstack) {
+        return itemstack.getItem() == Item.getItemFromBlock(Blocks.coal_block);
+    }
 
     protected boolean isGoldNugget(ItemStack itemstack) {
         return (itemstack.getItem() == Items.gold_nugget);
@@ -44,16 +55,17 @@ public abstract class MixinLOTRTileEntityDwarvenForge {
     @Overwrite(remap = false)
     protected ItemStack getAlloySmeltingResult(ItemStack itemstack, ItemStack alloyItem) {
         if (isIron(itemstack) && isCoal(alloyItem))
-            return new ItemStack(LOTRMod.dwarfSteel); 
+            return new ItemStack(LOTRMod.dwarfSteel);
         if (isIron(itemstack) && alloyItem.getItem() == LOTRMod.quenditeCrystal)
-            return new ItemStack(LOTRMod.galvorn); 
+            return new ItemStack(LOTRMod.galvorn);
         if (isIron(itemstack) && alloyItem.getItem() == Item.getItemFromBlock(LOTRMod.rock) && alloyItem.getItemDamage() == 3)
-            return new ItemStack(LOTRMod.blueDwarfSteel); 
+            return new ItemStack(LOTRMod.blueDwarfSteel);
         if (isCopper(itemstack) && alloyItem.getItem() == Item.getItemById(371))
-            return new ItemStack(CinderLoE.redDwarfSteel); 
+            return new ItemStack(CinderLoE.redDwarfSteel);
         if ((isCopper(itemstack) && isTin(alloyItem)) || (isTin(itemstack) && isCopper(alloyItem)))
-            return new ItemStack(LOTRMod.bronze, 2); 
+            return new ItemStack(LOTRMod.bronze, 2);
+        if (this.cinderLoE_Git$isMithril(itemstack) && this.cinderLoE_Git$isCoalBlock(alloyItem))
+            return new ItemStack(CinderLoE.ingotAsh, 1);
         return null;
     }
 }
-
diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRTileEntityForgeBase.java b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRTileEntityForgeBase.java
index a337b4e..458892e 100644
--- a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRTileEntityForgeBase.java
+++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRTileEntityForgeBase.java
@@ -4,6 +4,7 @@ import com.zivilon.cinder_loe.CinderLoE;
 import lotr.common.LOTRMod;
 import lotr.common.tileentity.LOTRTileEntityAlloyForgeBase;
 import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import org.spongepowered.asm.mixin.Mixin;
@@ -21,6 +22,15 @@ public abstract class MixinLOTRTileEntityForgeBase {
     protected boolean cinderLoE_Git$isCoalBlock(ItemStack itemstack) {
         return itemstack.getItem() == Item.getItemFromBlock(Blocks.coal_block);
     }
+    protected boolean isCopper(ItemStack itemstack) {
+        return (LOTRMod.isOreNameEqual(itemstack, "oreCopper") || LOTRMod.isOreNameEqual(itemstack, "ingotCopper"));
+    }
+    protected boolean isTin(ItemStack itemstack) {
+        return (LOTRMod.isOreNameEqual(itemstack, "oreTin") || LOTRMod.isOreNameEqual(itemstack, "ingotTin"));
+    }
+    protected boolean isGoldNugget(ItemStack itemstack) {
+        return (itemstack.getItem() == Items.gold_nugget);
+    }
 
     /**
      * @author Keylime
@@ -30,7 +40,11 @@ public abstract class MixinLOTRTileEntityForgeBase {
     protected ItemStack getAlloySmeltingResult(ItemStack itemstack, ItemStack alloyItem) {
         if (this.cinderLoE_Git$isMithril(itemstack) && this.cinderLoE_Git$isCoalBlock(alloyItem))
             return new ItemStack(CinderLoE.ingotAsh, 1);
+        if ((isCopper(itemstack) && isTin(alloyItem)) || (isTin(itemstack) && isCopper(alloyItem)))
+            return new ItemStack(LOTRMod.bronze, 2);
         return null;
     }
 }
 
+
+
diff --git a/src/main/java/com/zivilon/cinder_loe/recipes.java b/src/main/java/com/zivilon/cinder_loe/recipes.java
index 63dcd2e..18ae65a 100644
--- a/src/main/java/com/zivilon/cinder_loe/recipes.java
+++ b/src/main/java/com/zivilon/cinder_loe/recipes.java
@@ -141,6 +141,8 @@ public class recipes {
         GameRegistry.addShapelessRecipe(new ItemStack(CinderLoE.redDwarfSteel, 9), new Object[] { new ItemStack(CinderLoE.blockRedDwarfSteel) });
         GameRegistry.addRecipe(new ItemStack(CinderLoE.blockRedDwarfSteel, 1), new Object[] { "XXX", "XXX", "XXX",
             Character.valueOf('X'), CinderLoE.redDwarfSteel });
+        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(LOTRMod.banner, 1, 42), new Object[] { " YR", " X ", " Z ",
+                Character.valueOf('X'), "stickWood", Character.valueOf('Y'), Blocks.wool, Character.valueOf('Z'), "plankWood", Character.valueOf('R'), "dyeRed"}));
         GameRegistry.addRecipe(new LOTRRecipePoisonWeapon(CinderLoE.daggerRedDwarf, CinderLoE.daggerRedDwarfPoisoned));
     }
 
@@ -185,6 +187,8 @@ public class recipes {
                 Character.valueOf('X'), "bone", Character.valueOf('Y'), CinderLoE.bonemold}));
         LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bootsboneLimwaith), new Object[] { "Y Y", "X X",
                 Character.valueOf('X'), "bone", Character.valueOf('Y'), CinderLoE.bonemold}));
+        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(LOTRMod.banner, 1, 43), new Object[] { " YR", " X ", " Z ",
+                Character.valueOf('X'), "stickWood", Character.valueOf('Y'), Blocks.wool, Character.valueOf('Z'), "plankWood", Character.valueOf('R'), LOTRMod.reeds}));
     }
 
     public static void registerBreeRecipes() {
diff --git a/src/main/resources/assets/cinder_loe/lang/en_US.lang b/src/main/resources/assets/cinder_loe/lang/en_US.lang
index 98eeaa9..e84478a 100644
--- a/src/main/resources/assets/cinder_loe/lang/en_US.lang
+++ b/src/main/resources/assets/cinder_loe/lang/en_US.lang
@@ -19,6 +19,7 @@ tile.lotr:cobbleDrystone.name=Cobbled Drystone
 tile.lotr:plaster.name=Plaster
 tile.lotr:voidblock.name=Void
 
+item.lotr:spearUnnamed.name=Drannach Oriour
 item.lotr:frostblade.name=Frostblade
 item.lotr:whip.name=Whip
 item.lotr:daggerVoid.name=Voidal Dagger
@@ -93,6 +94,10 @@ item.lotr:pikeAsh.name=Ash-Forged Pike
 item.lotr:spearAsh.name=Ash-Forged Spear
 
 item.lotr:banner.redDwarf.name=Banner of the Orocani
+item.lotr:banner.limwaith.name=Banner of the Limwaith
+item.lotr:banner.red.name=Red Flag
+item.lotr:banner.blue.name=Blue Flag
+item.lotr:banner.green.name=Green Flag
 
 item.spawn_egg_fangornauroch.name=Spawn Fangorn Auroch
 item.spawn_egg_fangornbear.name=Spawn Fangorn Bear
@@ -127,6 +132,7 @@ item.spawn_egg_limwaithshaman.name=Spawn Limwaith Shaman
 item.spawn_egg_limwaithfishmonger.name=Spawn Limwaith Fishmonger
 item.spawn_egg_limwaithbonewarrior.name=Spawn Limwaith Warrior
 
+entity.cinder_loe.DarkSpider.name=Dark Spider
 entity.cinder_loe.CorruptMan.name=Corrupt Man
 entity.cinder_loe.CorruptDwarf.name=Corrupt Dwarf
 entity.cinder_loe.CorruptElf.name=Corrupt Elf
@@ -134,6 +140,7 @@ entity.cinder_loe.CorruptEnt.name=Corrupt Ent
 entity.cinder_loe.CorruptHobit.name=Corrupt Hobbit
 entity.cinder_loe.CorruptOrc.name=Corrupt Orc
 
+entity.cinder_loe.BladorthinSmith.name=Bladorthin Smith
 
 entity.cinder_loe.RedDwarfSmith.name=Red Dwarf Smith
 entity.cinder_loe.RedDwarfWarrior.name=Red Dwarf Warrior
diff --git a/src/main/resources/assets/cinder_loe/mob/spider/spider_dark.png b/src/main/resources/assets/cinder_loe/mob/spider/spider_dark.png
new file mode 100644
index 0000000..4f70135
Binary files /dev/null and b/src/main/resources/assets/cinder_loe/mob/spider/spider_dark.png differ
diff --git a/src/main/resources/assets/cinder_loe/speech/corrupt/hostile.txt b/src/main/resources/assets/cinder_loe/speech/corruptSpeak/all/hostile.txt
similarity index 100%
rename from src/main/resources/assets/cinder_loe/speech/corrupt/hostile.txt
rename to src/main/resources/assets/cinder_loe/speech/corruptSpeak/all/hostile.txt
diff --git a/src/main/resources/assets/cinder_loe/speech/corrupt/neutral.txt b/src/main/resources/assets/cinder_loe/speech/corruptSpeak/all/neutral.txt
similarity index 100%
rename from src/main/resources/assets/cinder_loe/speech/corrupt/neutral.txt
rename to src/main/resources/assets/cinder_loe/speech/corruptSpeak/all/neutral.txt
diff --git a/src/main/resources/assets/lotr/item/banner/banner_blue.png b/src/main/resources/assets/lotr/item/banner/banner_blue.png
new file mode 100644
index 0000000..bf0666e
Binary files /dev/null and b/src/main/resources/assets/lotr/item/banner/banner_blue.png differ
diff --git a/src/main/resources/assets/lotr/item/banner/banner_green.png b/src/main/resources/assets/lotr/item/banner/banner_green.png
new file mode 100644
index 0000000..bd2366a
Binary files /dev/null and b/src/main/resources/assets/lotr/item/banner/banner_green.png differ
diff --git a/src/main/resources/assets/lotr/item/banner/banner_limwaith.png b/src/main/resources/assets/lotr/item/banner/banner_limwaith.png
new file mode 100644
index 0000000..ca0dbea
Binary files /dev/null and b/src/main/resources/assets/lotr/item/banner/banner_limwaith.png differ
diff --git a/src/main/resources/assets/lotr/item/banner/banner_red.png b/src/main/resources/assets/lotr/item/banner/banner_red.png
new file mode 100644
index 0000000..d91b42f
Binary files /dev/null and b/src/main/resources/assets/lotr/item/banner/banner_red.png differ
diff --git a/src/main/resources/assets/lotr/item/verticalweaponRack.png b/src/main/resources/assets/lotr/item/verticalweaponRack.png
new file mode 100644
index 0000000..c7e0de7
Binary files /dev/null and b/src/main/resources/assets/lotr/item/verticalweaponRack.png differ
diff --git a/src/main/resources/assets/lotr/textures/items/banner_limwaith.png b/src/main/resources/assets/lotr/textures/items/banner_limwaith.png
new file mode 100644
index 0000000..11bec22
Binary files /dev/null and b/src/main/resources/assets/lotr/textures/items/banner_limwaith.png differ
diff --git a/src/main/resources/assets/lotr/textures/items/large/spearUnnamed.png b/src/main/resources/assets/lotr/textures/items/large/spearUnnamed.png
new file mode 100644
index 0000000..060c6ed
Binary files /dev/null and b/src/main/resources/assets/lotr/textures/items/large/spearUnnamed.png differ
diff --git a/src/main/resources/assets/lotr/textures/items/large/spearUnnamed.png.mcmeta b/src/main/resources/assets/lotr/textures/items/large/spearUnnamed.png.mcmeta
new file mode 100644
index 0000000..56f834d
--- /dev/null
+++ b/src/main/resources/assets/lotr/textures/items/large/spearUnnamed.png.mcmeta
@@ -0,0 +1,30 @@
+{
+  "animation": {
+    "frames": [
+      7,
+      7,
+      7,
+      6,
+      6,
+      6,
+      5,
+      5,
+      5,
+      4,
+      4,
+      4,
+      3,
+      3,
+      3,
+      2,
+      2,
+      2,
+      1,
+      1,
+      1,
+      0,
+      0,
+      0
+    ]
+  }
+}
diff --git a/src/main/resources/assets/lotr/textures/items/spearUnnamed.png b/src/main/resources/assets/lotr/textures/items/spearUnnamed.png
new file mode 100644
index 0000000..90943e9
Binary files /dev/null and b/src/main/resources/assets/lotr/textures/items/spearUnnamed.png differ
