A slightly more standard LinkedList implementation