Right now to search for children of a node we iterate over the map which basically requires to go over the whole map, if we add child references to each block this can be done in O(number of decedents). A graph adjacency list or doubly linked link list can solve this.
Originally addressed here & here