Updated to allow empty strings