rewrite LinkedList