improved generics support