public Vector<Site> findBabySites() {
        Vector<Site> babySites = new Vector<Site>();

        for (int m = -1; m <= 1; m++) {
            for (int n = -1; n <= 1; n++) {
                Site site;
                int x = xPosition + m;
                int y = yPosition + n;
                if (x >= 0 && x < sim.xSize && y >= 0 && y < sim.ySize) {
                    site = sim.grid[x][y];
                    Agent occ = site.getAgent();
                    if (occ == null) {
                        babySites.addElement(site);
                    }
                }
            }
        }
        Collections.shuffle(babySites);
        return babySites;
    }