polymorph and generics