apparently tree data structures aren't built into dart, ah the joys of new programming languages