Just a minor remark. It's usually better to have positive APIs, e.g. `track(i).hasMother()` rather than a double negation `!track(i).noMother()`. Thank you for cleaning up the static.