must impliment a check for duplicates