I'd prefer if we use match data here instead of magic semi globals