What does Hash.new(0) do here?  Why not just Hash.new?