private void reInit() {
		// fix/normalize url if possible
		String newURL = AbstractPage.fixURLString(null, textFieldURL.getText());
		
		//TODO: add normalization to path, creation of non-existing dirs request and such.
		String newDir = textFieldDirectory.getText();
		
		if (newURL == null) {
			// fix failed, restoring current root url if one exists
			// FIXME: maybe error status message and leave wrong text in place (for continued editing?)
			if (rootPage != null) {
				textFieldURL.setText(rootPage.url.toString());
				textFieldDirectory.setText(rootPage.saveTo);
			}
			return;
		}
		
		// apply fix
		textFieldURL.setText(newURL);
		
		// check if no change happened
		if (newURL.equals(rootPage.url.toString()) &&
			newDir.equals(rootPage.saveTo)) {
			
			// url and dir did not change. 
			initPrefetch(); // still full rescan.
			return;
		}
			
		// now at least directory or URL changed --> drop old root and start anew
		AbstractPage newRootPage = null;
		try {
			newRootPage = AbstractPage.bakeAPage(null, newURL, newDir, null);
		} catch (IllegalArgumentException e) {
			// fail to make a page out of newURL.
			if (rootPage != null) {
				textFieldURL.setText(rootPage.url.toString());
				textFieldDirectory.setText(rootPage.saveTo);
			}
		}
		
		if (newRootPage != null) {
			rootPage = newRootPage;
			setRootNodeForRootPage();
			
			initPrefetch(); 
		}
	}