added puzzle generator