Moved recursive frame funcs to base class

They don't really need to be subclassed, and eventually I might be able
to make them tail recursive...