pre-pruning, but with values iterating correctly (except weird blip at the end of each call for AB)