fully encapsulated LinkedList