private boolean infectRabbit(Location location,List<Actor> newZombieRabbits)
    {
        Field field = getField();
        List<Location> adjacent = field.adjacentLocations(getLocation(), 1);
        Iterator<Location> it = adjacent.iterator();
        while(it.hasNext()) {
            Location where = it.next();
            Object animal = field.getObjectAt(where);
            if(animal instanceof Rabbit) {
            	Rabbit rabbit = (Rabbit) animal;
            	if(rabbit.isAlive()) { 
            		if(Randomizer.getRandom().nextDouble()>INFECTION_CHANCE)
            		{
            			rabbit.setDead();
            			List<Location> free = field.getFreeAdjacentLocations(getLocation());
    		            Location loc = free.remove(0);
            			ZombieRabbit zombieRabbit = new ZombieRabbit(true, field, loc, rabbit.getAge());
            			newZombieRabbits.add(zombieRabbit);
            			return true;
            		}
            		else
            		{
            			rabbit.setDead();
            			return true;
            		}
                }
            	setLocation(where);
            }
        }
        return false;
    }