TDD reporting system

Only introduce framework when it is needed - http://xprogramming.com/xpmag/dbcCallingTheShot.htm
Process of improving - http://xprogramming.com/xpmag/dbcLjuticMonoGun.htm
Introduce reflection - http://xprogramming.com/xpmag/dbcLjuticRefactoring.htm