@Override
	public void run() {
    	
    	try {
			this.previous = this.getSelectedText(User32.INSTANCE, CustomUser32.INSTANCE);
		} catch (Exception e) {
			this.previous = null;
		}
    	
		while (this.turnedOn) {
			
			String selectedText = null;
			
			if (this.isThereAnySubs()) {
				try {
					selectedText = this.getSelectedText(User32.INSTANCE, CustomUser32.INSTANCE);
				} catch (Exception e) {
					e.printStackTrace();
					selectedText = null;
				}
			}
			
			// set highlighted
			if (selectedText != null && !selectedText.equals(this.previous)) {
				this.highlighted = selectedText;
				this.previous = selectedText;
				this.notifyAllSubs();
			}
			
			try {
				Thread.sleep(3000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}