public void step() {
    parentFrame.getWorld().step();
    parentFrame.repaint();
    if (++numStepsSoFar == numStepsToRun)
        stop();
    Grid<T> gr = parentFrame.getWorld().getGrid();
    
    for (Location loc : gr.getOccupiedLocations())
        addOccupant(gr.get(loc));
}