refactor and add ID to FNP