An exercise in document and test driven development