solvePuzzle completes instantly on easy puzzles, I still need to test more difficult puzzles however. Changed the isValid, and isSolved method.