Props license update
start of refactoring
create output lazily so empty files aren't created, save stderr as destfile.stderr