I am new to generics and I am not sure if the answer to my question is opinion based or has a genuine reason. In the following code what was need to case a key
If what you want to do with a class requires you jump through hoops, you do. With generics I have had trouble getting it to make sense all the time. sometimes it turns out easier than you would think, other times you try everything you can think of. keep at it.