	private static Prototype initAliveBeing(Prototype aliveBeing){
				try {
					aliveBeing.addField("alive", 1 + ""); 
					aliveBeing.addField("age", 1 + "");
					aliveBeing.addField("neighbors", 0 + "");
				} catch (ElementAlreadyContainedException e) {
					e.printStackTrace();
				}
				Expression isAlive = new Expression("this.alive == 1");
				Expression neigh1 = new Expression(
						"getFieldOfAgentAt ( this.x - 1 , this.y - 1 , 'alive' ) == 1");
				Expression neigh2 = new Expression(
						"getFieldOfAgentAt(this.x, this.y-1, 'alive') == 1");
				Expression neigh3 = new Expression(
						"getFieldOfAgentAt(this.x+1, this.y-1, 'alive') == 1");
				Expression neigh4 = new Expression(
						"getFieldOfAgentAt(this.x-1, this.y, 'alive') == 1");
				Expression neigh5 = new Expression(
						"getFieldOfAgentAt(this.x+1, this.y, 'alive') == 1");
				Expression neigh6 = new Expression(
						"getFieldOfAgentAt(this.x-1, this.y+1, 'alive') == 1");
				Expression neigh7 = new Expression(
						"getFieldOfAgentAt(this.x, this.y+1, 'alive') == 1");
				Expression neigh8 = new Expression(
						"getFieldOfAgentAt(this.x+1, this.y+1, 'alive') == 1");
				Expression dieCond = new Expression(
						"(this.alive == 1) && (this.neighbors < 2 || this.neighbors > 3)");
				Expression incrementAge = new Expression(
						"setField('age', this.age+1)");
				Expression incrementNeighbors = new Expression(
						"setField('neighbors', this.neighbors+1)");
				Expression die = new Expression(
						"clonePrototype(this.x, this.y, 'deadBeing')");
				Expression resetNeighbors = new Expression(
						"setField('neighbors', 0)");
				aliveBeing.addTrigger(new Trigger("updateAge", 1, isAlive,
						incrementAge));
				aliveBeing.addTrigger(new Trigger("resetNeighbors", 2, new Expression(
						"true"), resetNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh1", 3, neigh1,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh2", 4, neigh2,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh3", 5, neigh3,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh4", 6, neigh4,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh5", 7, neigh5,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh6", 8, neigh6,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh7", 9, neigh7,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh8", 10, neigh8,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("die", 11, dieCond, die));
				Prototype.addPrototype(aliveBeing);
				return aliveBeing;
	}

	private static Prototype initAliveBeing(Prototype aliveBeing){
				try {
					aliveBeing.addField("alive", 1 + ""); 
					aliveBeing.addField("age", 1 + "");
					aliveBeing.addField("neighbors", 0 + "");
				} catch (ElementAlreadyContainedException e) {
					e.printStackTrace();
				}
				Expression isAlive = new Expression("this.alive == 1");
				Expression neigh1 = new Expression(
						"getFieldOfAgentAt( this.x - 1 , this.y - 1 , 'alive' ) == 1");
				Expression neigh2 = new Expression(
						"getFieldOfAgentAt(this.x, this.y-1, 'alive') == 1");
				Expression neigh3 = new Expression(
						"getFieldOfAgentAt(this.x+1, this.y-1, 'alive') == 1");
				Expression neigh4 = new Expression(
						"getFieldOfAgentAt(this.x-1, this.y, 'alive') == 1");
				Expression neigh5 = new Expression(
						"getFieldOfAgentAt(this.x+1, this.y, 'alive') == 1");
				Expression neigh6 = new Expression(
						"getFieldOfAgentAt(this.x-1, this.y+1, 'alive') == 1");
				Expression neigh7 = new Expression(
						"getFieldOfAgentAt(this.x, this.y+1, 'alive') == 1");
				Expression neigh8 = new Expression(
						"getFieldOfAgentAt(this.x+1, this.y+1, 'alive') == 1");
				Expression dieCond = new Expression(
						"(this.alive == 1) && (this.neighbors < 2 || this.neighbors > 3)");
				Expression incrementAge = new Expression(
						"setField('age', this.age+1)");
				Expression incrementNeighbors = new Expression(
						"setField('neighbors', this.neighbors+1)");
				Expression die = new Expression(
						"clonePrototype(this.x, this.y, 'deadBeing')");
				Expression resetNeighbors = new Expression(
						"setField('neighbors', 0)");
				aliveBeing.addTrigger(new Trigger("updateAge", 1, isAlive,
						incrementAge));
				aliveBeing.addTrigger(new Trigger("resetNeighbors", 2, new Expression(
						"true"), resetNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh1", 3, neigh1,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh2", 4, neigh2,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh3", 5, neigh3,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh4", 6, neigh4,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh5", 7, neigh5,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh6", 8, neigh6,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh7", 9, neigh7,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("checkNeigh8", 10, neigh8,
						incrementNeighbors));
				aliveBeing.addTrigger(new Trigger("die", 11, dieCond, die));
				Prototype.addPrototype(aliveBeing);
				return aliveBeing;
	}
