Now I am trying to move pseudo node generation from push_node() to construct_recursively() because pseudo element seems to have its own box generator to cover pseudo element with display = block. In current design, pseudo element with display = inline is only considered.