That’s race conditions, as a result of using a List on a data type. Just use a search.
Yes, and overengineering something like this tends to cause more problems than it solved.