guard against empty strings