public static CustomButton doDescriptionSearchButton(
			final JTextArea searchWords) {
		final CustomButton a = new CustomButton("search");
		// final ArrayList<String> tickers = new ArrayList<String>();
		a.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				JFrame searchResultFrame = new JFrame("Search Results: "
						+ searchWords.getText());
				searchResultFrame.setSize(1300, 650);
				searchResultFrame.setVisible(true);
				searchResultFrame
						.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
				JScrollPanelledPane tickerScroll = new JScrollPanelledPane();
				searchResultFrame.add(tickerScroll);
				String reformated = format(searchWords.getText().toLowerCase());
				String[] searchParams = reformated.split(" ");
				ArrayList<String> bundle = new ArrayList<String>();
				for (Entry<String, String> ent : Database.DESCRIPTIONS
						.entrySet()) {
					String ticker = ent.getKey();
					String description = ent.getValue().toLowerCase();

					for (String searcher : searchParams) {
						if (description.contains(searcher)) {
							CustomButton tickerButton = JComponentFactory
									.doIndividualTickerButtonForPanel(bundle,
											ticker, a.getText(),
											searchResultFrame,
											NON_EARNINGS_REPORT);
							// tickerButton.setBackground(new
							// Color(100,140,255));
							if (tickerButton != null) {
								tickerButton.setMinimumSize(new Dimension(300,
										45));
								tickerScroll.addComp((tickerButton));
							}
						}
					}
				}
				doStatInfoForBundleVsMarket(bundle);

			}

			private String format(String lowerCase) {
				while (lowerCase.contains("  ")) {
					lowerCase = lowerCase.replaceAll("  ", " ");
				}
				return lowerCase.trim();
			}

		});
		return a;
	}