too many generics?