The Puzzle Solver