docs: public Receiver open(Receiver receiver)// throws IOException
  	{
  		this.receiver = receiver;
  
  		Runtime rt = Runtime.getRuntime();
  		//command + arguments, environment parameters, workingdir
  		try {
  			proc = rt.exec(commandArray, null, workingDir);
  		}
  		catch (IOException e) {
  			throw new RuntimeException("can not start command shell [" + ArraySupport.format(commandArray, ",") + "] + in directory " + workingDir);
  		}
  
  		// any error message?
  		errorForwarder = new
  				Transponder(proc.getErrorStream(), new Pipe(receiver, new NewLineFilter()));
  
  		// any output?
  		outputForwarder = new
  				Transponder(proc.getInputStream(), new Pipe(receiver, new NewLineFilter()));
  
  		errorForwarder.start();
  		outputForwarder.start();
  
  		return receiver;
  	}