Starting again, proper TDD style.

I got a little caught up in actually solving the issue, and not doing
good TDD. Which meant my code was getting rather messy.