The way the code is right now, in order to check while adding will have to override the Add method on dictionary to do the check and then add. In the next change this will mechanism will anyway be replaced with factory and options, until then I propose to keep this as is. Please let me know if you disagree.