Balsa strings are read one character at a time starting at the leftmost character and finishing at the rightmost character. The first character sets an initial Readers that capture atom-atom connectivity will typically maintain a reference to a hub. A hub is an atom to which the next node will be connected. On reading the first complete atom non-terminal, the corresponding atom is constructed and set as the hub. Subsequently processing a complete union, branch, or gap non-terminal triggers three changes: (1) a child node is constructed; (2) the child is connected to the current hub, unless a dot non-terminal intervenes; and (3) the hub is replaced with the child node if it is an atom.