only set if not already set