generics exercise 1