only lazy load if actually a string