CorpusRelay() {
		Image trayIconImage = (new ImageIcon(RESOURCE_TRAYICON, APPLICATION_NAME + " tray icon")).getImage();
		MenuItem menuItem;
		
		systemTray = SystemTray.getSystemTray();
		
		trayIcon = new TrayIcon(trayIconImage);
		trayIcon.setToolTip(APPLICATION_NAME);
		trayIcon.setActionCommand(COMMAND_CURR);
		trayIcon.addActionListener(this);
		
		// Tray icons don't support JPopupMenu (Issue 6285881 has a workaround but fuck that)
		PopupMenu popupMenu = new PopupMenu();
		
		// TODO language constants or whatever

		/*
		menuItem = new MenuItem("Test");
		menuItem.setActionCommand(COMMAND_TEST);
		menuItem.addActionListener(this);
		popupMenu.add(menuItem);
		*/
		
		menuItem = new MenuItem("Show current");
		menuItem.setActionCommand(COMMAND_CURR);
		menuItem.addActionListener(this);
		//menuItem.setFont(menuItem.getFont().deriveFont(Font.BOLD)); // TODO the font is null until rendered?
		popupMenu.add(menuItem);
		
		menuItem = new MenuItem("Configure");
		menuItem.setActionCommand(COMMAND_CONF);
		menuItem.addActionListener(this);
		popupMenu.add(menuItem);
		
		menuItem = new MenuItem("Exit");
		menuItem.setActionCommand(COMMAND_EXIT);
		menuItem.addActionListener(this);
		popupMenu.add(menuItem);
		
		trayIcon.setPopupMenu(popupMenu);
		
		try {
			systemTray.add(trayIcon);
		} catch (AWTException e) {
			Util.die("Unable to add tray icon.");
		}
		
		netThread = new Thread(new NetThread(this));
		netThread.start();
	}