basic singly linked list template