implement v1.0 singly linked list