add dublicate check