Moved directElementChildrenByTagName (and className) to util so it can
be used by any style of element object, e.g. hint.container()

Change-Id: I542e5c9e92783858865ca265415a57103c7483dd
diff --git a/Changes b/Changes
index 83de611..8650f07 100755
--- a/Changes
+++ b/Changes
@@ -1,24 +1,24 @@
 0.43 2021-07-28
         - New menu class that has an entry at the very end,
           similar to the input text prefix,
-          that is always available (lerepp).
+          that is always available. (lerepp)
         - Fix error message in case of server error (500)
           response.
-        - Added utility funcition to menu that gets all direct
-          childNodes by a tag. Used in menu-style specs. (lerepp)
+        - Added utility funcition to util that gets all direct
+          childNodes of a given element by a tag or class. (lerepp)
         - Remove 'X-Frame-Options' in favor of 'frame-ancestors'
           as a CSP rule.
         - Fix CSS compression for new SASS compiler.
         - Support dynamic menu extensions.
         - Dynamically extend buttongroup menus.
         - Update to menu.js's removeItems function to only delete
-          direct childNodes aswell as a specification to test for it (lerepp)
+          direct childNodes aswell as a specification to test for it. (lerepp)
         - Make actions private in panels and views.
         - Move pagination out of resultinfo.
         - Add support for "adopted" button groups and anchor children
           to prepend to.
         - New menu class that has a container for further
-          entries at the very end that is always available (lerepp).
+          entries at the very end that is always available. (lerepp)
 
 0.42 2021-06-18
         - Added GitHub based CI for perl.
diff --git a/dev/js/spec/alwaysMenuSpec.js b/dev/js/spec/alwaysMenuSpec.js
index 54458c9..66fc980 100644
--- a/dev/js/spec/alwaysMenuSpec.js
+++ b/dev/js/spec/alwaysMenuSpec.js
@@ -220,16 +220,16 @@
 
         expect(menu.show()).toBe(true);
 
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
-        expect(menu.directElementChildrenByTagName("li")[1].getAttribute("data-action")).toEqual("l=");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].getAttribute("data-action")).toEqual("l=");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Check boundaries
-        expect(menu.directElementChildrenByTagName("li")[0].classList.contains("no-more")).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].classList.contains("no-more")).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].classList.contains("no-more")).toBe(false);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].classList.contains("no-more")).toBe(true);
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].classList.contains("no-more")).toBe(false);
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].classList.contains("no-more")).toBe(false);
       });
 
       it('should be filterable', function () {
@@ -239,15 +239,15 @@
         expect(menu.alwaysEntryValue("o").alwaysEntryValue()).toEqual("o");
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("o");
         expect(menu.alwaysEntry().element().innerHTML).toEqual("Speichern");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Check boundaries
-        expect(menu.directElementChildrenByTagName("li")[0].classList.contains("no-more")).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].classList.contains("no-more")).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].classList.contains("no-more")).toBe(true);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].classList.contains("no-more")).toBe(true);
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].classList.contains("no-more")).toBe(false);
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].classList.contains("no-more")).toBe(true);
 
         menu.limit(2);
 
@@ -255,34 +255,34 @@
         expect(menu.alwaysEntryValue("o").alwaysEntryValue()).toEqual("o");
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("o");
         expect(menu.alwaysEntry().element().innerHTML).toEqual("Speichern");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
-        expect(menu.directElementChildrenByTagName("li")[2]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2]).toBe(undefined);
 
         // Check boundaries
-        expect(menu.directElementChildrenByTagName("li")[0].classList.contains("no-more")).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].classList.contains("no-more")).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].classList.contains("no-more")).toBe(true);
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].classList.contains("no-more")).toBe(false);
+        expect(directElementChildrenByTagName(menu.element(),"li")[2]).toBe(undefined);
 
         expect(menu.prefix("e").show()).toBe(true);
         expect(menu.alwaysEntryValue("e").alwaysEntryValue()).toEqual("e");
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("e");        
         expect(menu.alwaysEntry().element().innerHTML).toEqual("Speichern");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
-        expect(menu.directElementChildrenByTagName("li")[2]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2]).toBe(undefined);
 
         menu.limit(5);
         expect(menu.prefix("a").show()).toBe(true);
         expect(menu.alwaysEntryValue("a").alwaysEntryValue()).toEqual("a");
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("a");        
         expect(menu.alwaysEntry().element().innerHTML).toEqual("Speichern");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Ex<mark>a</mark>mple 1</span>");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemm<mark>a</mark></strong>");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Ex<mark>a</mark>mple 2</span>");
-        expect(menu.directElementChildrenByTagName("li")[3].innerHTML).toEqual("<strong>P<mark>a</mark>rt-of-Speech</strong>");
-        expect(menu.directElementChildrenByTagName("li")[4].innerHTML).toEqual("<strong>Synt<mark>a</mark>x</strong>");
-        expect(menu.directElementChildrenByTagName("li")[5]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Ex<mark>a</mark>mple 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemm<mark>a</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Ex<mark>a</mark>mple 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[3].innerHTML).toEqual("<strong>P<mark>a</mark>rt-of-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[4].innerHTML).toEqual("<strong>Synt<mark>a</mark>x</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[5]).toBe(undefined);
       });
 
 
