*none* of the casting was needed due to generics tweaks elsewhere :)