pull apart the result set mutation and the decision about whether to recurse