use yields/function-source
refactor grep string function