using duplexer to avoid pause/resume issues more cleanly
avoid pausing issues by pre-loading the process source file