private void totallyFilled() {
        repeats++;

        //if we're not at the maximum amount of repeats...
        if (repeats < DMAXREPEATS) {
            //Remove half of the circles!
            for (int i = 0; i < DMAXCIRCLES / 2; i++) {
                int j = (int) (r.nextDouble() * others.size());
                others.remove(j);
            }

            System.out.printf("%2.0f, ", maxrad);
            maxrad = 0;

            //let's clean the slate.
            Graphics2D g2 = (Graphics2D) bi.getGraphics();
            g2.setColor(Color.WHITE);
            g2.fillRect(0, 0, DWIDTH, DHEIGHT);

            for (Circle subject : others) {
                //if BLACKEN mode is on, then give all of the old circles the color black...
                if (DBLACKEN)
                    subject.c = Color.BLACK;
                
                drawCircle(subject, g2);
            }

            //let's not forget our foci.
            //In retrospect, this is actually kinda bad.
            for (Circle subject : foci) {
                if (subject == null) {
                    continue;
                }
                
                if (DBLACKEN) //I really SHOULDN'T blacken my old foci... Well. Whatevs.
                    subject.c = Color.BLACK;

                drawCircle(subject, g2);
            }
        } else {
            //LET'S CLEAR EVERYTHING, if we ran out of repeats.
            System.out.printf("%2.0f\n", maxrad);
            
            others.clear();

            for (int i = 0; i < DFOCI; i++) {
                foci[i] = null;
            }

            Graphics2D g2 = (Graphics2D) bi.getGraphics();
            g2.setColor(Color.WHITE);
            g2.fillRect(0, 0, DWIDTH, DHEIGHT);

            maxrad = 0;
            repeats = 0;

            System.gc(); //let's garbage collect all of the old circles. 
            //Probably not necessary, though.
        }
    }