Modified to accept Puzzle as a config