@typeinfo to mitigate some damage from type erasure