@Override
	protected Void call() throws Exception {
		while(!isCancelled()) {
			try {
			if(removeUsers.size() > 0) {
				app.setLoading(true);

				for(String name : removeUsers) {
					app.getClient().removeWatchedUser(name);
				}

				removeUsers.clear();
				app.setLoading(false);
			}

			if(addUsers.size() > 0) {
				app.setLoading(true);

				for(final String name : addUsers) {
					final int result = Client.getInstance().addWatchedUser(name, app);
					Platform.runLater(new Runnable(){
						@Override
						public void run() {
							app.onAddUser(name, result);
						}
					});
				}

				addUsers.clear();
				app.setLoading(false);
			}

			if(nextUpdate <= 0) {
				app.setLoading(true);
				app.getClient().updateWatchedUsers(app);
				app.setLoading(false);	
				nextUpdate = UPDATE_TIME;
			}

			nextUpdate -= 100;
		} catch(Exception e) {e.printStackTrace();}
			Thread.sleep(100);
		}

		return null;
	}