add n_puzzle and enhance problem definition and search engine accordingly