private void initialize() {
		//get a database connection
		cnxn = DBConnector.getConnection();
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnsupportedLookAndFeelException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//creaet the frame
		strframe = new JFrame();
		strframe.setTitle("SecTweet");
		strframe.setBounds(100, 100, 1200, 900);
		strframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		strframe.getContentPane().setLayout(new BorderLayout(0, 0));
		
		//create the row of tabs
		JTabbedPane tabPane = new JTabbedPane(JTabbedPane.TOP);
		tabPane.setBorder(null);
		strframe.getContentPane().add(tabPane, BorderLayout.NORTH);
		
		//create the account pane: used for login/register, TODO: implement delete account 
		JPanel accountPane = new JPanel();
		accountPane.setBorder(null);
		tabPane.addTab("Account", null, accountPane, null);
		accountPane.setLayout(new BorderLayout(0, 0));
		accountPane.setIgnoreRepaint(true);
		
		//create the login area
		JPanel loginPanel = new JPanel();
		loginPanel.setPreferredSize(new Dimension(125, 155));
		loginPanel.setMinimumSize(new Dimension(125, 155));
		loginPanel.setIgnoreRepaint(true);
		accountPane.add(loginPanel);
		loginPanel.setLayout(new GridLayout(5, 3, 0, 0));
		
		//create the username label
		JLabel lblUserName = new JLabel("Username: ");
		lblUserName.setMinimumSize(new Dimension(75, 15));
		lblUserName.setIgnoreRepaint(true);
		lblUserName.setPreferredSize(new Dimension(75, 15));
		lblUserName.setMaximumSize(new Dimension(75, 15));
		lblUserName.setHorizontalAlignment(SwingConstants.TRAILING);
		loginPanel.add(lblUserName);
		
		//create the username text field
		fldUserName = new JTextField();
		fldUserName.setMinimumSize(new Dimension(75, 15));
		fldUserName.setIgnoreRepaint(true);
		fldUserName.setPreferredSize(new Dimension(75, 15));
		fldUserName.setMaximumSize(new Dimension(75, 15));
		loginPanel.add(fldUserName);
		fldUserName.setColumns(10);
		
		//fill spot in grid
		JLabel lblPlaceHolder1 = new JLabel("");
		lblPlaceHolder1.setMinimumSize(new Dimension(75, 15));
		lblPlaceHolder1.setIgnoreRepaint(true);
		lblPlaceHolder1.setPreferredSize(new Dimension(75, 15));
		lblPlaceHolder1.setMaximumSize(new Dimension(75, 15));
		loginPanel.add(lblPlaceHolder1);
		
		//create the password label
		JLabel lblPassword = new JLabel("Password: ");
		lblPassword.setMinimumSize(new Dimension(75, 15));
		lblPassword.setIgnoreRepaint(true);
		lblPassword.setPreferredSize(new Dimension(75, 15));
		lblPassword.setMaximumSize(new Dimension(75, 15));
		lblPassword.setHorizontalAlignment(SwingConstants.TRAILING);
		loginPanel.add(lblPassword);
		
		//create the password text field
		fldPassword = new JPasswordField();
		fldPassword.setMinimumSize(new Dimension(75, 15));
		fldPassword.setIgnoreRepaint(true);
		fldPassword.setPreferredSize(new Dimension(75, 15));
		fldPassword.setMaximumSize(new Dimension(75, 15));
		fldPassword.setColumns(10);
		loginPanel.add(fldPassword);
		
		//fill the grid
		JLabel lblPlaceHolder2 = new JLabel("");
		lblPlaceHolder2.setMinimumSize(new Dimension(75, 15));
		lblPlaceHolder2.setIgnoreRepaint(true);
		lblPlaceHolder2.setPreferredSize(new Dimension(75, 15));
		lblPlaceHolder2.setMaximumSize(new Dimension(75, 15));
		loginPanel.add(lblPlaceHolder2);
		
		//fill the grid
		JLabel lblPlaceHolder3 = new JLabel("");
		lblPlaceHolder3.setMinimumSize(new Dimension(75, 15));
		lblPlaceHolder3.setIgnoreRepaint(true);
		lblPlaceHolder3.setPreferredSize(new Dimension(75, 15));
		lblPlaceHolder3.setMaximumSize(new Dimension(75, 15));
		loginPanel.add(lblPlaceHolder3);
		
		//label to hold access success/failure message
		lblAccessMessage = new JLabel();
		lblAccessMessage.setMinimumSize(new Dimension(75, 15));
		lblAccessMessage.setIgnoreRepaint(true);
		lblAccessMessage.setPreferredSize(new Dimension(75, 15));
		lblAccessMessage.setMaximumSize(new Dimension(75, 15));
		lblAccessMessage.setEnabled(false);
		lblAccessMessage.setHorizontalAlignment(SwingConstants.CENTER);
		loginPanel.add(lblAccessMessage);
		
		//fill the grid
		JLabel lblPlaceHolder4 = new JLabel("");
		lblPlaceHolder4.setMinimumSize(new Dimension(75, 15));
		lblPlaceHolder4.setIgnoreRepaint(true);
		lblPlaceHolder4.setPreferredSize(new Dimension(75, 15));
		lblPlaceHolder4.setMaximumSize(new Dimension(75, 15));
		loginPanel.add(lblPlaceHolder4);
		
		//fill the grid
		JLabel lblPlaceHOlder5 = new JLabel("");
		lblPlaceHOlder5.setMinimumSize(new Dimension(75, 15));
		lblPlaceHOlder5.setIgnoreRepaint(true);
		lblPlaceHOlder5.setPreferredSize(new Dimension(75, 15));
		lblPlaceHOlder5.setMaximumSize(new Dimension(75, 15));
		loginPanel.add(lblPlaceHOlder5);
		
		//create the login button
		JButton btnLogin = new JButton("Login");
		btnLogin.setMinimumSize(new Dimension(75, 15));
		btnLogin.setIgnoreRepaint(true);
		btnLogin.setPreferredSize(new Dimension(75, 15));
		btnLogin.setMaximumSize(new Dimension(75, 15));
		loginPanel.add(btnLogin);
		btnLogin.addMouseListener(this);
		
		//fill the grid
		JLabel lblPlaceHolder6 = new JLabel("");
		lblPlaceHolder6.setMinimumSize(new Dimension(75, 15));
		lblPlaceHolder6.setIgnoreRepaint(true);
		lblPlaceHolder6.setPreferredSize(new Dimension(75, 15));
		lblPlaceHolder6.setMaximumSize(new Dimension(75, 15));
		loginPanel.add(lblPlaceHolder6);
		
		//create the register button
		JButton btnRegButton = new JButton("Register");
		btnRegButton.setMinimumSize(new Dimension(75, 15));
		btnRegButton.setIgnoreRepaint(true);
		btnRegButton.setPreferredSize(new Dimension(75, 15));
		btnRegButton.setMaximumSize(new Dimension(75, 15));
		btnRegButton.addMouseListener(this);
		
		//fill the grid
		JLabel lblPlaceHolder7 = new JLabel("");
		lblPlaceHolder7.setMinimumSize(new Dimension(75, 15));
		lblPlaceHolder7.setIgnoreRepaint(true);
		lblPlaceHolder7.setPreferredSize(new Dimension(75, 15));
		lblPlaceHolder7.setMaximumSize(new Dimension(75, 15));
		loginPanel.add(lblPlaceHolder7);
		loginPanel.add(btnRegButton);
		
		//fill the grid
		JLabel lblPlaceHolder8 = new JLabel("");
		lblPlaceHolder8.setMinimumSize(new Dimension(75, 15));
		lblPlaceHolder8.setIgnoreRepaint(true);
		lblPlaceHolder8.setPreferredSize(new Dimension(75, 15));
		lblPlaceHolder8.setMaximumSize(new Dimension(75, 15));
		loginPanel.add(lblPlaceHolder8);
		btnRegButton.addActionListener(this);
		
		//create the feed pane
		feedPane = new JPanel();
		feedPane.setBorder(null);
		tabPane.addTab("Feed", null, feedPane, null);
		feedPane.setLayout(new GridLayout(1, 0, 0, 0));
		
		//create the panel that will hold the populated feed
		feedContentPanel = new JPanel();
		feedPane.setAutoscrolls(true);
		feedPane.add(feedContentPanel);
		feedContentPanel.setLayout(FEED_CONTENT_PAN_DFLT_LAYOUT);
		
		//create the add tweet pane
		JPanel tweetPane = new JPanel();
		tweetPane.setBorder(null);
		tweetPane.setIgnoreRepaint(true);
		tabPane.addTab("Tweet", null, tweetPane, null);
		tweetPane.setLayout(new BorderLayout(5, 0));
		
		//create the panel that holds the compose label and char counter
		JPanel panCounter = new JPanel();
		tweetPane.add(panCounter, BorderLayout.WEST);
		panCounter.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
		
		//create the label that tells you to compose a tweet
		JLabel lblComposeTweet = new JLabel("Compose Tweet");
		panCounter.add(lblComposeTweet);
		lblComposeTweet.setHorizontalAlignment(SwingConstants.TRAILING);
		lblComposeTweet.setVerticalAlignment(SwingConstants.BOTTOM);
		
		//create the label that tells you how many characters you have remaining
		lblCharRemaining = new JLabel("140");
		lblCharRemaining.setHorizontalAlignment(SwingConstants.TRAILING);
		panCounter.add(lblCharRemaining);
		lblCharRemaining.setVerticalAlignment(SwingConstants.TOP);
		
		//create the text entry panel (tweet + path)
		JPanel panEntry = new JPanel();
		tweetPane.add(panEntry);
		panEntry.setLayout(new GridLayout(1, 2, 5, 0));
		
		//create the tweet text entry area
		txtAreaTwet = new JTextArea();
		panEntry.add(txtAreaTwet);
		txtAreaTwet.setMaximumSize(new Dimension(2147483647, 100));
		txtAreaTwet.setAutoscrolls(false);
		txtAreaTwet.setTabSize(0);
		txtAreaTwet.setWrapStyleWord(true);
		txtAreaTwet.setLineWrap(true);
		txtAreaTwet.setBorder(new LineBorder(new Color(0, 0, 0), 1, true));
		txtAreaTwet.setRows(4);
		txtAreaTwet.setColumns(35);
		
		//create the key path entry area
		txtAreaKeyPath = new JTextArea();
		panEntry.add(txtAreaKeyPath);
		txtAreaKeyPath.setMaximumSize(new Dimension(2147483647, 100));
		txtAreaKeyPath.setBorder(new LineBorder(new Color(0, 0, 0), 1, true));
		txtAreaKeyPath.setLineWrap(true);
		txtAreaKeyPath.setRows(4);
		txtAreaKeyPath.setColumns(35);
		txtAreaTwet.addKeyListener(this);
		
		//create the label describing what to put in the key path area
		JTextArea lblEnterPrivateKey = new JTextArea("Enter path to your private key. \n\nExample: \n\nC:\\\\Users\\\\Sam\\\\Desktop\\\\keys");
		lblEnterPrivateKey.setOpaque(false);
		lblEnterPrivateKey.setEditable(false);
		lblEnterPrivateKey.setWrapStyleWord(true);
		tweetPane.add(lblEnterPrivateKey, BorderLayout.EAST);
		
		//create the add tweet button
		JButton btnAddTweet = new JButton("Add Tweet");
		btnAddTweet.addMouseListener(this);
		tweetPane.add(btnAddTweet, BorderLayout.NORTH);
		
		//create the follows pane		
		JPanel followPane = new JPanel();
		followPane.setBorder(null);
		tabPane.addTab("Follows", null, followPane, null);
		
		//create the panel that holds the populated content
		JPanel followUserPanel = new JPanel();
		followUserPanel.setPreferredSize(new Dimension(500, 50));
		followUserPanel.setLayout(new GridLayout(2, 3, 0, 0));
		
		//create the label instructing you to search for a user to follow
		JLabel lblSearchForUser = new JLabel("Search for user to follow");
		lblSearchForUser.setHorizontalAlignment(SwingConstants.TRAILING);
		lblSearchForUser.setMaximumSize(new Dimension(50, 25));
		lblSearchForUser.setPreferredSize(new Dimension(50, 25));
		lblSearchForUser.setMinimumSize(new Dimension(50, 25));
		followUserPanel.add(lblSearchForUser);
		
		//create the username entry field for search
		fldSearchForUser = new JTextField();
		fldSearchForUser.setMaximumSize(new Dimension(50, 25));
		fldSearchForUser.setPreferredSize(new Dimension(50, 25));
		fldSearchForUser.setMinimumSize(new Dimension(50, 25));
		followUserPanel.add(fldSearchForUser);
		fldSearchForUser.setColumns(50);
		
		//create the follow button
		JButton btnSearchFollow = new JButton("Follow");
		btnSearchFollow.setMaximumSize(new Dimension(50, 25));
		btnSearchFollow.setPreferredSize(new Dimension(50, 25));
		btnSearchFollow.setMinimumSize(new Dimension(50, 25));
		btnSearchFollow.addMouseListener(this);
		followPane.setLayout(new BorderLayout(0, 0));
		followUserPanel.add(btnSearchFollow);
		
		//fill the grid
		JLabel lblPlaceHolder9 = new JLabel("");
		lblPlaceHolder9.setMinimumSize(new Dimension(50, 25));
		lblPlaceHolder9.setMaximumSize(new Dimension(50, 25));
		lblPlaceHolder9.setPreferredSize(new Dimension(50, 25));
		followUserPanel.add(lblPlaceHolder9);
		
		//create the follow request success/failure message
		lblFollowMessage = new JLabel("");
		lblFollowMessage.setMinimumSize(new Dimension(50, 25));
		lblFollowMessage.setMaximumSize(new Dimension(50, 25));
		lblFollowMessage.setPreferredSize(new Dimension(50, 25));
		lblFollowMessage.setHorizontalAlignment(SwingConstants.CENTER);
		followUserPanel.add(lblFollowMessage);
		
		//fill the grid
		JLabel lblPlaceHolder10 = new JLabel("");
		lblPlaceHolder10.setMinimumSize(new Dimension(50, 25));
		lblPlaceHolder10.setMaximumSize(new Dimension(50, 25));
		lblPlaceHolder10.setPreferredSize(new Dimension(50, 25));
		followUserPanel.add(lblPlaceHolder10);
		followPane.add(followUserPanel, BorderLayout.NORTH);
		
		//create the pane that will hold detail about users followed, following, and requesting to follow
		followUsersDetailPanel = new JPanel();
		followPane.add(followUsersDetailPanel, BorderLayout.SOUTH);
		//panel_1.setLayout(new BorderLayout());
		
		
	}