hard one, implementing a linked list