generics some progress