Do Listy przekazujesz tablice przycisków i elementów i miałoby to sens gdyby Lista nie wiedziała o strukturze DOM, ale w klasie używasz querySelectorAll, więc klasa zna strukturę. Przy tak prostym projekcie nie ma sensu niczego ukrywać, więc do konstruktora List przekazywałbym po prostu element korzeń i nic więcej.