updated to explain n = ARGV[0].to_i