void fire (Instantiation inst)
	{
		Chunk goal = model.getBuffers().get (Symbol.goal);
		if (goal!=null) goal.setLastUsedAsGoal (model.getTime());
		
		for (int i=0 ; i<conditions.size() ; i++)
		{
			BufferCondition bc = conditions.elementAt(i);
			if (bc.getPrefix()=='='
				&& bc.getBuffer()!=Symbol.goal
				&& bc.getBuffer()!=Symbol.temporal
				//&& bc.getBuffer()!=Symbol.imaginal
				)
			{
				Symbol buffer = bc.getBuffer();
				boolean found = false;
				for (int j=0 ; j<actions.size() ; j++)
					if (actions.elementAt(j).getBuffer() == buffer) found = true;
				if (!found) model.getBuffers().clear (bc.getBuffer());
				else model.getBuffers().touch (bc.getBuffer());
			}
		}
		for (int i=0 ; i<actions.size() ; i++)
		{
			BufferAction ba = actions.elementAt(i);
			ba.fire (inst);
		}
		
		timesFired ++;
	}