My implementation of Dave Thomas' Code Kata (http://codekata.com)