Index: binaries/data/mods/public/gui/session/selection.js
===================================================================
--- binaries/data/mods/public/gui/session/selection.js	(revision 9303)
+++ binaries/data/mods/public/gui/session/selection.js	(working copy)
@@ -193,6 +193,7 @@
 // Update the selection to take care of changes (like units that have been killed)
 EntitySelection.prototype.update = function()
 {
+	this.checkRenamedEntities();
 	for each (var ent in this.selected)
 	{
 		var entState = GetEntityState(ent);
@@ -221,6 +222,30 @@
 	}
 };
 
+/**
+ * Update selection if some selected entities was renamed 
+ * (in case of unit promotion or finishing building structure)
+ */
+EntitySelection.prototype.checkRenamedEntities = function()
+{
+	var renamedEntities = Engine.GuiInterfaceCall("GetRenamedEntities", true);
+	if (renamedEntities.length > 0)
+	{
+		var removeFromSelectionList = [];
+		var addToSelectionList = [];
+		for each (var renamedEntity in renamedEntities)
+		{
+			if (this.selected[renamedEntity.entity])
+			{
+				removeFromSelectionList.push(renamedEntity.entity);
+				addToSelectionList.push(renamedEntity.newentity);
+			}
+		}
+		this.removeList(removeFromSelectionList);
+		this.addList(addToSelectionList);
+	}
+}
+
 EntitySelection.prototype.addList = function(ents)
 {
 	var selectionSize = this.toList().length;
Index: binaries/data/mods/public/gui/session/session.xml
===================================================================
--- binaries/data/mods/public/gui/session/session.xml	(revision 9303)
+++ binaries/data/mods/public/gui/session/session.xml	(working copy)
@@ -522,6 +522,13 @@
 						<object type="image" sprite="resourceForeground" ghost="true" name="resourceBar"/>
 						<object type="image" sprite="statsBarShader" ghost="true"/>
 					</object>
+					
+					<!-- Experience bar -->
+					<object size="46 0 58 100%" type="image" name="experience" tooltip="XP" tooltip_style="snToolTip">
+						<object type="image" sprite="experienceBackground" ghost="true"/>
+						<object type="image" sprite="experienceForeground" ghost="true" name="experienceBar"/>
+						<object type="image" sprite="statsBarShader" ghost="true"/>
+					</object>
 				</object>
 				
 				<!-- Specific Name -->
Index: binaries/data/mods/public/gui/session/selection_details.js
===================================================================
--- binaries/data/mods/public/gui/session/selection_details.js	(revision 9303)
+++ binaries/data/mods/public/gui/session/selection_details.js	(working copy)
@@ -65,6 +65,24 @@
 	{
 		getGUIObjectByName("health").hidden = true;
 	}
+	
+	// Experience
+	if (entState.promotion)
+	{
+		var experienceBar = getGUIObjectByName("experienceBar");
+		var experienceSize = experienceBar.size;
+		experienceSize.rtop = 100 - 100 * Math.max(0, Math.min(1, 1.0 * entState.promotion.curr / entState.promotion.req));
+		experienceBar.size = experienceSize;
+ 
+		var experience = "[font=\"serif-bold-13\"]XP [/font]" + entState.promotion.curr;
+		if (entState.promotion.curr < entState.promotion.req) experience += "/" + entState.promotion.req;
+		getGUIObjectByName("experience").tooltip = experience;
+		getGUIObjectByName("experience").hidden = false;
+	}
+	else
+	{
+		getGUIObjectByName("experience").hidden = true;
+	}
 
 	// Resource stats
 	var resources = "";
Index: binaries/data/mods/public/gui/session/sprites.xml
===================================================================
--- binaries/data/mods/public/gui/session/sprites.xml	(revision 9303)
+++ binaries/data/mods/public/gui/session/sprites.xml	(working copy)
@@ -714,7 +714,15 @@
 	<sprite name="staminaForeground">
 		<image backcolor="blue"/>
 	</sprite>
+	
+	<sprite name="experienceBackground">
+		<image backcolor="darkgray"/>
+	</sprite>
 
+	<sprite name="experienceForeground">
+		<image backcolor="white"/>
+	</sprite>
+
 	<!-- ================================  ================================ -->
 	<!-- Chat -->
 	<!-- ================================  ================================ -->
Index: binaries/data/mods/public/simulation/components/GuiInterface.js
===================================================================
--- binaries/data/mods/public/simulation/components/GuiInterface.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/GuiInterface.js	(working copy)
@@ -20,6 +20,7 @@
 	this.placementEntity = undefined; // = undefined or [templateName, entityID]
 	this.rallyPoints = undefined;
 	this.notifications = [];
+	this.renamedEntities = [];
 };
 
 /*
@@ -91,6 +92,13 @@
 	return ret;
 };
 
+GuiInterface.prototype.GetRenamedEntities = function(player, clearList)
+{
+	var result = this.renamedEntities.slice();
+	if (clearList) this.renamedEntities = [];
+	return result;	
+};
+
 GuiInterface.prototype.GetEntityState = function(player, ent)
 {
 	var cmpTempMan = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
@@ -210,6 +218,15 @@
 		};
 	}
 	
+	var cmpPromotion = Engine.QueryInterface(ent, IID_Promotion);
+	if (cmpPromotion)
+	{
+		ret.promotion = {
+			"curr": cmpPromotion.GetCurrentXp(),
+			"req": cmpPromotion.GetRequiredXp()
+		};
+	}
+	
 	var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
 	ret.visibility = cmpRangeManager.GetLosVisibility(ent, player);
 
@@ -501,6 +518,11 @@
 	cmpRangeManager.SetDebugOverlay(enabled);
 };
 
+GuiInterface.prototype.OnGlobalEntityRenamed = function(msg)
+{
+	this.renamedEntities.push(msg);
+}
+
 // List the GuiInterface functions that can be safely called by GUI scripts.
 // (GUI scripts are non-deterministic and untrusted, so these functions must be
 // appropriately careful. They are called with a first argument "player", which is
@@ -510,6 +532,7 @@
 	
 	"GetSimulationState": 1,
 	"GetExtendedSimulationState": 1,
+	"GetRenamedEntities": 1,
 	"GetEntityState": 1,
 	"GetTemplateData": 1,
 	"GetNextNotification": 1,
Index: binaries/data/mods/public/simulation/components/Foundation.js
===================================================================
--- binaries/data/mods/public/simulation/components/Foundation.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/Foundation.js	(working copy)
@@ -196,6 +196,8 @@
 		Engine.PostMessage(this.entity, MT_ConstructionFinished,
 			{ "entity": this.entity, "newentity": building });
 
+		Engine.BroadcastMessage(MT_EntityRenamed, { entity: this.entity, newentity: building });
+			
 		Engine.DestroyEntity(this.entity);
 	}
 };
Index: binaries/data/mods/public/simulation/components/ResourceGatherer.js
===================================================================
--- binaries/data/mods/public/simulation/components/ResourceGatherer.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/ResourceGatherer.js	(working copy)
@@ -86,6 +86,18 @@
 };
 
 /**
+ * Used to instantly give resources to unit
+ * @param resources The same structure as returned form GetCarryingStatus
+ */
+ResourceGatherer.prototype.GiveResources = function(resources)
+{
+	for each (var resource in resources)
+	{
+		this.carrying[resource.type] = +(resource.amount);
+	}	
+};
+
+/**
  * Returns the generic type of one particular resource this unit is
  * currently carrying, or undefined if none.
  */
