Equality comparers added.
Naming convention slightly changed.
Using equality comparer.
Using ContainsKey.