I find the following a bit confusing....

```
Dictionary<Type, Object> _typeMap;

public void RegisterType<T>(Object o)
{
    _typeMap.Add(typeof(T), o);
}

```

Why is `typeof(T)` required in the `Add` method? Isn't the `T` type paramater already a `Type`? What else is it?