The GenClass abstract class defines a base set of methods that are generally available
for template usage on class-type objects
This is done with an abstract class (instead of an interface) so derived abstract classes
can be subclassed from it w/out requiring all of the methods to be declared there.