@Override
	public void execute() {
		try {
			boolean newMember = false;

			String membersList = controller.getConnection().get("members/list/?order=desc&sort=joindate");

			Document doc = Jsoup.parse(membersList);
			Elements links = doc.select("a.username");
			Element link = links.first();
			String username = link.text();
			if (!username.equals(lastFoundUsername)) {
				newMember = true;
				lastFoundUsername = username;
			}

			if (newMember) {
				logger.info("Found new user: " + lastFoundUsername);
				String vcard = controller.getConnection().get("members/" + URLEncoder.encode(lastFoundUsername, "UTF-8") + "/?do=vcard");
				BufferedReader reader = new BufferedReader(new StringReader(vcard));
				String email = "";

				String line;
				while((line=reader.readLine()) != null) {
					if (line.startsWith("EMAIL")) {
						email = line.substring(line.indexOf(":") + 1);
					}
				}

				JsonObject jsonObject = controller.member(lastFoundUsername);
				JsonObject response = jsonObject.getAsJsonObject("response");
				JsonObject prepared = response.getAsJsonObject("prepared");
				int userId = prepared.get("userid").getAsInt();

				Notifier.notify("\'" + lastFoundUsername + "\' Registered",  email, new NotificationEventAdapter() {
					@Override
					public void clicked(NotificationEvent event) {
						super.clicked(event);
						DesktopUtilities.browse(controller.getUrl() + "/infraction.php?do=report&u=" + userId + "&evader=true");
					}
				});
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}