I tried to use generics to improve existing annotations, but I don't think it changed anything since the annotations for generics are kind of garbage