ideabox tutorial redone from beginning using TDD