add first well-named version of mutually recursive code