private boolean loadPoints() {
        clearCollections();
        
        int retval = fc.showOpenDialog(this);
        if(retval == JFileChooser.APPROVE_OPTION) {
            points_loaded = false;
            File file= fc.getSelectedFile();
            String filename = file.getAbsolutePath(); 
            
            log.append("Loading points from " + filename + "\n");
            try {
                Scanner in = new Scanner(new File(filename));  
                ArrayList<Point> pointList = new ArrayList<Point>(3000);
                while (in.hasNext()) {
                    int x = in.nextInt();
                    int y = in.nextInt();
                    if(x > maxX)
                        maxX = x;
                    if(y > maxY)
                        maxY = y;
                    pointList.add(new Point(x,y));
                    /*
                    Scanner scan = new Scanner(in.nextLine()); 
                    ArrayList<Integer> ps = new ArrayList<Integer>(3);
                    while(scan.hasNext())
                        ps.add(scan.nextInt());
                    points.add(new Point(ps));
                    */
                }
                points = new QuadTree(pointList);
                points_loaded = true;
            } catch (FileNotFoundException e) {
                JOptionPane.showMessageDialog(null, "Could not load file "
                        + filename+", file not found", "Critical Error", JOptionPane.ERROR_MESSAGE);
            } catch (InputMismatchException e) {
                JOptionPane.showMessageDialog(null, "Could not load file "
                        + filename+". This file does not match input format of n" +
                        		" whitespace separated integers on each line", "Critical Error", JOptionPane.ERROR_MESSAGE);
            }
        } 
        tglbtnStart.setEnabled(true);
        return points_loaded;

    }