corrected generics and wildcards