Kata 19: http://codekata.pragprog.com/2007/01/kata_nineteen_w.html