follow pep8 with parameter naming for classmethods
don't use __class__ if not necessary
use a file system lock to synchronise download section
fix test (bad merge)
use os.open to get file descriptor