@Override
	public boolean check() {
		// use super.check() to check the executor, then to check the distributor.
		if ( super.check() ) {
			try {
				this.distributor = Class.forName(this.dis);
			} catch (ClassNotFoundException e) {
				System.out.println("InnerNode " + this.name + " : " + " Distributor " + this.dis + " cannot be found.");
				return false;
			}
			try {
				this.disMethod = this.distributor.getMethod("distribute", String.class);
			} catch (SecurityException e) {
				System.out.println("InnerNode " + this.name + " : " + " Distributor " + this.dis + "'s ditribute method cannot be reached due to security problems.");
				return false;
			} catch (NoSuchMethodException e) {
				System.out.println("InnerNode " + this.name + " : " + " Distributor " + this.dis + "'s ditribute method cannot be found.");
				return false;
			}
			if ( checkNext() ) {
				return true;
			}
			else {
				return false;
			}
		}
		return false;
	}