private BufferedImage process(BufferedImage old) {
            int w = old.getWidth();
            int h = old.getHeight();
            BufferedImage img = new BufferedImage(
                    w, h, BufferedImage.TYPE_INT_ARGB);
            Graphics2D g2d = img.createGraphics();
            g2d.drawImage(old, 0, 0, null);
            if(!localClues.isEmpty()) {
                for(Clue clue : localClues) {
                    Position p = clue.getCrossing().getPos();
                    p = convert(p);
                    int x = (int) p.getX();
                    int y = (int) p.getY();

                    g2d.setPaint(SimulationGUI.localClueCol);
                    Ellipse2D.Double circle = new Ellipse2D.Double(x-circleDiameter/2, y-circleDiameter/2, SimulationGUI.circleDiameter, SimulationGUI.circleDiameter);
                    g2d.fill(circle);
                }
            }
            if(runnerDestination!=null) {
                Position p = runnerDestination.getPos();
                p = convert(p);
                int x = (int) p.getX();
                int y = (int) p.getY();

                g2d.setPaint(SimulationGUI.destCol);
                Ellipse2D.Double circle = new Ellipse2D.Double(x-circleDiameter/2, y-circleDiameter/2, SimulationGUI.circleDiameter, SimulationGUI.circleDiameter);
                g2d.fill(circle);
            }
            if(globalClue!=null) {
                Position p = globalClue.getCrossing().getPos();
                p = convert(p);
                int x = (int) p.getX();
                int y = (int) p.getY();

                g2d.setPaint(SimulationGUI.globalClueCol);
                Ellipse2D.Double circle = new Ellipse2D.Double(x-circleDiameter/2, y-circleDiameter/2, SimulationGUI.circleDiameter, SimulationGUI.circleDiameter);
                g2d.fill(circle);
            }
            if(catchersCrossings!=null) {
                for(Crossing c : catchersCrossings) {
                    Position p = c.getPos();
                    p = convert(p);
                    int x = (int) p.getX();
                    int y = (int) p.getY();

                    g2d.setPaint(SimulationGUI.catcherCol);
                    Ellipse2D.Double circle = new Ellipse2D.Double(x-circleDiameter/2, y-circleDiameter/2, SimulationGUI.circleDiameter, SimulationGUI.circleDiameter);
                    g2d.fill(circle);
                }
            }
            if(runnerCrossing!=null) {
                Position p = runnerCrossing.getPos();
                p = convert(p);
                int x = (int) p.getX();
                int y = (int) p.getY();

                g2d.setPaint(SimulationGUI.runnerCol);
                Ellipse2D.Double circle = new Ellipse2D.Double(x-runnerCircleDiameter/2, y-runnerCircleDiameter/2, SimulationGUI.runnerCircleDiameter, SimulationGUI.runnerCircleDiameter);
                g2d.fill(circle);

            }



            g2d.dispose();
            return img;
        }