REF: make FrameApply less stateful, no self.results
Passing `results` through the call chain instead of accessing it in each place as `self.results`  makes this code much easier to reason about.
updated+green