key helpers now use strings.Join