improvements to generics definition