NPuzzle final version