private ArrayList<Desire> findDesires() {
		ArrayList<Desire> returnDesires = new ArrayList<Desire>();

		for (Agent a : level.agents) {
			if (!getToBoxDesireCompleted(a)) {
				for (Box b : level.boxes) {
					//System.err.println("adding box goal with " + b.getId());
					if (a.getColor() == b.getColor()
							&& !(b.getAtField() instanceof Goal && ((Goal) b
									.getAtField()).getId() == b.getId())) {
						returnDesires.add(new Desire(a, b));
					}
				}
			} else {
					for (Goal g : level.goals) {
					//	System.err.println("adding goal goal with " + g.getId());

						if (g.getId() == a.desire.box.getId() && g.object == null) {
							System.err.println("adding desire "+ g.x + "." + g.y);
							returnDesires.add(new Desire(a, a.desire.box, g));
						}
					}
			}
			a.desire = null;

		}

		return returnDesires;
	}