better puzzle check