applying test driven approach from Ken Beck