public void step(Grid grid) {
        if(getLocation() != null) {
            hunger += getHungerIncrement();
            if (isOld() || isStarving()) {
                if (isOld()) {
                    Debug.echo("Animal at "+getLocation()+" died due to old age");
                    Stats.recordDeath(this, Stats.OLD_AGE);
                } else {
                    Debug.echo("Animal at "+getLocation()+" died due to starvation");
                    Stats.recordDeath(this, Stats.STARVATION);
                }
                grid.removeAnimal(getLocation());
            } else {
                age++;
                if (!breed(grid)) {
                    act(grid);
                }
            }
        }
    }