updated generics