disallow empty strings