Generic: moved to more straightforward typeclass
Generic: use type tags to dynamically get the numeric