add puzzles,refactor hidden candidates