was a mess, remains a mess.
it is copied from TrajectoryState that in the meanwhile got a major uplift (and speedup)
not sure such a complex implementation is really need.