style: code cleanup
refactor(_ElementSelector): make properties private
perf(_ElementSelector): Remove recursion in addDirective