Test driven development.