Implementing an immutable dictionary by overriding the modification methods of a dictionary [1]