Updated generics with wildcards