handle empty strings
handle empty strings