primary value will handle empty string better