refactoring: Base isn't expected to be instanciated
refactoring: don't define getter manually
refactoring: forces children to implement
(cosmetic change: coding convention)
ListBuffer with index-based management is tough. In this specific case just use scala's Set library