Probably a horrible idea, but committing just to save the failed iterative version.