- When removing entries, ensure the dictionary entry is removed is the list is emptied, to prevent incorrect lookups later. - Prevent NRE when calling GetOrDefault<T> where T is a value type and the default is returned. - Use a single dictionary for simplicity and improved lookup performance (since there is only one dictionary to check). - De-duplicate code in Get and GetOrDefault.