yeah i actually thought of that and thought of splitting `rebuild_case` into two functions, but the API got a bit hairier.