change the way generics are handled