What does `begin ... end` do here? Why not `name = case ... end`