Factored out Generics.