private void RecuAddNodeFromXML(XmlNode node, HModelNode parent, bool multiplayer)
		{
			Debug.Log (node["ID"].InnerText);
			Trait t = new Trait(Convert.ToUInt32(node["ID"].InnerText), node["NAME"].InnerText, Convert.ToDouble(node["LEARNINGRATE"].InnerText), multiplayer);
			HModelNode tmp = new HModelNode(t, parent);
			foreach (XmlNode subTrait in node.SelectNodes("/CHILDREN/*"))
			{
				RecuAddNodeFromXML(subTrait, tmp, multiplayer);
			}
		}
		/*private static HPlayerModel instance;
		public static HPlayerModel Instance
		{
			get
			{
				if (instance == null)
					instance = new HPlayerModel();
				return instance;
			}
		}*/

		public HPlayerModel(bool multiplayer)
		{
			XmlDocument xdoc = new XmlDocument();
			xdoc.Load(XMLDocUrl);

			root = new HModelNode(new Trait(0, "Player's style", 0f, multiplayer), null);
			Debug.Log(xdoc.SelectNodes("/TRAITS/TRAIT").Count + " modelable traits where found!");
			foreach (XmlNode trait in xdoc.SelectNodes("/TRAITS/TRAIT"))
			{
				RecuAddNodeFromXML(trait, root, multiplayer);
			}
		}
			public HModelNode(Trait trait, HModelNode parent)
			{
				this.trait = trait;
				this.parent = parent;

				HModelNode.collection.Add(this);
			}
		private HModelNode RecuFindNode(Trait trait, HModelNode node)
		{
			if (node.HasTrait(trait)) return node;
			HModelNode tmp = null;
			foreach (HModelNode n in node.children)
				tmp = RecuFindNode(trait, n);
			return tmp != null? tmp : null;
		}