A reimplementation of the project I started earlier. Going over this again because I would like to make sure blogged progress report is accurate and that TDD cycle is followed.