Follow-up from #40:
With the new _removeAndGetNext logic, I realize this still has the problem of not checking the children of nodes that we're about to remove (e.g. digging through a header node to look for a byline). Perhaps we should try recursively looking through nodes before removing them if we haven't found a byline yet.