tag handling refactor: :o-tag represents the node actual tag, :tag represents the needed tag.