A small thing we could improve here is to replace `Tuple<Type, Object>` with a private nested class. That way we would use meaningful names throughout the various helper methods instead of *Item1* and *Item2*. 

Please keep in mind that this is not *that* important because the `ProxyGenerator` class and the `Tuple<Type, Object>` are not part of the public API.