refactor generators to use letfn