used os.makedirs instead of os.mkdir to be more lenient on non existing sub-dirs