This function is pretty long. What do you think about breaking it up? The thing that really jumps out at me is having a separate function to handle the results of calling `enough_results` to get rid of the nested `case` there.