refactored DefaultExecutor to ExternalProcessExecutor