Seperated working code from delivery code. Changed working code to
compute performance parameters. Added puzzles. Added tests on puzzles.