As described here: http://codekata.com/kata/codekata-intro/