implemented linkedList