migrating to Java 8
added the experimental TypeVariableProxy class