Working puzzle generation