@@ -295,91 +295,91 @@
         // Show only 3 items
         menu.limit(3);
         expect(menu.show()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Activate next (1)
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Activate next (2)
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Activate next (3)
         // scroll!
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Activate next (4)
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Activate next (5) - Entry / Speichern
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(true);
 
         // Activate next (6) - ROLL
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Active next (7)
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         expect(menu._prefix.active()).toBe(false);
@@ -402,47 +402,47 @@
         expect(menu._prefix.active()).toBe(false);
         expect(menu.alwaysEntryValue()).toBe("");
 
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
 
         // Activate prev (1) - roll to bottom
         menu.prev();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(true);
 
         // Activate prev (2)
         menu.prev();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Activate prev (3)
         menu.prev();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
         expect(menu.shownItem(1).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Activate prev (4)
@@ -453,7 +453,7 @@
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Syntax");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Activate prev (5)
@@ -464,7 +464,7 @@
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Part-of-Speech");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Activate prev (6)
@@ -475,7 +475,7 @@
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Morphology");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Activate next (7)
@@ -486,7 +486,7 @@
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2).name()).toEqual("Morphology");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
 
         // Activate prev (8)
@@ -500,7 +500,7 @@
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Morphology");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(true);
 
         // Activate prev (10)
@@ -511,7 +511,7 @@
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Syntax");
         expect(menu.shownItem(2).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
         expect(menu.alwaysEntry().active()).toBe(false);
         expect(menu._prefix.active()).toBe(false);
         expect(menu.alwaysEntryValue()).toBe("");
@@ -543,40 +543,40 @@
         expect(menu.alwaysEntry().active()).toBe(false);
 
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
         // Next (1)
         menu.next();
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
 
         // Next (2)
         menu.next();
         expect(menu.shownItem(0).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Part-of-Speech");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
 
         // Next (3) - to prefix
         menu.next();
         expect(menu.shownItem(0).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Part-of-Speech");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
         expect(menu._prefix.active()).toBe(true);
@@ -585,10 +585,10 @@
          // Next (4) - to entry
          menu.next();
          expect(menu.shownItem(0).name()).toEqual("Morphology");
-         expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+         expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
          expect(menu.shownItem(0).active()).toBe(false);
          expect(menu.shownItem(1).name()).toEqual("Part-of-Speech");
-         expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
+         expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
          expect(menu.shownItem(1).active()).toBe(false);
          expect(menu.shownItem(2)).toBe(undefined);
          expect(menu._prefix.active()).toBe(false);
@@ -596,10 +596,10 @@
 
         menu.next();
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -621,20 +621,20 @@
         expect(menu.alwaysEntry().active()).toBe(false);
 
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
         // Next (1)
         menu.next();
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
         expect(menu.alwaysEntryValue()).toBe("ex");
@@ -646,11 +646,11 @@
 
         expect(menu.prefix()).toEqual('ex');
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
 
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
         expect(menu.alwaysEntryValue()).toBe("ex");
@@ -666,10 +666,10 @@
         expect(menu._prefix.active()).toBe(false);
         expect(menu.alwaysEntry().active()).toBe(false);
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -678,10 +678,10 @@
         expect(menu._prefix.active()).toBe(false);
         expect(menu.prefix()).toEqual('e');
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
         expect(menu._prefix.active()).toBe(false);
@@ -691,10 +691,10 @@
         menu.next();
         expect(menu._prefix.active()).toBe(true);
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
         expect(menu._prefix.active()).toBe(true);
@@ -704,10 +704,10 @@
         menu.next();
         expect(menu._prefix.active()).toBe(false);
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
         expect(menu._prefix.active()).toBe(false);
@@ -717,10 +717,10 @@
         menu.next();
         expect(menu._prefix.active()).toBe(false);
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -739,13 +739,13 @@
         expect(menu._prefix.active()).toBe(false);
         expect(menu.alwaysEntry().active()).toBe(false);
         expect(menu.shownItem(0).name()).toEqual("PPS");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual(
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual(
           "<strong>PPS</strong><span>Personal <mark>Pro</mark>noun, <mark>Sin</mark>gular</span>"
         );
 
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("PPSA");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>PPSA</strong><span>Personal <mark>Pro</mark>noun, <mark>Sin</mark>gular, Accusative</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>PPSA</strong><span>Personal <mark>Pro</mark>noun, <mark>Sin</mark>gular, Accusative</span>");
         expect(menu.shownItem(1).active()).toBe(false);
 
         expect(menu.shownItem(2)).toBe(undefined);
@@ -765,7 +765,7 @@
         expect(menu.alwaysEntryValue()).toBe(" p");
         expect(menu.show()).toBe(true);
         expect(menu.shownItem(0).name()).toEqual("PP");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual(
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual(
           "<strong><mark>P</mark><mark>P</mark></strong>"+
             "<span><mark>P</mark>ersonal <mark>P</mark>ronoun</span>"
         );
@@ -816,13 +816,13 @@
         expect(menu._entry.active()).toEqual(false);
 
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
         expect(menu.shownItem(3)).toBe(undefined);
         expect(menu._prefix.active()).toEqual(false);
@@ -836,7 +836,7 @@
         expect(menu.prefix()).toEqual("a");
         expect(menu.alwaysEntryValue()).toEqual("a");
         expect(menu.shownItem(0).name()).toEqual("Autor");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong><mark>A</mark>utor</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong><mark>A</mark>utor</strong>");
 
         menu._prefix.add('u');
         menu._entry.add('u');
@@ -846,7 +846,7 @@
         expect(menu.shownItem(0).name()).toEqual("Autor");
         expect(menu._prefix.active()).toEqual(false);
         expect(menu._entry.active()).toEqual(false);
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong><mark>Au</mark>tor</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong><mark>Au</mark>tor</strong>");
 
         menu._prefix.chop();
         menu._entry.chop();
@@ -854,7 +854,7 @@
         expect(menu.prefix()).toEqual("a");
         expect(menu.alwaysEntryValue()).toEqual("a");
         expect(menu.shownItem(0).name()).toEqual("Autor");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong><mark>A</mark>utor</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong><mark>A</mark>utor</strong>");
 
         menu._prefix.chop();
         menu._entry.chop();
@@ -864,13 +864,13 @@
         expect(menu._prefix.active()).toEqual(false);
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
         expect(menu.shownItem(3)).toBe(undefined);
 
@@ -883,13 +883,13 @@
         expect(menu._entry.active()).toEqual(false);
         expect(menu.alwaysEntryValue()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
 
         // Forward
@@ -899,13 +899,13 @@
         expect(menu._prefix.active()).toEqual(false);
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
         expect(menu.shownItem(3)).toBe(undefined);
 
@@ -916,13 +916,13 @@
         expect(menu._prefix.active()).toEqual(false);
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
         expect(menu.shownItem(3)).toBe(undefined);
 
@@ -931,13 +931,13 @@
         expect(menu.prefix()).toEqual("");
         expect(menu.alwaysEntryValue()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Länge");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Länge</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Länge</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
         expect(menu.shownItem(3)).toBe(undefined);
         expect(menu._prefix.active()).toEqual(false);
@@ -948,13 +948,13 @@
         expect(menu.prefix()).toEqual("");
         expect(menu.alwaysEntryValue()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Länge");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Länge</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Länge</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Autor");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Autor</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Autor</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
         expect(menu.shownItem(3)).toBe(undefined);
         expect(menu._prefix.active()).toEqual(false);
@@ -965,13 +965,13 @@
         expect(menu.prefix()).toEqual("");
         expect(menu.alwaysEntryValue()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Länge");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Länge</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Länge</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Autor");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Autor</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Autor</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
         expect(menu.shownItem(3)).toBe(undefined);
         expect(menu._prefix.active()).toEqual(false);
@@ -982,13 +982,13 @@
         expect(menu.prefix()).toEqual("");
         expect(menu.alwaysEntryValue()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
       });
 
@@ -1013,10 +1013,10 @@
         expect(menu.alwaysEntryValue()).toEqual("El");
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1027,10 +1027,10 @@
         expect(menu.alwaysEntryValue()).toEqual("El");
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1041,10 +1041,10 @@
         expect(menu.alwaysEntryValue()).toEqual("El");
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1055,10 +1055,10 @@
         expect(menu.alwaysEntryValue()).toEqual("El");
         expect(menu._entry.active()).toEqual(true);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1068,10 +1068,10 @@
         expect(menu.alwaysEntryValue()).toEqual("El");
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1082,11 +1082,11 @@
         expect(menu.alwaysEntryValue()).toEqual("El");
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
 
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
       });
@@ -1109,10 +1109,10 @@
         expect(menu.alwaysEntryValue()).toEqual("el");
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1122,11 +1122,11 @@
         expect(menu._entry.active()).toEqual(true);
 
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
 
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1137,11 +1137,11 @@
         expect(menu._entry.active()).toEqual(false);
 
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
 
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1150,10 +1150,10 @@
         expect(menu._prefix.active()).toEqual(false);
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
       });
@@ -1175,10 +1175,10 @@
         expect(menu.alwaysEntry().value()).toEqual("el");
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1187,10 +1187,10 @@
         expect(menu._prefix.active()).toEqual(false);
         expect(menu._entry.active()).toEqual(true);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1199,10 +1199,10 @@
         expect(menu._prefix.active()).toEqual(true);
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1213,10 +1213,10 @@
         expect(menu._prefix.active()).toEqual(false);
         expect(menu._entry.active()).toEqual(true);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1226,10 +1226,10 @@
         expect(menu._prefix.active()).toEqual(false);
         expect(menu._entry.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
       });
diff --git a/dev/js/spec/buttongroupSpec.js b/dev/js/spec/buttongroupSpec.js
index 80a9e8f..c92832e 100644
--- a/dev/js/spec/buttongroupSpec.js
+++ b/dev/js/spec/buttongroupSpec.js
@@ -173,11 +173,11 @@
       btn.click();
 
       expect(list.element().classList.contains('visible')).toBeTruthy();
-      expect(list.directElementChildrenByTagName("li")[0].innerHTML).toEqual('Meta1');
-      expect(list.directElementChildrenByTagName("li")[1].innerHTML).toEqual('Meta2');
+      expect(directElementChildrenByTagName(list.element(),"li")[0].innerHTML).toEqual('Meta1');
+      expect(directElementChildrenByTagName(list.element(),"li")[1].innerHTML).toEqual('Meta2');
 
       expect(x).toEqual('empty');
-      list.directElementChildrenByTagName("li")[0].click();
+      directElementChildrenByTagName(list.element(),"li")[0].click();
       expect(x).toEqual('meta1');
 
       expect(list.element().classList.contains('visible')).toBeFalsy();
@@ -186,7 +186,7 @@
       btn.click();
 
       expect(list.element().classList.contains('visible')).toBeTruthy();
-      list.directElementChildrenByTagName("li")[1].click();
+      directElementChildrenByTagName(list.element(),"li")[1].click();
       expect(x).toEqual('meta2');
 
       expect(list.element().classList.contains('visible')).toBeFalsy();
diff --git a/dev/js/spec/containerMenuSpec.js b/dev/js/spec/containerMenuSpec.js
index 81eafc7..26b2fc3 100644
--- a/dev/js/spec/containerMenuSpec.js
+++ b/dev/js/spec/containerMenuSpec.js
@@ -216,7 +216,7 @@
         menu.limit(3);
 
         expect(menu.show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(liElements[1].innerHTML).toEqual("Lemma");
         expect(liElements[2].innerHTML).toEqual("Morphology");
@@ -238,7 +238,7 @@
         var menu = OwnContainerMenu.create(list,ExampleItemList);
         menu.limit(3);
         expect(menu.prefix("o").show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("o");
         expect(liElements[0].innerHTML).toEqual("C<mark>o</mark>nstituency");
         expect(liElements[1].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
@@ -253,7 +253,7 @@
         menu.limit(2);
         
         expect(menu.prefix("o").show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("o");
         expect(liElements[0].innerHTML).toEqual("C<mark>o</mark>nstituency");
         expect(liElements[1].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
@@ -267,14 +267,14 @@
         expect(liElements[2]).toBe(undefined);
 
         expect(menu.prefix("e").show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("e");
         expect(liElements[0].innerHTML).toEqual("Constitu<mark>e</mark>ncy");
         expect(liElements[2]).toBe(undefined);
 
         menu.limit(5);
         expect(menu.prefix("a").show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("a");
         expect(liElements[0].innerHTML).toEqual("Lemm<mark>a</mark>");
         expect(liElements[1].innerHTML).toEqual("P<mark>a</mark>rt-of-Speech");
@@ -290,7 +290,7 @@
         // Show only 3 items
         menu.limit(3);
         expect(menu.show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -301,7 +301,7 @@
 
         // Activate next (1)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -312,7 +312,7 @@
 
         // Activate next (2)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -324,7 +324,7 @@
         // Activate next (3)
         // scroll!
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Lemma");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Morphology");
@@ -335,7 +335,7 @@
 
         // Activate next (4)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -346,7 +346,7 @@
 
         // Activate next (5) - ROLL
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -357,7 +357,7 @@
 
         // Active next (6)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -374,7 +374,7 @@
         // Show only 3 items
         menu.limit(3);
         expect(menu.show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -388,7 +388,7 @@
 
         // Activate next (1)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -402,7 +402,7 @@
 
         // Activate next (2)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -417,7 +417,7 @@
         // Activate next (3)
         // scroll!
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Lemma");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Morphology");
@@ -431,7 +431,7 @@
 
         // Activate next (4)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -445,7 +445,7 @@
 
         // Activate next (4.1) - Jump to container part
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -459,7 +459,7 @@
 
         // Activate next (4.2)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -474,7 +474,7 @@
         /** Prefix is not set
         // Activate next (4.3)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -489,7 +489,7 @@
 
         // Activate next (5) - ROLL
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -503,7 +503,7 @@
 
         // Active next (6)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -531,7 +531,7 @@
         menu.limit(3);
         expect(menu.show()).toBe(true);
 
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -542,7 +542,7 @@
 
         // Activate prev (1) - roll to bottom
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -553,7 +553,7 @@
 
         // Activate prev (2)
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -564,7 +564,7 @@
 
         // Activate prev (3)
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -575,7 +575,7 @@
 
         // Activate prev (4)
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Lemma");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Morphology");
@@ -586,7 +586,7 @@
 
         // Activate prev (5)
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -597,7 +597,7 @@
 
         // Activate next (1)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -611,7 +611,7 @@
 
         // Activate prev (7)
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -626,7 +626,7 @@
         menu._firstActive = true;
         menu.limit(3);
         expect(menu.show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -640,7 +640,7 @@
 
         // Activate prev (1) - roll to bottom - base items stay, now container
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -654,7 +654,7 @@
 
         // Activate prev(2) - next container item
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -668,7 +668,7 @@
 
         // Activate prev (3) - roll to bottom of normal list
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -682,7 +682,7 @@
 
         // Activate prev (4)
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -696,7 +696,7 @@
 
         // Activate prev (5)
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -710,7 +710,7 @@
 
         // Activate prev (6)
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Lemma");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Morphology");
@@ -724,7 +724,7 @@
 
         // Activate prev (7)
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -738,7 +738,7 @@
 
         // Activate next (8)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Lemma");
@@ -757,7 +757,7 @@
 
         // Activate prev (10)
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Morphology");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-of-Speech");
@@ -785,7 +785,7 @@
         menu.limit(2);
 
         expect(menu.prefix("o").show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("C<mark>o</mark>nstituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
@@ -794,7 +794,7 @@
 
         // Next (1)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("C<mark>o</mark>nstituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
@@ -803,7 +803,7 @@
 
         // Next (2)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-<mark>o</mark>f-Speech");
@@ -812,7 +812,7 @@
 
         // Next (3) - to prefix
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-<mark>o</mark>f-Speech");
@@ -820,7 +820,7 @@
         expect(menu.shownItem(2)).toBe(undefined);
 
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("C<mark>o</mark>nstituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
@@ -834,7 +834,7 @@
         menu.limit(2);
 
         expect(menu.prefix("o").show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("C<mark>o</mark>nstituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
@@ -846,7 +846,7 @@
 
         // Next (1)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("C<mark>o</mark>nstituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
@@ -858,7 +858,7 @@
 
         // Next (2)
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-<mark>o</mark>f-Speech");
@@ -870,7 +870,7 @@
 
         // Next (3) - to first container Item
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-<mark>o</mark>f-Speech");
@@ -882,7 +882,7 @@
 
           // Next (4) - to second container Item
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-<mark>o</mark>f-Speech");
@@ -894,7 +894,7 @@
 
         // Next (5) - to prefix
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Part-<mark>o</mark>f-Speech");
@@ -905,7 +905,7 @@
         expect(menu.container().items[2].active()).toBe(true); //prefix
 
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("C<mark>o</mark>nstituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy");
@@ -923,7 +923,7 @@
 
         expect(menu.prefix("ex").show()).toBe(true);
         expect(menu.prefix()).toEqual('ex');
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>ex</mark>ample 1 Constituency");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("<mark>ex</mark>ample 2 Morphology");
@@ -936,7 +936,7 @@
         // Next (1)
         menu.next();
         expect(menu.prefix()).toEqual('ex');
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>ex</mark>ample 1 Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("<mark>ex</mark>ample 2 Morphology");
@@ -949,7 +949,7 @@
         // Next (2)
         menu.next();
         expect(menu.prefix()).toEqual('ex');
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>ex</mark>ample 1 Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("<mark>ex</mark>ample 2 Morphology");
@@ -963,7 +963,7 @@
         menu.next();
         menu.next();
         expect(menu.prefix()).toEqual('ex');
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>ex</mark>ample 1 Constituency");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("<mark>ex</mark>ample 2 Morphology");
@@ -980,7 +980,7 @@
         expect(menu.prefix("e").show()).toBe(true);
         expect(menu._prefix.active()).toBe(false);
         expect(menu.prefix()).toEqual('e');
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>e</mark>xampl<mark>e</mark> 1 Constitu<mark>e</mark>ncy");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("<mark>e</mark>xampl<mark>e</mark> 2 Morphology");
@@ -994,7 +994,7 @@
         menu.next();
         expect(menu._prefix.active()).toBe(false);
         expect(menu.prefix()).toEqual('e');
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>e</mark>xampl<mark>e</mark> 1 Constitu<mark>e</mark>ncy");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("<mark>e</mark>xampl<mark>e</mark> 2 Morphology");
@@ -1008,7 +1008,7 @@
         menu.next();
         expect(menu._prefix.active()).toBe(false);
         expect(menu.prefix()).toEqual('e');
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>e</mark>xampl<mark>e</mark> 1 Constitu<mark>e</mark>ncy");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("<mark>e</mark>xampl<mark>e</mark> 2 Morphology");
@@ -1024,7 +1024,7 @@
         menu.next();
         expect(menu._prefix.active()).toBe(true);
         expect(menu.prefix()).toEqual('e');
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>e</mark>xampl<mark>e</mark> 1 Constitu<mark>e</mark>ncy");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("<mark>e</mark>xampl<mark>e</mark> 2 Morphology");
@@ -1042,7 +1042,7 @@
 
         menu.limit(2);
         expect(menu.prefix("pro sin").show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual(
           "Personal <mark>Pro</mark>noun, <mark>Sin</mark>gular"
         );
@@ -1064,7 +1064,7 @@
         expect(menu.show()).toBe(true);
         menu._prefix.add("p")
         expect(menu.show()).toBe(true);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>P</mark>ersonal <mark>P</mark>ronoun");
       });
 
@@ -1118,7 +1118,7 @@
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("");
 
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Untertitel");
@@ -1130,25 +1130,25 @@
         menu._prefix.add('a');
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("a");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>A</mark>utor");
 
         menu._prefix.add('u');
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("au");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>Au</mark>tor");
 
         menu._prefix.chop();
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("a");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>A</mark>utor");
 
         menu._prefix.chop();
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Untertitel");
@@ -1161,7 +1161,7 @@
         menu._prefix.chop();
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Untertitel");
@@ -1172,7 +1172,7 @@
         // Forward
         menu.next();
         expect(menu.prefix()).toEqual("");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Untertitel");
@@ -1183,7 +1183,7 @@
 
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1195,7 +1195,7 @@
 
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("");
         expect(liElements[0].innerHTML).toEqual("Untertitel");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1207,7 +1207,7 @@
 
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("");
         expect(liElements[0].innerHTML).toEqual("Veröffentlichungsdatum");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1219,7 +1219,7 @@
 
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(true);
@@ -1238,7 +1238,7 @@
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("");
 
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Untertitel");
@@ -1253,7 +1253,7 @@
         menu._prefix.add('a');
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("a");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>A</mark>utor");
         expect(menu.container().items[0].active()).toBe(false);
         expect(menu.container().items[1].active()).toBe(false);
@@ -1262,7 +1262,7 @@
         menu._prefix.add('u');
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("au");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>Au</mark>tor");
         expect(menu.container().items[0].active()).toBe(false);
         expect(menu.container().items[1].active()).toBe(false);
@@ -1271,7 +1271,7 @@
         menu._prefix.chop();
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("a");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("<mark>A</mark>utor");
         expect(menu.container().items[0].active()).toBe(false);
         expect(menu.container().items[1].active()).toBe(false);
@@ -1280,7 +1280,7 @@
         menu._prefix.chop();
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Untertitel");
@@ -1296,7 +1296,7 @@
         menu._prefix.chop();
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Untertitel");
@@ -1310,7 +1310,7 @@
         // Forward
         menu.next();
         expect(menu.prefix()).toEqual("");
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Untertitel");
@@ -1324,7 +1324,7 @@
 
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1339,7 +1339,7 @@
 
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("");
         expect(liElements[0].innerHTML).toEqual("Untertitel");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1354,7 +1354,7 @@
 
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("");
         expect(liElements[0].innerHTML).toEqual("Veröffentlichungsdatum");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1369,7 +1369,7 @@
 
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("");
         expect(liElements[0].innerHTML).toEqual("Veröffentlichungsdatum");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1384,7 +1384,7 @@
 
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("");
         expect(liElements[0].innerHTML).toEqual("Veröffentlichungsdatum");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1399,7 +1399,7 @@
         
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("");
         expect(liElements[0].innerHTML).toEqual("Titel");
         expect(menu.shownItem(0).active()).toBe(true);
@@ -1425,7 +1425,7 @@
         menu.prefix('El');
         expect(menu.show()).toBe(true);
 
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("El");
         expect(menu._prefix.active()).toEqual(false);
         expect(liElements[0].innerHTML).toEqual("Tit<mark>el</mark>");
@@ -1439,7 +1439,7 @@
 
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("El");
         expect(menu._prefix.active()).toEqual(false);
         expect(liElements[0].innerHTML).toEqual("Tit<mark>el</mark>");
@@ -1453,7 +1453,7 @@
 
         // Forward
         menu.next();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("El");
         expect(liElements[0].innerHTML).toEqual("Tit<mark>el</mark>");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1467,7 +1467,7 @@
         menu.next();
         menu.next();
 
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("El");
         expect(liElements[0].innerHTML).toEqual("Tit<mark>el</mark>");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1482,7 +1482,7 @@
         menu.prev();
         menu.prev();
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("El");
         expect(menu._prefix.active()).toEqual(false);
         expect(liElements[0].innerHTML).toEqual("Tit<mark>el</mark>");
@@ -1506,7 +1506,7 @@
         menu.prefix('el');
         expect(menu.show()).toBe(true);
 
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("el");
         expect(menu._prefix.active()).toEqual(false);
         expect(liElements[0].innerHTML).toEqual("Tit<mark>el</mark>");
@@ -1522,7 +1522,7 @@
         menu.prev();
         expect(menu._prefix.active()).toEqual(true);
 
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Tit<mark>el</mark>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(liElements[1].innerHTML).toEqual("Untertit<mark>el</mark>");
@@ -1536,7 +1536,7 @@
         menu.prev();
         menu.prev();
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu._prefix.active()).toEqual(false);
         expect(liElements[0].innerHTML).toEqual("Tit<mark>el</mark>");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1557,7 +1557,7 @@
         menu.prefix('el');
         expect(menu.show()).toBe(true);
 
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu.prefix()).toEqual("el");
         expect(menu._prefix.active()).toEqual(false);
         expect(liElements[0].innerHTML).toEqual("Tit<mark>el</mark>");
@@ -1571,7 +1571,7 @@
 
         // Backward
         menu.prev();
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(menu._prefix.active()).toEqual(true);
         expect(liElements[0].innerHTML).toEqual("Tit<mark>el</mark>");
         expect(menu.shownItem(0).active()).toBe(false);
@@ -1587,7 +1587,7 @@
         menu.next();
         expect(menu.prefix()).toEqual("el");
         expect(menu._prefix.active()).toEqual(false);
-        var liElements = menu.directElementChildrenByTagName("li");
+        var liElements = directElementChildrenByTagName(menu.element(),"li");
         expect(liElements[0].innerHTML).toEqual("Tit<mark>el</mark>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(liElements[1].innerHTML).toEqual("Untertit<mark>el</mark>");
@@ -2032,7 +2032,7 @@
         expect(container.liveLength()).toEqual(0);
         expect(container.item(0)).toEqual(container._prefix);
         expect(container.active()).toBeFalsy();
-        expect(menu.directElementChildrenByTagName("pref")).toEqual([]);
+        expect(directElementChildrenByTagName(menu.element(),"pref")).toEqual([]);
         expect(container.element().getElementsByClassName("pref").length).toEqual(1);
         
 
diff --git a/dev/js/spec/menuSpec.js b/dev/js/spec/menuSpec.js
index 47adfd3..8cb62fa 100644
--- a/dev/js/spec/menuSpec.js
+++ b/dev/js/spec/menuSpec.js
@@ -434,16 +434,16 @@
 
         expect(menu.show()).toBe(true);
 
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
-        expect(menu.directElementChildrenByTagName("li")[1].getAttribute("data-action")).toEqual("l=");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].getAttribute("data-action")).toEqual("l=");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Check boundaries
-        expect(menu.directElementChildrenByTagName("li")[0].classList.contains("no-more")).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].classList.contains("no-more")).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].classList.contains("no-more")).toBe(false);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].classList.contains("no-more")).toBe(true);
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].classList.contains("no-more")).toBe(false);
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].classList.contains("no-more")).toBe(false);
       });
 
       it('should be filterable', function () {
@@ -451,44 +451,44 @@
         menu.limit(3);
         expect(menu.prefix("o").show()).toBe(true);
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("o");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Check boundaries
-        expect(menu.directElementChildrenByTagName("li")[0].classList.contains("no-more")).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].classList.contains("no-more")).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].classList.contains("no-more")).toBe(true);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].classList.contains("no-more")).toBe(true);
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].classList.contains("no-more")).toBe(false);
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].classList.contains("no-more")).toBe(true);
 
         menu.limit(2);
 
         expect(menu.prefix("o").show()).toBe(true);
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("o");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
-        expect(menu.directElementChildrenByTagName("li")[2]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2]).toBe(undefined);
 
         // Check boundaries
-        expect(menu.directElementChildrenByTagName("li")[0].classList.contains("no-more")).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].classList.contains("no-more")).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].classList.contains("no-more")).toBe(true);
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].classList.contains("no-more")).toBe(false);
+        expect(directElementChildrenByTagName(menu.element(),"li")[2]).toBe(undefined);
 
         expect(menu.prefix("e").show()).toBe(true);
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("e");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
-        expect(menu.directElementChildrenByTagName("li")[2]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2]).toBe(undefined);
 
         menu.limit(5);
         expect(menu.prefix("a").show()).toBe(true);
         expect(menu.element().getElementsByClassName("pref")[0].innerHTML).toEqual("a");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Ex<mark>a</mark>mple 1</span>");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemm<mark>a</mark></strong>");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Ex<mark>a</mark>mple 2</span>");
-        expect(menu.directElementChildrenByTagName("li")[3].innerHTML).toEqual("<strong>P<mark>a</mark>rt-of-Speech</strong>");
-        expect(menu.directElementChildrenByTagName("li")[4].innerHTML).toEqual("<strong>Synt<mark>a</mark>x</strong>");
-        expect(menu.directElementChildrenByTagName("li")[5]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Ex<mark>a</mark>mple 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemm<mark>a</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Ex<mark>a</mark>mple 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[3].innerHTML).toEqual("<strong>P<mark>a</mark>rt-of-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[4].innerHTML).toEqual("<strong>Synt<mark>a</mark>x</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[5]).toBe(undefined);
       });
 
       it('should be nextable', function () {
@@ -498,74 +498,74 @@
         // Show only 3 items
         menu.limit(3);
         expect(menu.show()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate next (1)
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate next (2)
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate next (3)
         // scroll!
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate next (4)
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate next (5) - ROLL
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Active next (6)
         menu.next();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
       });
 
       it('should be nextable without active field', function () {
@@ -583,33 +583,33 @@
         menu.limit(3);
         expect(menu.show()).toBe(true);
 
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Lemma</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate prev (1) - roll to bottom
         menu.prev();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate prev (2)
         menu.prev();
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Morphology</strong><span>Example 2</span>");
         expect(menu.shownItem(0).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-of-Speech</strong>");
         expect(menu.shownItem(1).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Syntax</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate prev (3)
         menu.prev();
@@ -619,7 +619,7 @@
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Syntax");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate prev (4)
         menu.prev();
@@ -629,7 +629,7 @@
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Part-of-Speech");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate prev (5)
         menu.prev();
@@ -639,7 +639,7 @@
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Morphology");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate next (1)
         menu.next();
@@ -649,7 +649,7 @@
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2).name()).toEqual("Morphology");
         expect(menu.shownItem(2).active()).toBe(false);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
 
         // Activate prev (6)
         menu.prev();
@@ -662,7 +662,7 @@
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Syntax");
         expect(menu.shownItem(2).active()).toBe(true);
-        expect(menu.directElementChildrenByTagName("li")[3]).toBe(undefined);
+        expect(directElementChildrenByTagName(menu.element(),"li")[3]).toBe(undefined);
       });
 
       it('should be prevable without active field', function () {
@@ -681,49 +681,49 @@
 
         expect(menu.prefix("o").show()).toBe(true);
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
         // Next (1)
         menu.next();
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
 
         // Next (2)
         menu.next();
         expect(menu.shownItem(0).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Part-of-Speech");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
 
         // Next (3) - to prefix
         menu.next();
         expect(menu.shownItem(0).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Part-of-Speech");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Part-<mark>o</mark>f-Speech</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
         menu.next();
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>C<mark>o</mark>nstituency</strong><span>Example 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>M<mark>o</mark>rph<mark>o</mark>l<mark>o</mark>gy</strong><span>Example 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
       });
@@ -737,20 +737,20 @@
         expect(menu.prefix("ex").show()).toBe(true);
 
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
         // Next (1)
         menu.next();
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -759,11 +759,11 @@
 
         expect(menu.prefix()).toEqual('ex');
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constituency</strong><span><mark>Ex</mark>ample 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
 
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>Ex</mark>ample 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -774,10 +774,10 @@
         expect(menu.prefix("e").show()).toBe(true);
         expect(menu._prefix.active()).toBe(false);
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -786,10 +786,10 @@
         expect(menu._prefix.active()).toBe(false);
         expect(menu.prefix()).toEqual('e');
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -797,10 +797,10 @@
         menu.next();
         expect(menu._prefix.active()).toBe(true);
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -808,10 +808,10 @@
         menu.next();
         expect(menu._prefix.active()).toBe(false);
         expect(menu.shownItem(0).name()).toEqual("Constituency");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Constitu<mark>e</mark>ncy</strong><span><mark>E</mark>xampl<mark>e</mark> 1</span>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Morphology");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Morphology</strong><span><mark>E</mark>xampl<mark>e</mark> 2</span>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
       });
@@ -823,13 +823,13 @@
         menu.limit(2);
         expect(menu.prefix("pro sin").show()).toBe(true);
         expect(menu.shownItem(0).name()).toEqual("PPS");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual(
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual(
           "<strong>PPS</strong><span>Personal <mark>Pro</mark>noun, <mark>Sin</mark>gular</span>"
         );
 
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("PPSA");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>PPSA</strong><span>Personal <mark>Pro</mark>noun, <mark>Sin</mark>gular, Accusative</span>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>PPSA</strong><span>Personal <mark>Pro</mark>noun, <mark>Sin</mark>gular, Accusative</span>");
         expect(menu.shownItem(1).active()).toBe(false);
 
         expect(menu.shownItem(2)).toBe(undefined);
@@ -846,7 +846,7 @@
         menu._prefix.add("p")
         expect(menu.show()).toBe(true);
         expect(menu.shownItem(0).name()).toEqual("PP");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual(
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual(
           "<strong><mark>P</mark><mark>P</mark></strong>"+
             "<span><mark>P</mark>ersonal <mark>P</mark>ronoun</span>"
         );
@@ -903,13 +903,13 @@
         expect(menu.prefix()).toEqual("");
 
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
         expect(menu.shownItem(3)).toBe(undefined);
 
@@ -917,31 +917,31 @@
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("a");
         expect(menu.shownItem(0).name()).toEqual("Autor");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong><mark>A</mark>utor</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong><mark>A</mark>utor</strong>");
 
         menu._prefix.add('u');
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("au");
         expect(menu.shownItem(0).name()).toEqual("Autor");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong><mark>Au</mark>tor</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong><mark>Au</mark>tor</strong>");
 
         menu._prefix.chop();
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("a");
         expect(menu.shownItem(0).name()).toEqual("Autor");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong><mark>A</mark>utor</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong><mark>A</mark>utor</strong>");
 
         menu._prefix.chop();
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
         expect(menu.shownItem(3)).toBe(undefined);
 
@@ -950,26 +950,26 @@
         expect(menu.show()).toBe(true);
         expect(menu.prefix()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
 
         // Forward
         menu.next();
         expect(menu.prefix()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
         expect(menu.shownItem(3)).toBe(undefined);
 
@@ -977,13 +977,13 @@
         menu.next();
         expect(menu.prefix()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
         expect(menu.shownItem(3)).toBe(undefined);
 
@@ -991,13 +991,13 @@
         menu.next();
         expect(menu.prefix()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Länge");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Länge</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Länge</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
         expect(menu.shownItem(3)).toBe(undefined);
 
@@ -1005,13 +1005,13 @@
         menu.next();
         expect(menu.prefix()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Länge");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Länge</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Länge</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Autor");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Autor</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Autor</strong>");
         expect(menu.shownItem(2).active()).toBe(true);
         expect(menu.shownItem(3)).toBe(undefined);
 
@@ -1019,13 +1019,13 @@
         menu.next();
         expect(menu.prefix()).toEqual("");
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Titel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Titel</strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertitel</strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2).name()).toEqual("Veröffentlichungsdatum");
-        expect(menu.directElementChildrenByTagName("li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[2].innerHTML).toEqual("<strong>Veröffentlichungsdatum</strong>");
         expect(menu.shownItem(2).active()).toBe(false);
       });
 
@@ -1046,10 +1046,10 @@
         expect(menu.prefix()).toEqual("El");
         expect(menu._prefix.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1058,10 +1058,10 @@
         expect(menu.prefix()).toEqual("El");
         expect(menu._prefix.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1070,10 +1070,10 @@
         expect(menu.prefix()).toEqual("El");
         expect(menu._prefix.active()).toEqual(true);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1082,11 +1082,11 @@
         expect(menu.prefix()).toEqual("El");
         expect(menu._prefix.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
 
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
       });
@@ -1105,10 +1105,10 @@
         expect(menu.prefix()).toEqual("el");
         expect(menu._prefix.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1117,11 +1117,11 @@
         expect(menu._prefix.active()).toEqual(true);
 
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
 
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1129,10 +1129,10 @@
         menu.prev();
         expect(menu._prefix.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(true);
         expect(menu.shownItem(2)).toBe(undefined);
       });
@@ -1149,10 +1149,10 @@
         expect(menu.prefix()).toEqual("el");
         expect(menu._prefix.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1160,10 +1160,10 @@
         menu.prev();
         expect(menu._prefix.active()).toEqual(true);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(false);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
@@ -1173,10 +1173,10 @@
         expect(menu.prefix()).toEqual("el");
         expect(menu._prefix.active()).toEqual(false);
         expect(menu.shownItem(0).name()).toEqual("Titel");
-        expect(menu.directElementChildrenByTagName("li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[0].innerHTML).toEqual("<strong>Tit<mark>el</mark></strong>");
         expect(menu.shownItem(0).active()).toBe(true);
         expect(menu.shownItem(1).name()).toEqual("Untertitel");
-        expect(menu.directElementChildrenByTagName("li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
+        expect(directElementChildrenByTagName(menu.element(),"li")[1].innerHTML).toEqual("<strong>Untertit<mark>el</mark></strong>");
         expect(menu.shownItem(1).active()).toBe(false);
         expect(menu.shownItem(2)).toBe(undefined);
 
diff --git a/dev/js/src/menu.js b/dev/js/src/menu.js
index 86a8105..794d517 100644
--- a/dev/js/src/menu.js
+++ b/dev/js/src/menu.js
@@ -972,24 +972,6 @@
         item.element(),
         e.children[this._notItemElements]
       );
-    },
-
-    /**
-     * A Method for generating an array of nodes, that are direct descendants of the menus
-     * element node, using a tag tagName as a parameter. Supposed to be used by the specification only.
-     * @param {String} tagName The tag the children are looked for by
-     * @returns An array of children nodes with tag tagName
-     */
-    directElementChildrenByTagName : function (tagName) {
-      const tagElementsCollection=this._el.getElementsByTagName(tagName);
-      //var tagElements = Array.from(tagElementsCollection);
-      //var tagElements = [...tagElementsCollection];
-      //This one has the best compatability:
-      var tagElements = Array.prototype.slice.call(tagElementsCollection);
-      const t = this;
-      //filter by actually being direct child node
-      tagElements = tagElements.filter(element => element.parentNode === t._el);
-      return tagElements;
     }
   };
 });
diff --git a/dev/js/src/util.js b/dev/js/src/util.js
index c13ba3d..42edf44 100644
--- a/dev/js/src/util.js
+++ b/dev/js/src/util.js
@@ -166,3 +166,39 @@
 
   return KorAP;
 });
+
+/**
+ * A Method for generating an array of nodes, that are direct descendants of the passed
+ * element node, using a tag tagName as a parameter. Supposed to be used by the specification only.
+ * @param {HTMLNode} element The HTMLNode / element object whose children we are fetching
+ * @param {String} tagName The tag the children are looked for by
+ * @returns An array of children nodes with tag tagName
+ */
+function directElementChildrenByTagName (element, tagName) {
+  const tagElementsCollection=element.getElementsByTagName(tagName);
+  //var tagElements = Array.from(tagElementsCollection);
+  //var tagElements = [...tagElementsCollection];
+  //This one has the best compatability:
+  var tagElements = Array.prototype.slice.call(tagElementsCollection);
+  //filter by actually being direct child node
+  tagElements = tagElements.filter(subElement => subElement.parentNode === element);
+  return tagElements;
+};
+
+/**
+ * A Method for generating an array of nodes, that are direct descendants of the passed
+ * element node, using a class className as a parameter. Supposed to be used by the specification only.
+ * @param {HTMLNode} element The HTMLNode / element object whose children we are fetching
+ * @param {String} className The class the children are looked for by
+ * @returns An array of children nodes with class className
+ */
+ function directElementChildrenByClassName (element, className) {
+  const classElementsCollection=element.getElementsByTagName(className);
+  //var classElements = Array.from(classElementsCollection);
+  //var classElements = [...classElementsCollection];
+  //This one has the best compatability:
+  var classElements = Array.prototype.slice.call(classElementsCollection);
+  //filter by actually being direct child node
+  classElements = classElements.filter(subElement => subElement.parentNode === element);
+  return classElements;
+};
\ No newline at end of file