implements SingleLinkedList