pretty cool. how are you deciding or generating puzzles ?