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