still working on / experimenting with self-balancing trees (ugh).