Reduce()

I'm not exactly happy with this form of Reduce(), it's a little clunky,
but it seems to get the job done.