Index: binaries/data/mods/public/simulation/components/Loot.js
===================================================================
--- binaries/data/mods/public/simulation/components/Loot.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/Loot.js	(working copy)
@@ -17,10 +17,21 @@
 		"<element name='metal'><data type='nonNegativeInteger'/></element>" +
 	"</optional>";
 
-/*
- * TODO: this all needs to be designed and implemented
- */
-
 Loot.prototype.Serialize = null; // we have no dynamic state to save
 
+Loot.prototype.GetXp = function()
+{
+	return this.template.xp;
+};
+ 
+Loot.prototype.GetResources = function()
+{
+	return {
+		"food": +(this.template.food || 0),	
+		"wood": +(this.template.wood || 0),	
+		"metal": +(this.template.metal || 0),	
+		"stone": +(this.template.stone || 0)
+	};
+};
+
 Engine.RegisterComponentType(IID_Loot, "Loot", Loot);
Index: binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
===================================================================
--- binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js	(working copy)
@@ -5,6 +5,7 @@
 Engine.LoadComponentScript("interfaces/GarrisonHolder.js");
 Engine.LoadComponentScript("interfaces/Health.js");
 Engine.LoadComponentScript("interfaces/Identity.js");
+Engine.LoadComponentScript("interfaces/Promotion.js");
 Engine.LoadComponentScript("interfaces/RallyPoint.js");
 Engine.LoadComponentScript("interfaces/ResourceDropsite.js");
 Engine.LoadComponentScript("interfaces/ResourceGatherer.js");
Index: binaries/data/mods/public/simulation/components/Identity.js
===================================================================
--- binaries/data/mods/public/simulation/components/Identity.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/Identity.js	(working copy)
@@ -115,9 +115,7 @@
 
 Identity.prototype.GetRank = function()
 {
-	if (this.template.Rank)
-		return this.template.Rank;
-	return "";
+	return (this.template.Rank || "");
 };
 
 Identity.prototype.GetClassesList = function()
Index: binaries/data/mods/public/simulation/components/UnitAI.js
===================================================================
--- binaries/data/mods/public/simulation/components/UnitAI.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/UnitAI.js	(working copy)
@@ -110,6 +110,10 @@
 		// ignore
 	},
 
+	"EntityRenamed": function(msg) {
+		// ignore
+	},
+
 	// Formation handlers:
 
 	"FormationLeave": function(msg) {
@@ -305,6 +309,10 @@
 			this.SetNextState("INDIVIDUAL.GARRISON.GARRISONED");
 		}
 	},
+	
+	"Order.Cheering": function(msg) {
+		this.SetNextState("INDIVIDUAL.CHEERING");
+	},
 
 	// States for the special entity representing a group of units moving in formation:
 	"FORMATIONCONTROLLER": {
@@ -412,7 +420,7 @@
 				error("Animal got moved into INDIVIDUAL.* state");
 		},
 
