public void exec() throws ConsoleException {
		String node = this.parameters.get(NODE_PARAM);
		String key = this.parameters.get(KEY_PARAM);
		String value = this.parameters.get(VALUE_PARAM);
		if ((node == null) || (node.length() == 0)) {
			throw new ConsoleException("Not enough parameters! " + NODE_PARAM
					+ " is missing.");
		}
		if ((key == null) || (key.length() == 0)) {
			throw new ConsoleException("Not enough parameters! " + KEY_PARAM
					+ " is missing.");
		}
		if ((value == null) || (value.length() == 0)) {
			throw new ConsoleException("Not enough parameters! " + VALUE_PARAM
					+ " is missing.");
		}
		URL url = null; 
		try {
			url = new URL(URL.KNOWN_PROTOCOLS.get(URL.LOCAL_PROTOCOL) + "://" + node + "/");
		} catch (MalformedURLException e1) {
			throw new ConsoleException(e1.getMessage());
		} 
		Key keyObject = new Key(key);
		Value valueObject = new Value(value);

		ThreadEndpoint ep = Registry.getRegistryInstance().lookup(url);
		if (ep == null) {
			this.out.println("Node '" + node + "' does not exist!");
			return;
		}
		try {
			ChordImplAccess.fetchChordImplOfNode(ep.getNode()).remove(keyObject,
					valueObject);
		} catch (Throwable t) {
			ConsoleException e = new ConsoleException(
					"Exception during execution of command. " + t.getMessage());
			e.setStackTrace(t.getStackTrace());
			throw e;
		}
		this.out.println("Value '" + value + "' with key '" + key
				+ "' removed " + "successfully from node '" + node + "'.");
	}