public Main() {

        // Nimbus Look & Feel
        try {
            for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (Exception e) {
            // w/e
        }

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setPreferredSize(new Dimension(800, 600));
        setSize(800, 600);
        setTitle("Artist Collector | WebTech Projekt WS2011/2012 FU Berlin");
        setLocationRelativeTo(null);

        URL startURL = null;
        try {
            startURL = new URL("http://de.wikipedia.org/wiki/Liste_der_Sammlungen_moderner_oder_zeitgen%C3%B6ssischer_Kunst");
        } catch (MalformedURLException e) {
            assert false : "Ungültiger Start-URL";
        }
        pageModel = new PageModel(startURL);
        instance = this;

        initExtractors();

        crawler = new Crawler();

        // Create Form
        mainForm = new MainWindow();
        mainForm.init();
        this.setContentPane(mainForm.getRootPanel());
        //mainForm.redirectSystemStreams();
        mainForm.setTreeModel(crawler.getRootPage());

        this.addKeyListener(new KeyListener() {
            public void keyTyped(KeyEvent e) {

            }

            public void keyPressed(KeyEvent e) {

            }

            public void keyReleased(KeyEvent e) {
                if (e.getKeyCode() == KeyEvent.VK_F2) {
                    crawler.editStartURL();
                    System.out.println("Edit start URL");
                }
            }
        });

        db = new Database();
        if (!db.isReady()) {
            System.out.println("Datenbankzugriff nicht möglich");
        }
    }