use the with statement
use with statement + return code
use urllib2 to download stuff
use with statement
enables 'with' statement for unbuffered files

even though I don't use that feat ...
OK to use subprocess, hashlib
use with statement