generics tweaked