Why do i need to pass in the generics here? - C#