public FriendsList() {

        loaded = false; //it's currently not loaded

        lastMessage = new Date(Calendar.getInstance().getTimeInMillis());

        //create friends list
        friendsList = new JFrame();

        //menubar for exit and information
        menubar = new JMenuBar();
        icon = new ImageIcon(getClass().getResource("exit.png"));

        file = new JMenu("File");
        file.setMnemonic(KeyEvent.VK_F);

        exitItem = new JMenuItem("Exit", icon);
        exitItem.setMnemonic(KeyEvent.VK_C);
        exitItem.setToolTipText("Exit application");
        exitItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent event) {
                System.exit(0);
            }
        });

        file.add(exitItem);

        help = new JMenu("Help");

        helpItem = new JMenuItem("About");
        helpItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent event) {
                aboutBox();
            }
        });

        help.add(helpItem);

        menubar.add(file);
        menubar.add(help);

        //temporary text until friends are loaded
        String loadText = "<br /><br /><br /><br /><h1>Loading Friends List</h1>";

        fList = new JEditorPane(new HTMLEditorKit().getContentType(), loadText);
        ((HTMLDocument) fList.getDocument()).getStyleSheet().addRule(BODY_CSS); //use default system font
        fList.setEditable(false);
        fList.setContentType("text/html");
        fList.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
        fList.setText(loadText);
        fList.addHyperlinkListener(
                new HyperlinkListener() {
                    // if user clicked hyperlink, go to specified page

                    public void hyperlinkUpdate(HyperlinkEvent event) {
                        if (event.getEventType()
                                == HyperlinkEvent.EventType.ACTIVATED) {
                            if (Controller.checkClient(event.getDescription()) == false) {
                                //start a new chat session and register with controller
                                Thread ct = new Thread(new ChatSession(event.getDescription()));
                                ct.start();
                                Controller.addClient(event.getDescription());
                            }
                        }
                    } // end method hyperlinkUpdate
                } // end inner class
                );

        fScroller = new JScrollPane(fList, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

        friendsList.add(fScroller);

        friendsList.setJMenuBar(menubar);
        friendsList.setTitle(TwitterChat.getTitle() + " Friends List");
        friendsList.setSize(300, 800);
        friendsList.setLocation(10, 10);
        
        //disable shutdown unless user specifically requests exit from menu or system tray
        friendsList.addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
            public void windowIconified(java.awt.event.WindowEvent evt) {
                formWindowIconified(evt);
            }
            public void windowDeiconified(java.awt.event.WindowEvent evt) {
                formWindowDeiconified(evt);
            }
        });
    }