various puzzle solvers