public void simulateOneStep()
    {
        step++;

        // Provide space for newborn actors.
        List<Actor> newActors = new ArrayList<Actor>();
        
        // avoid being being interrupted
        try{
	        	if (actors != null)
	        	{
				    // Let all actors act.
				    for(Iterator<Actor> it = actors.iterator(); it.hasNext();) {
				        Actor actor = it.next();
				        actor.act(newActors);
				        if (actor instanceof Animal)		//	check if actor is an animal
				        {
				        	Animal animal = (Animal) actor;
				        	if(! animal.isAlive()) {
				                it.remove();
				            }
				        }
				        else if (actor instanceof Plant)
				        {
				        	Plant plant = (Plant) actor;
				        	if(! plant.isAlive()) {
				                it.remove();
				            }
				        }
				    }
	        	}
        	}
    		catch (ConcurrentModificationException e)
    		{	
    			simulateOneStep();
        	}
        // Add the newly born foxes and rabbits to the main lists.
        actors.addAll(newActors);

        view.showStatus(step, field);
    }