1. use argv.speak to always get correct #{q}
2. use createWriteFileStream to prevent incompletely download file
close file when fileStream ended