bool HasActionFlag(BaseObject Entity, string key){ // TODO
		// see if the entity's action flag dictionary has the key, or if there's an "=", check the value
		return Entity.HasAttribute(key);
	}
	bool HasAttribute(string operand, BaseObject entity){
		if (operand.Contains(".")){
			string[] parts = operand.Split('.');
			if (cachedGO == null)
				cachedGO = GameObject.Find(parts[0]);
			BaseObject bob = null;
			if (cachedGO != null){
				if ( (bob=cachedGO.GetComponent<BaseObject>()) != null){
					return HasAttribute(parts[1],bob);
				}
			}
			Debug.Log ("Error Evaluating "+parts[1]+" for "+parts[0]+": not found");
			return false;
		}
		else
			return entity.HasAttribute(operand);
		
	}