yeah, basically type coercion/checking and interfaces have replaced generics in some (not all) use cases