types for generics