add uniqueness check