Final Chapter exercise from Learn Python the Hard Way. In a completely different framework. And in Python 3.