-		"Attacked": function(msg) {
+		"Attacked": function(msg) {		
 			if (this.GetStance().targetAttackers)
 			{
 				this.RespondToTargetedEntities([msg.data.attacker]);
@@ -533,6 +541,11 @@
 		},
 
 		"COMBAT": {
+			"EntityRenamed": function(msg) {
+				if (this.order.data.target == msg.entity)
+					this.order.data.target = msg.newentity;	
+			},
+
 			"Attacked": function(msg) {
 				// If we're already in combat mode, ignore anyone else
 				// who's attacking us
@@ -980,6 +993,26 @@
 			},
 		},
 
+		"CHEERING": {
+			"enter": function() {
+				// Unit is invulnerable while cheering
+				var cmpDamageReceiver = Engine.QueryInterface(this.entity, IID_DamageReceiver);
+				cmpDamageReceiver.SetInvulnerability(true); 
+				this.SelectAnimation("promotion");
+				this.StartTimer(4000, 4000);
+				return false;
+			},
+			
+			"leave": function() {	
+				this.StopTimer();
+				var cmpDamageReceiver = Engine.QueryInterface(this.entity, IID_DamageReceiver);
+				cmpDamageReceiver.SetInvulnerability(false); 
+			},
+			
+			"Timer": function(msg) {
+				this.FinishOrder();
+			},
+		},
 	},
 
 	"ANIMAL": {
@@ -1322,18 +1355,49 @@
 UnitAI.prototype.PushOrderFront = function(type, data)
 {
 	var order = { "type": type, "data": data };
-	this.orderQueue.unshift(order);
-
-	this.order = order;
-	UnitFsm.ProcessMessage(this, {"type": "Order."+this.order.type, "data": this.order.data});
+	// If current order is cheering then add new order after it 
+	if (this.order && this.order.type == "Cheering")
+	{
+		var cheeringOrder = this.orderQueue.shift();
+		this.orderQueue.unshift(cheeringOrder, order);	
+	}
+	else
+	{
+		this.orderQueue.unshift(order);
+		this.order = order;
+		UnitFsm.ProcessMessage(this, {"type": "Order."+this.order.type, "data": this.order.data});
+	}
 };
 
 UnitAI.prototype.ReplaceOrder = function(type, data)
 {
-	this.orderQueue = [];
-	this.PushOrder(type, data);
+	// If current order is cheering then add new order after it 
+	if (this.order && this.order.type == "Cheering")
+	{
+		var order = { "type": type, "data": data };
+		var cheeringOrder = this.orderQueue.shift();
+		this.orderQueue = [ cheeringOrder, order ];
+	}
+	else
+	{
+		this.orderQueue = [];
+		this.PushOrder(type, data);
+	}
 };
 
+UnitAI.prototype.GetOrders = function()
+{
+	return this.orderQueue.slice();
+}
+
+UnitAI.prototype.AddOrders = function(orders)
+{
+	for each (var order in orders)
+	{
+		this.PushOrder(order.type, order.data);
+	}
+}
+
 UnitAI.prototype.TimerHandler = function(data, lateness)
 {
 	// Reset the timer
@@ -1401,6 +1465,11 @@
 	UnitFsm.ProcessMessage(this, {"type": "ConstructionFinished", "data": msg});
 };
 
+UnitAI.prototype.OnGlobalEntityRenamed = function(msg)
+{
+	UnitFsm.ProcessMessage(this, {"type": "EntityRenamed", "entity": msg.entity, "newentity": msg.newentity});	
+}
+
 UnitAI.prototype.OnAttacked = function(msg)
 {
 	UnitFsm.ProcessMessage(this, {"type": "Attacked", "data": msg});
@@ -1907,6 +1976,11 @@
 	this.AddOrder("Repair", { "target": target, "autocontinue": autocontinue }, queued);
 };
 
+UnitAI.prototype.Cheer = function()
+{
+	this.AddOrder("Cheering", null, false);
+};
+
 UnitAI.prototype.SetStance = function(stance)
 {
 	if (g_Stances[stance])
Index: binaries/data/mods/public/simulation/components/Looter.js
===================================================================
--- binaries/data/mods/public/simulation/components/Looter.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/Looter.js	(working copy)
@@ -3,9 +3,23 @@
 Looter.prototype.Schema =
 	"<empty/>";
 	
-/*
- * TODO: this all needs to be designed and implemented
+/**
+ * Try to collect loot from target entity
  */
- 
+Looter.prototype.Collect = function(targetEntity)
+{
+	var cmpLoot = Engine.QueryInterface(targetEntity, IID_Loot);
+	if (!cmpLoot) return;
+	
+	var xp = cmpLoot.GetXp();
+	if (xp > 0) 
+	{
+		var cmpPromotion = Engine.QueryInterface(this.entity, IID_Promotion);
+		if (cmpPromotion) cmpPromotion.IncreaseXp(xp);
+	}
+	var cmpPlayer = QueryOwnerInterface(this.entity, IID_Player);
+	cmpPlayer.AddResources(cmpLoot.GetResources());
+}
+
 Engine.RegisterComponentType(IID_Looter, "Looter", Looter);
 
Index: binaries/data/mods/public/simulation/components/Armour.js
===================================================================
--- binaries/data/mods/public/simulation/components/Armour.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/Armour.js	(working copy)
@@ -19,12 +19,19 @@
 
 Armour.prototype.Init = function()
 {
+	this.invulnerable = false;
 };
 
 Armour.prototype.Serialize = null; // we have no dynamic state to save
 
+Armour.prototype.SetInvulnerability = function(invulnerability)
+{
+	this.invulnerable = invulnerability;
+};
+
 Armour.prototype.TakeDamage = function(hack, pierce, crush)
 {
+	if (this.invulnerable) return { "killed": false };
 	// Adjust damage values based on armour
 	var adjHack = Math.max(0, hack - this.template.Hack);
 	var adjPierce = Math.max(0, pierce - this.template.Pierce);
Index: binaries/data/mods/public/simulation/components/Attack.js
===================================================================
--- binaries/data/mods/public/simulation/components/Attack.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/Attack.js	(working copy)
@@ -211,7 +211,6 @@
 
 /**
  * Called when some units kills something (another unit, building, animal etc)
- * update player statistics only for now
  */
 Attack.prototype.TargetKilled = function(killerEntity, targetEntity)
 {
@@ -219,6 +218,13 @@
 	if (cmpKillerPlayerStatisticsTracker) cmpKillerPlayerStatisticsTracker.KilledEntity(targetEntity);
 	var cmpTargetPlayerStatisticsTracker = QueryOwnerInterface(targetEntity, IID_StatisticsTracker);
 	if (cmpTargetPlayerStatisticsTracker) cmpTargetPlayerStatisticsTracker.LostEntity(targetEntity);
+
+	// if unit can collect loot, lets try to collect it
+	var cmpLooter = Engine.QueryInterface(killerEntity, IID_Looter);
+	if (cmpLooter)
+	{
+		cmpLooter.Collect(targetEntity);
+	}
 }
 
 /**
Index: binaries/data/mods/public/simulation/components/Promotion.js
===================================================================
--- binaries/data/mods/public/simulation/components/Promotion.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/Promotion.js	(working copy)
@@ -4,12 +4,95 @@
 	"<element name='Entity'>" +
 		"<text/>" +
 	"</element>" +
-	"<element name='Req'>" +
+	"<element name='RequiredXp'>" +
 		"<data type='positiveInteger'/>" +
 	"</element>";
 
-/*
- * TODO: this all needs to be designed and implemented
- */
+Promotion.prototype.Init = function()
+{
+	this.currentXp = 0;
+}
+	
+Promotion.prototype.GetRequiredXp = function()
+{
+	return +(this.template.RequiredXp);
+};
 
+Promotion.prototype.GetCurrentXp = function()
+{
+	return +(this.currentXp || 0);
+};
+
+Promotion.prototype.GetPromotedTemplateName = function()
+{
+	return this.template.Entity;
+}
+
+Promotion.prototype.Promote = function(promotedTemplateName)
+{
+	// Create promoted unit entity
+	var promotedUnitEntity = Engine.AddEntity(promotedTemplateName);
+		
+	// Copy parameters from current entity to promoted one
+	var cmpCurrentUnitPosition = Engine.QueryInterface(this.entity, IID_Position);
+	var cmpPromotedUnitPosition = Engine.QueryInterface(promotedUnitEntity, IID_Position);
+	if (cmpCurrentUnitPosition.IsInWorld())
+	{	
+		var pos = cmpCurrentUnitPosition.GetPosition2D();
+		cmpPromotedUnitPosition.JumpTo(pos.x, pos.y);
+	}
+	var rot = cmpCurrentUnitPosition.GetRotation();
+	cmpPromotedUnitPosition.SetYRotation(rot.y);
+	cmpPromotedUnitPosition.SetXZRotation(rot.x, rot.z);
+	var heightOffset = cmpCurrentUnitPosition.GetHeightOffset();
+	cmpPromotedUnitPosition.SetHeightOffset(heightOffset);
+	
+	var cmpCurrentUnitOwnership = Engine.QueryInterface(this.entity, IID_Ownership);
+	var cmpPromotedUnitOwnership = Engine.QueryInterface(promotedUnitEntity, IID_Ownership);
+	cmpPromotedUnitOwnership.SetOwner(cmpCurrentUnitOwnership.GetOwner());
+
+	var cmpPromotedUnitPromotion = Engine.QueryInterface(promotedUnitEntity, IID_Promotion);
+	if (cmpPromotedUnitPromotion)
+		cmpPromotedUnitPromotion.IncreaseXp(this.currentXp);
+		
+	var cmpCurrentUnitResourceGatherer = Engine.QueryInterface(this.entity, IID_ResourceGatherer);
+	var cmpPromotedUnitResourceGatherer = Engine.QueryInterface(promotedUnitEntity, IID_ResourceGatherer);
+	if (cmpCurrentUnitResourceGatherer && cmpPromotedUnitResourceGatherer)
+	{
+		var carriedResorces = cmpCurrentUnitResourceGatherer.GetCarryingStatus();
+		cmpPromotedUnitResourceGatherer.GiveResources(carriedResorces);
+	}
+	
+	var cmpCurrentUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI);
+	var cmpPromotedUnitAI = Engine.QueryInterface(promotedUnitEntity, IID_UnitAI);
+	cmpPromotedUnitAI.Cheer();
+	var orders = cmpCurrentUnitAI.GetOrders();
+	cmpPromotedUnitAI.AddOrders(orders);
+	
+	Engine.BroadcastMessage(MT_EntityRenamed, { entity: this.entity, newentity: promotedUnitEntity });
+	
+	// Destroy current entity
+	Engine.DestroyEntity(this.entity);
+}
+
+Promotion.prototype.IncreaseXp = function(amount)
+{
+	this.currentXp += +(amount);
+
+	if (this.currentXp >= this.template.RequiredXp)
+	{
+		var promotionTemplate = this.template;	
+		do
+		{
+			this.currentXp -= promotionTemplate.RequiredXp;
+			var promotedTemplateName = promotionTemplate.Entity;
+			var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
+			var template = cmpTemplateManager.GetTemplate(promotedTemplateName);
+			promotionTemplate = template.Promotion || null; 
+		}
+		while (promotionTemplate != null && this.currentXp >= promotionTemplate.RequiredXp);
+		this.Promote(promotedTemplateName);	
+	}
+}
+
 Engine.RegisterComponentType(IID_Promotion, "Promotion", Promotion);
Index: binaries/data/mods/public/simulation/components/Formation.js
===================================================================
--- binaries/data/mods/public/simulation/components/Formation.js	(revision 9303)
+++ binaries/data/mods/public/simulation/components/Formation.js	(working copy)
@@ -286,4 +286,19 @@
 		this.RemoveMembers([msg.entity]);
 };
 
+Formation.prototype.OnGlobalEntityRenamed = function(msg)
+{
+	if (this.members[msg.entity])
+	{
+		this.members.splice(this.members.indexOf(msg.entity), 1);	
+		this.members.push(msg.newentity);	
+
+		var cmpOldUnitAI = Engine.QueryInterface(msg.entity, IID_UnitAI);
+		cmpOldUnitAI.SetFormationController(INVALID_ENTITY);
+
+		var cmpNewUnitAI = Engine.QueryInterface(msg.newentity, IID_UnitAI);
+		cmpNewUnitAI.SetFormationController(this.entity);
+	}
+}
+
 Engine.RegisterComponentType(IID_Formation, "Formation", Formation);
Index: binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_b.xml	(working copy)
@@ -8,7 +8,7 @@
     <Icon>units/hele_infantry_javelinist.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>hele_infantry_javelinist_a</Entity>
+    <Entity>units/hele_infantry_javelinist_a</Entity>
   </Promotion>
   <Cost>
     <Resources>
Index: binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_e.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_e.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_e.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/hele_infantry_javelinist_a">
-  <Identity>
-	<Rank>Elite</Rank>
-  </Identity>
   <ResourceGatherer>
     <BaseSpeed>0.5</BaseSpeed>
   </ResourceGatherer>
@@ -22,4 +19,5 @@
   <VisualActor>
     <Actor>units/hellenes/infantry_javelinist_e.xml</Actor>
   </VisualActor>
+  <Promotion disable=""/>
 </Entity>
Index: binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_a.xml	(working copy)
@@ -4,7 +4,7 @@
 	<Rank>Advanced</Rank>
   </Identity>
   <Promotion>
-    <Entity>celt_cavalry_javelinist_e</Entity>
+    <Entity>units/celt_cavalry_javelinist_e</Entity>
   </Promotion>
   <ResourceGatherer>
     <BaseSpeed>0.75</BaseSpeed>
Index: binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_b.xml	(working copy)
@@ -8,7 +8,7 @@
     <Icon>units/celt_cavalry_javelinist.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>celt_cavalry_javelinist_a</Entity>
+    <Entity>units/celt_cavalry_javelinist_a</Entity>
   </Promotion>
   <Armour>
     <Hack>2.0</Hack>
Index: binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_e.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_e.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_e.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/celt_cavalry_javelinist_a">
-  <Identity>
-	<Rank>Elite</Rank>
-  </Identity>
   <ResourceGatherer>
     <BaseSpeed>0.5</BaseSpeed>
   </ResourceGatherer>
@@ -29,4 +26,5 @@
   <VisualActor>
     <Actor>units/celts/cavalry_javelinist_e.xml</Actor>
   </VisualActor>
+  <Promotion disable=""/>
 </Entity>
Index: binaries/data/mods/public/simulation/templates/units/rome_legionnaire_marian.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/rome_legionnaire_marian.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/rome_legionnaire_marian.xml	(working copy)
@@ -9,8 +9,8 @@
     <Icon>units/rome_super_legion_marian.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>rome_legionnaire_imperial</Entity>
-    <Req>500</Req>
+    <Entity>units/rome_legionnaire_imperial</Entity>
+    <RequiredXp>500</RequiredXp>
   </Promotion>
   <VisualActor>
     <Actor>units/romans/super_unit_3.xml</Actor>
Index: binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_a.xml	(working copy)
@@ -4,7 +4,7 @@
 	<Rank>Advanced</Rank>
   </Identity>
   <Promotion>
-    <Entity>hele_infantry_spearman_e</Entity>
+    <Entity>units/hele_infantry_spearman_e</Entity>
   </Promotion>
   <ResourceGatherer>
     <BaseSpeed>0.75</BaseSpeed>
Index: binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_b.xml	(working copy)
@@ -8,7 +8,7 @@
     <Icon>units/hele_infantry_spearman.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>hele_infantry_spearman_a</Entity>
+    <Entity>units/hele_infantry_spearman_a</Entity>
   </Promotion>
   <Cost>
     <Resources>
Index: binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_e.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_e.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_e.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/hele_infantry_spearman_a">
-  <Identity>
-	<Rank>Elite</Rank>
-  </Identity>
   <ResourceGatherer>
     <BaseSpeed>0.5</BaseSpeed>
   </ResourceGatherer>
@@ -33,5 +30,5 @@
   <VisualActor>
     <Actor>units/hellenes/infantry_spearman_e.xml</Actor>
   </VisualActor>
-  
+  <Promotion disable=""/>
 </Entity>
Index: binaries/data/mods/public/simulation/templates/units/hele_cavalry_javelinist_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_cavalry_javelinist_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_cavalry_javelinist_a.xml	(working copy)
@@ -4,7 +4,7 @@
 	<Rank>Advanced</Rank>
   </Identity>
   <Promotion>
-    <Entity>hele_cavalry_javelinist_e</Entity>
+    <Entity>units/hele_cavalry_javelinist_e</Entity>
   </Promotion>
   <ResourceGatherer>
     <BaseSpeed>0.75</BaseSpeed>
Index: binaries/data/mods/public/simulation/templates/units/hele_cavalry_javelinist_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_cavalry_javelinist_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_cavalry_javelinist_b.xml	(working copy)
@@ -8,7 +8,7 @@
     <Icon>units/hele_cavalry_javelinist.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>hele_cavalry_javelinist_a</Entity>
+    <Entity>units/hele_cavalry_javelinist_a</Entity>
   </Promotion>
   <Vision>
     <Range>110</Range>
Index: binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_a.xml	(working copy)
@@ -4,7 +4,7 @@
 	<Rank>Advanced</Rank>
   </Identity>
   <Promotion>
-    <Entity>celt_infantry_javelinist_e</Entity>
+    <Entity>units/celt_infantry_javelinist_e</Entity>
   </Promotion>
   <ResourceGatherer>
     <BaseSpeed>0.75</BaseSpeed>
Index: binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_b.xml	(working copy)
@@ -8,7 +8,7 @@
     <Icon>units/celt_infantry_javelinist.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>celt_infantry_javelinist_a</Entity>
+    <Entity>units/celt_infantry_javelinist_a</Entity>
   </Promotion>
   <Armour>
     <Hack>2.0</Hack>
Index: binaries/data/mods/public/simulation/templates/units/hele_cavalry_javelinist_e.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_cavalry_javelinist_e.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_cavalry_javelinist_e.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/hele_cavalry_javelinist_a">
-  <Identity>
-	<Rank>Elite</Rank>
-  </Identity>
   <ResourceGatherer>
     <BaseSpeed>0.5</BaseSpeed>
   </ResourceGatherer>
@@ -29,5 +26,5 @@
   <VisualActor>
     <Actor>units/hellenes/cavalry_javelinist_e.xml</Actor>
   </VisualActor>
-
+  <Promotion disable=""/>
 </Entity>
Index: binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_e.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_e.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_e.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/celt_infantry_javelinist_a">
-  <Identity>
-	<Rank>Elite</Rank>
-  </Identity>
   <ResourceGatherer>
     <BaseSpeed>0.5</BaseSpeed>
   </ResourceGatherer>
@@ -29,4 +26,5 @@
   <VisualActor>
     <Actor>units/celts/infantry_javelinist_e.xml</Actor>
   </VisualActor>
+  <Promotion disable=""/>
 </Entity>
Index: binaries/data/mods/public/simulation/templates/units/mace_hypaspist.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/mace_hypaspist.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/mace_hypaspist.xml	(working copy)
@@ -8,8 +8,8 @@
     <Icon>units/macedonian_hypaspist.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>mace_argyraspis</Entity>
-    <Req>500</Req>
+    <Entity>units/mace_argyraspis</Entity>
+    <RequiredXp>500</RequiredXp>
   </Promotion>
   <Cost>
     <Resources>
Index: binaries/data/mods/public/simulation/templates/units/iber_infantry_javelinist_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/iber_infantry_javelinist_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/iber_infantry_javelinist_a.xml	(working copy)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/iber_infantry_javelinist_b">
   <Promotion>
-    <Entity>iber_infantry_javelinist_e</Entity>
+    <Entity>units/iber_infantry_javelinist_e</Entity>
   </Promotion>
   <VisualActor>
     <Actor>units/iberians/infantry_javelinist_a.xml</Actor>
Index: binaries/data/mods/public/simulation/templates/units/iber_infantry_javelinist_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/iber_infantry_javelinist_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/iber_infantry_javelinist_b.xml	(working copy)
@@ -7,7 +7,7 @@
 	<Icon>units/cart_cavalry_javelinist.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>iber_infantry_javelinist_a</Entity>
+    <Entity>units/iber_infantry_javelinist_a</Entity>
   </Promotion>
   <VisualActor>
     <Actor>units/iberians/infantry_javelinist_b.xml</Actor>
Index: binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_a.xml	(working copy)
@@ -4,7 +4,7 @@
 	<Rank>Advanced</Rank>
   </Identity>
   <Promotion>
-    <Entity>celt_infantry_spearman_e</Entity>
+    <Entity>units/celt_infantry_spearman_e</Entity>
   </Promotion>
   <ResourceGatherer>
     <BaseSpeed>0.75</BaseSpeed>
Index: binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_b.xml	(working copy)
@@ -8,7 +8,7 @@
     <Icon>units/celt_infantry_spearman.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>celt_infantry_spearman_a</Entity>
+    <Entity>units/celt_infantry_spearman_a</Entity>
   </Promotion>
   <Armour>
     <Hack>3.0</Hack>
Index: binaries/data/mods/public/simulation/templates/units/iber_infantry_swordsman_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/iber_infantry_swordsman_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/iber_infantry_swordsman_a.xml	(working copy)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/iber_infantry_swordsman_b">
   <Promotion>
-    <Entity>iber_infantry_swordsman_e</Entity>
+    <Entity>units/iber_infantry_swordsman_e</Entity>
   </Promotion>
   <VisualActor>
     <Actor>units/iberians/infantry_swordsman_a.xml</Actor>
Index: binaries/data/mods/public/simulation/templates/units/iber_cavalry_spearman_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/iber_cavalry_spearman_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/iber_cavalry_spearman_a.xml	(working copy)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/iber_cavalry_spearman_b">
   <Promotion>
-    <Entity>iber_cavalry_spearman_e</Entity>
+    <Entity>units/iber_cavalry_spearman_e</Entity>
   </Promotion>
   <VisualActor>
     <Actor>units/iberians/cavalry_spearman_a.xml</Actor>
Index: binaries/data/mods/public/simulation/templates/units/iber_infantry_swordsman_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/iber_infantry_swordsman_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/iber_infantry_swordsman_b.xml	(working copy)
@@ -7,7 +7,7 @@
     <History>The Iberians were master sword-smiths and the falcata was their greatest creation. Wielded by superb swordsmen equipped with light armor and a buckler known as a caetra, they caused untold carnage. Thanks to this Iberian infantry were fast and agile unlike many of their opponents and could bite hard when they attacked. Their skill with sword and buckler were legendary, allowing them to go toe-to-toe with heavy infantry.</History>
   </Identity>
   <Promotion>
-    <Entity>iber_infantry_swordsman_a</Entity>
+    <Entity>units/iber_infantry_swordsman_a</Entity>
   </Promotion>
   <VisualActor>
     <Actor>units/iberians/infantry_swordsman_b.xml</Actor>
Index: binaries/data/mods/public/simulation/templates/units/iber_cavalry_spearman_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/iber_cavalry_spearman_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/iber_cavalry_spearman_b.xml	(working copy)
@@ -7,7 +7,7 @@
     <History>Armed like the light infantry, Iberian cavalry were often pursued as mercenaries, especially by the Carthaginians. Mounted on excellent horses and wielding high-grade swords they were capable of taking on heavy or light cavalry. As with all Iberians armor was scarce, but they wore the ubiquitous sinew caps made famous by the peoples of the peninsula.</History>
   </Identity>
   <Promotion>
-    <Entity>iber_cavalry_spearman_a</Entity>
+    <Entity>units/iber_cavalry_spearman_a</Entity>
   </Promotion>
   <VisualActor>
     <Actor>units/iberians/cavalry_spearman_b.xml</Actor>
Index: binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_a.xml	(working copy)
@@ -4,7 +4,7 @@
 	<Rank>Advanced</Rank>
   </Identity>
   <Promotion>
-    <Entity>hele_cavalry_swordsman_e</Entity>
+    <Entity>units/hele_cavalry_swordsman_e</Entity>
   </Promotion>
   <ResourceGatherer>
     <BaseSpeed>0.75</BaseSpeed>
Index: binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_e.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_e.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_e.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/celt_infantry_spearman_a">
-  <Identity>
-	<Rank>Elite</Rank>
-  </Identity>
   <ResourceGatherer>
     <BaseSpeed>0.5</BaseSpeed>
   </ResourceGatherer>
@@ -33,4 +30,5 @@
   <VisualActor>
     <Actor>units/celts/infantry_spearman_e.xml</Actor>
   </VisualActor>
+  <Promotion disable=""/>
 </Entity>
Index: binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_b.xml	(working copy)
@@ -8,7 +8,7 @@
     <Icon>units/hele_cavalry_swordsman.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>hele_cavalry_swordsman_a</Entity>
+    <Entity>units/hele_cavalry_swordsman_a</Entity>
   </Promotion>
   <Vision>
     <Range>110</Range>
Index: binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_e.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_e.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_e.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/hele_cavalry_swordsman_a">
-  <Identity>
-	<Rank>Elite</Rank>
-  </Identity>
   <ResourceGatherer>
     <BaseSpeed>0.5</BaseSpeed>
   </ResourceGatherer>
@@ -31,5 +28,5 @@
   <VisualActor>
     <Actor>units/hellenes/cavalry_swordsman_e.xml</Actor>
   </VisualActor>
-
+  <Promotion disable=""/>
 </Entity>
Index: binaries/data/mods/public/simulation/templates/units/iber_infantry_slinger_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/iber_infantry_slinger_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/iber_infantry_slinger_a.xml	(working copy)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/iber_infantry_slinger_b">
   <Promotion>
-    <Entity>iber_infantry_slinger_e</Entity>
+    <Entity>units/iber_infantry_slinger_e</Entity>
   </Promotion>
   <VisualActor>
     <Actor>units/iberians/infantry_slinger_a.xml</Actor>
Index: binaries/data/mods/public/simulation/templates/units/iber_infantry_slinger_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/iber_infantry_slinger_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/iber_infantry_slinger_b.xml	(working copy)
@@ -7,7 +7,7 @@
     <History>Iberian slingers were the undisputed masters of the weapon and extracted a high toll of the enemy. Going into combat scantily clad at best, the slinger carried three slings tied around his waist, each of a different length allowing him to attack opponents from all ranges. Unlike other cultures, the Iberian slingers threw rocks instead of specially made lead shot.</History>
   </Identity>
   <Promotion>
-    <Entity>iber_infantry_slinger_a</Entity>
+    <Entity>units/iber_infantry_slinger_a</Entity>
   </Promotion>
   <VisualActor>
     <Actor>units/iberians/infantry_slinger_b.xml</Actor>
Index: binaries/data/mods/public/simulation/templates/units/iber_infantry_spearman_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/iber_infantry_spearman_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/iber_infantry_spearman_a.xml	(working copy)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/iber_infantry_spearman_b">
   <Promotion>
-    <Entity>iber_infantry_spearman_e</Entity>
+    <Entity>units/iber_infantry_spearman_e</Entity>
   </Promotion>
   <VisualActor>
     <Actor>units/iberians/infantry_spearman_a.xml</Actor>
Index: binaries/data/mods/public/simulation/templates/units/iber_infantry_spearman_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/iber_infantry_spearman_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/iber_infantry_spearman_b.xml	(working copy)
@@ -7,7 +7,7 @@
     <History>A long-bladed spear was a chief melee weapon of the Iberian infantry, often used after the javelins had been thrown. Typically carried by infantry know as scutarii for their long oval body shields, the spearmen would close in formation to attack their opponents. Usually lightly armored, they were quick and had a ferocious reputation.</History>
   </Identity>
   <Promotion>
-    <Entity>iber_infantry_spearman_a</Entity>
+    <Entity>units/iber_infantry_spearman_a</Entity>
   </Promotion>
   <VisualActor>
     <Actor>units/iberians/infantry_spearman_b.xml</Actor>
Index: binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_a.xml	(working copy)
@@ -4,7 +4,7 @@
 	<Rank>Advanced</Rank>
   </Identity>
   <Promotion>
-    <Entity>celt_cavalry_spearman_e</Entity>
+    <Entity>units/celt_cavalry_spearman_e</Entity>
   </Promotion>
   <ResourceGatherer>
     <BaseSpeed>0.75</BaseSpeed>
Index: binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_b.xml	(working copy)
@@ -10,7 +10,7 @@
     <Icon>units/celt_cavalry_spearman.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>celt_cavalry_spearman_a</Entity>
+    <Entity>units/celt_cavalry_spearman_a</Entity>
   </Promotion>
   <Cost>
     <BuildTime>10</BuildTime>
Index: binaries/data/mods/public/simulation/templates/units/rome_legionnaire_imperial.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/rome_legionnaire_imperial.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/rome_legionnaire_imperial.xml	(working copy)
@@ -8,8 +8,8 @@
     <Icon>units/rome_super_legion_imperial.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>rome_centurio_imperial</Entity>
-    <Req>700</Req>
+    <Entity>units/rome_centurio_imperial</Entity>
+    <RequiredXp>700</RequiredXp>
   </Promotion>
   <Armour>
     <Hack>10.0</Hack>
Index: binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_e.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_e.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_e.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/celt_cavalry_spearman_a">
-  <Identity>
-	<Rank>Elite</Rank>
-  </Identity>
   <ResourceGatherer>
     <BaseSpeed>0.5</BaseSpeed>
   </ResourceGatherer>
@@ -28,4 +25,5 @@
   <VisualActor>
     <Actor>units/celts/cavalry_spearman_e.xml</Actor>
   </VisualActor>
+  <Promotion disable=""/>
 </Entity>
Index: binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_a.xml	(working copy)
@@ -4,7 +4,7 @@
 	<Rank>Advanced</Rank>
   </Identity>
   <Promotion>
-    <Entity>celt_cavalry_swordsman_e</Entity>
+    <Entity>units/celt_cavalry_swordsman_e</Entity>
   </Promotion>
   <ResourceGatherer>
     <BaseSpeed>0.75</BaseSpeed>
Index: binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_b.xml	(working copy)
@@ -8,7 +8,7 @@
     <Icon>units/celt_cavalry_swordsman.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>celt_cavalry_swordsman_a</Entity>
+    <Entity>units/celt_cavalry_swordsman_a</Entity>
   </Promotion>
   <Armour>
     <Hack>3.0</Hack>
Index: binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_e.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_e.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_e.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/celt_cavalry_swordsman_a">
-  <Identity>
-	<Rank>Elite</Rank>
-  </Identity>
   <ResourceGatherer>
     <BaseSpeed>0.5</BaseSpeed>
   </ResourceGatherer>
@@ -31,4 +28,5 @@
   <VisualActor>
     <Actor>units/celts/cavalry_swordsman_e.xml</Actor>
   </VisualActor>
+  <Promotion disable=""/>
 </Entity>
Index: binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_a.xml	(working copy)
@@ -4,7 +4,7 @@
 	<Rank>Advanced</Rank>
   </Identity>
   <Promotion>
-    <Entity>hele_infantry_archer_e</Entity>
+    <Entity>units/hele_infantry_archer_e</Entity>
   </Promotion>
   <ResourceGatherer>
     <BaseSpeed>0.75</BaseSpeed>
Index: binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_b.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_b.xml	(working copy)
@@ -9,7 +9,7 @@
     <Icon>units/hele_infantry_archer.png</Icon>
   </Identity>
   <Promotion>
-    <Entity>hele_infantry_archer_a</Entity>
+    <Entity>units/hele_infantry_archer_a</Entity>
   </Promotion>
   <Cost>
     <Resources>
Index: binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_a.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_a.xml	(working copy)
@@ -4,7 +4,7 @@
 	<Rank>Advanced</Rank>
   </Identity>
   <Promotion>
-    <Entity>hele_infantry_javelinist_e</Entity>
+    <Entity>units/hele_infantry_javelinist_e</Entity>
   </Promotion>
   <ResourceGatherer>
     <BaseSpeed>0.75</BaseSpeed>
Index: binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_e.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_e.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_e.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="units/hele_infantry_archer_a">
-  <Identity>
-	<Rank>Elite</Rank>
-  </Identity>
   <ResourceGatherer>
     <BaseSpeed>0.5</BaseSpeed>
   </ResourceGatherer>
@@ -33,4 +30,5 @@
   <VisualActor>
     <Actor>units/hellenes/infantry_archer_e.xml</Actor>
   </VisualActor>
+  <Promotion disable=""/>
 </Entity>
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry.xml	(working copy)
@@ -6,7 +6,7 @@
 	<Rank>Basic</Rank>
   </Identity>
   <Promotion>
-    <Req>600</Req>
+    <RequiredXp>600</RequiredXp>
   </Promotion>
   <Cost>
     <BuildTime>9</BuildTime>
Index: binaries/data/mods/public/simulation/templates/template_unit_cavalry.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_cavalry.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/template_unit_cavalry.xml	(working copy)
@@ -6,7 +6,7 @@
 	<Rank>Basic</Rank>
   </Identity>
   <Promotion>
-    <Req>900</Req>
+    <RequiredXp>900</RequiredXp>
   </Promotion>
   <Position>
     <Anchor>pitch</Anchor>
Index: binaries/data/mods/public/simulation/templates/template_unit.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit.xml	(revision 9303)
+++ binaries/data/mods/public/simulation/templates/template_unit.xml	(working copy)
@@ -91,7 +91,8 @@
     <Range>24</Range>
     <RetainInFog>false</RetainInFog>
     <AlwaysVisible>false</AlwaysVisible>
-  </Vision>
+    </Vision>
+  <Looter/>
   <VisualActor>
     <SilhouetteDisplay>true</SilhouetteDisplay>
     <SilhouetteOccluder>false</SilhouetteOccluder>
Index: binaries/data/mods/public/art/animation/biped/not used/inf_salute_e.psa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: binaries/data/mods/public/art/animation/biped/not used/inf_salute_a.psa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: binaries/data/mods/public/art/animation/biped/not used/inf_salute_b.psa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: binaries/data/mods/public/art/animation/biped/not used/inf_salute_c.psa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: binaries/data/mods/public/art/animation/biped/not used/inf_salute_d.psa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: binaries/data/mods/public/art/actors/units/hellenes/infantry_spearman_a.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/hellenes/infantry_spearman_a.xml	(revision 9303)
+++ binaries/data/mods/public/art/actors/units/hellenes/infantry_spearman_a.xml	(working copy)
@@ -27,6 +27,7 @@
         <animation file="infantry/general/death/inf_04.psa" name="Death" speed="400"/>
         <animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
         <animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
+		<animation file="biped/inf_salute_c.psa" name="Promotion" speed="288"/>
       </animations>
       <mesh>skeletal/m_tunic_short.dae</mesh>
       <props>
Index: binaries/data/mods/public/art/actors/units/hellenes/infantry_spearman_e.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/hellenes/infantry_spearman_e.xml	(revision 9303)
+++ binaries/data/mods/public/art/actors/units/hellenes/infantry_spearman_e.xml	(working copy)
@@ -27,6 +27,7 @@
         <animation file="infantry/general/death/inf_04.psa" name="Death" speed="400"/>
         <animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
         <animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
+		<animation file="biped/inf_salute_c.psa" name="Promotion" speed="288"/>
       </animations>
       <mesh>skeletal/m_tunic_short.dae</mesh>
       <props>
Index: binaries/data/mods/public/art/actors/units/hellenes/infantry_archer_a.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/hellenes/infantry_archer_a.xml	(revision 9303)
+++ binaries/data/mods/public/art/actors/units/hellenes/infantry_archer_a.xml	(working copy)
@@ -28,6 +28,7 @@
         <animation file="infantry/general/death/inf_04.psa" name="Death" speed="400"/>
         <animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
         <animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
+		<animation file="biped/inf_salute_c.psa" name="Promotion" speed="288"/>
       </animations>
       <mesh>skeletal/m_tunic_short.dae</mesh>
       <props>
Index: binaries/data/mods/public/art/actors/units/hellenes/infantry_javelinist_a.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/hellenes/infantry_javelinist_a.xml	(revision 9303)
+++ binaries/data/mods/public/art/actors/units/hellenes/infantry_javelinist_a.xml	(working copy)
@@ -30,6 +30,7 @@
 		<animation file="infantry/general/death/inf_05.psa" name="Death" speed="600"/>
         <animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
         <animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
+		<animation file="biped/inf_salute_c.psa" name="Promotion" speed="288"/>
       </animations>
       <props>
         <prop actor="props/units/heads/floppy_b.xml" attachpoint="helmet"/>
Index: binaries/data/mods/public/art/actors/units/hellenes/infantry_archer_e.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/hellenes/infantry_archer_e.xml	(revision 9303)
+++ binaries/data/mods/public/art/actors/units/hellenes/infantry_archer_e.xml	(working copy)
@@ -27,6 +27,7 @@
         <animation file="infantry/general/death/inf_04.psa" name="Death" speed="400"/>
         <animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
         <animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
+		<animation file="biped/inf_salute_c.psa" name="Promotion" speed="288"/>
       </animations>
       <mesh>skeletal/m_tunic_long.dae</mesh>
       <props>
Index: binaries/data/mods/public/art/actors/units/hellenes/infantry_javelinist_e.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/hellenes/infantry_javelinist_e.xml	(revision 9303)
+++ binaries/data/mods/public/art/actors/units/hellenes/infantry_javelinist_e.xml	(working copy)
@@ -30,6 +30,7 @@
         <animation file="infantry/general/death/inf_05.psa" name="Death" speed="600"/>
         <animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
         <animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
+		<animation file="biped/inf_salute_c.psa" name="Promotion" speed="288"/>
       </animations>
       <mesh>skeletal/m_tunic_long.dae</mesh>
       <props>
Index: binaries/data/mods/public/art/actors/units/celts/infantry_spearman_a.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/celts/infantry_spearman_a.xml	(revision 9303)
+++ binaries/data/mods/public/art/actors/units/celts/infantry_spearman_a.xml	(working copy)
@@ -30,6 +30,7 @@
         <animation file="infantry/general/death/inf_04.psa" name="Death" speed="400"/>
         <animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
         <animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
+		<animation file="biped/inf_salute_c.psa" name="Promotion" speed="288"/>
       </animations>
       <mesh>skeletal/m_pants_celt.dae</mesh>
       <props>
Index: binaries/data/mods/public/art/actors/units/celts/infantry_spearman_e.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/celts/infantry_spearman_e.xml	(revision 9303)
+++ binaries/data/mods/public/art/actors/units/celts/infantry_spearman_e.xml	(working copy)
@@ -31,6 +31,7 @@
         <animation file="infantry/general/death/inf_04.psa" name="Death" speed="400"/>
         <animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
         <animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
+		<animation file="biped/inf_salute_c.psa" name="Promotion" speed="288"/>
       </animations>
       <mesh>skeletal/m_pants_celt.dae</mesh>
       <props>
Index: binaries/data/mods/public/art/actors/units/celts/infantry_javelinist_a.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/celts/infantry_javelinist_a.xml	(revision 9303)
+++ binaries/data/mods/public/art/actors/units/celts/infantry_javelinist_a.xml	(working copy)
@@ -33,6 +33,7 @@
         <animation file="infantry/general/death/inf_04.psa" name="Death" speed="400"/>
         <animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
         <animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
+		<animation file="biped/inf_salute_c.psa" name="Promotion" speed="288"/>
       </animations>
       <mesh>skeletal/m_pants.dae</mesh>
       <props>
Index: binaries/data/mods/public/art/actors/units/celts/infantry_javelinist_e.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/celts/infantry_javelinist_e.xml	(revision 9303)
+++ binaries/data/mods/public/art/actors/units/celts/infantry_javelinist_e.xml	(working copy)
@@ -31,6 +31,7 @@
         <animation file="infantry/general/death/inf_04.psa" name="Death" speed="400"/>
         <animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
         <animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
+		<animation file="biped/inf_salute_c.psa" name="Promotion" speed="288"/>
       </animations>
       <mesh>skeletal/m_tights.dae</mesh>
       <props>
Index: binaries/data/mods/public/art/actors/units/celts/super_unit_1.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/celts/super_unit_1.xml	(revision 9303)
+++ binaries/data/mods/public/art/actors/units/celts/super_unit_1.xml	(working copy)
@@ -4,11 +4,11 @@
   <group>
     <variant frequency="1" name="Base">
       <animations>
-        <animation file="biped/not used/inf_salute_a.psa" name="Idle" speed="302"/>
-        <animation file="biped/not used/inf_salute_b.psa" name="Idle" speed="291"/>
-        <animation file="biped/not used/inf_salute_c.psa" name="Idle" speed="288"/>
-        <animation file="biped/not used/inf_salute_d.psa" name="Idle" speed="296"/>
-        <animation file="biped/not used/inf_salute_e.psa" name="Idle" speed="311"/>
+        <animation file="biped/inf_salute_a.psa" name="Idle" speed="302"/>
+        <animation file="biped/inf_salute_b.psa" name="Idle" speed="291"/>
+        <animation file="biped/inf_salute_c.psa" name="Idle" speed="288"/>
+        <animation file="biped/inf_salute_d.psa" name="Idle" speed="296"/>
+        <animation file="biped/inf_salute_e.psa" name="Idle" speed="311"/>
         <animation file="biped/walk_spearshield.psa" name="Walk" speed="120"/>
         <animation file="infantry/sword/move/run/isw_s_off_01.psa" name="Run" speed="40"/>
         <animation event="0.5" file="infantry/sword/attack/isw_s_em_04.psa" name="Attack" speed="80"/>
