early work on generics