add duplicate checking and puk1 checking