generics improvements