Pseudo element new

Hi, This is pseudo node. We take effort to make simple.

Step 1. Create Pseudo Node which are before or after.
Step 2 - 1. If Before,  Insert Pseudo Node in Current Node Data.
           - 2. If After and exist last child, Insert Pseudo Node in Last Child Node Data(next_after_sibling)
           - 3. If After and not have child, Insert Pseudo Node in Current Node data.
Step 3 -1   If exist Before when call first_child function, return before node after link first_child, after or not.
           - 2   If only exit after, return after
           - 3   If don't have any pseudo element, return first_child of current node.
Step 4 - 1  If exist next_after_sibling when call next_sibling function, return next_after_sibling node
            - 2 If not have next_after_sibling, return next_sibling of current node.