return empty string in case fail