private synchronized boolean evaluateLoadClause(String address) throws InterruptedException {
		if (address == null || address.equals("")) {
			out(ScriptEvent.FAILED, "Missing an address to load.");
			return false;
		}
		model.stopImmediately();
		if (model.isLoading())
			return false;
		try {
			Thread.sleep(100); // sleep 100 ms in order for the force calculation to finish
		} catch (InterruptedException e) {
			throw new InterruptedException();
		}
		if (FileUtilities.isRelative(address)) {
			Object o = model.getProperty("url");
			if (o == null) {
				out(ScriptEvent.FAILED, "Codebase missing.");
				return false;
			}
			address = FileUtilities.getCodeBase((String) o) + address;
		}
		view.removeAllLayeredComponents(); // make sure they are gone in case of an exception
		if (MDContainer.isApplet() || FileUtilities.isRemote(address)) {
			URL url = null;
			try {
				url = new URL(FileUtilities.httpEncode(address));
			} catch (MalformedURLException e) {
				e.printStackTrace();
			}
			if (url != null) {
				ConnectionManager.sharedInstance().setCheckUpdate(true);
				model.input(url);
			}
		} else {
			model.input(new File(address));
		}
		/* Do we really need to sleep in the following? */
		try {
			Thread.sleep(100);
		} catch (InterruptedException e) {
			stop();
			throw new InterruptedException();
		}
		notifyChange();
		model.setProgress(0, "Done");
		return true;
	}