generalpuzzlesolver