need WrapperProxy collections
In order to not expose accessors, while also not implementing 5000000 glue methods (add, remove, get, set, etc.) we need to have collections that wrap their non-generic alternatives, and do conversions between wrapped and unwrapped values on demand.