handle exceptions when creating folders/files
catch exception when there is no file; return None instead
added TODOs; fixed File.checksum
check_home_dir -> scan_home_dir
use generator