private synchronized boolean evaluateLoadClause(String address, boolean reset) throws InterruptedException {
		if (address == null || address.equals("")) {
			out(ScriptEvent.FAILED, "Missing an address to load.");
			return false;
		}
		model.stopImmediately();
		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)) {
			if (view.getResourceAddress() == null) {
				out(ScriptEvent.FAILED, "Codebase missing.");
				return false;
			}
			address = FileUtilities.getCodeBase(view.getResourceAddress()) + address;
			URL u = ConnectionManager.sharedInstance().getRemoteLocation(address);
			if (u != null)
				address = u.toString();
		}
		if (FileUtilities.isRemote(address)) {
			URL url = null;
			try {
				url = new URL(FileUtilities.httpEncode(address));
			}
			catch (MalformedURLException e) {
				e.printStackTrace(System.err);
			}
			if (url != null) {
				ConnectionManager.sharedInstance().setCheckUpdate(true);
				view.getMolecularContainer().input(url, reset);
			}
		}
		else {
			view.getMolecularContainer().input(new File(address), reset);
		}
		/* Do we really need to sleep in the following? */
		try {
			Thread.sleep(100);
		}
		catch (InterruptedException e) {
			stop();
			throw new InterruptedException();
		}
		model.notifyChange();
		return true;
	}