a test driven implementation of a singly linked list