anchor.diff:    bool get isEmpty => _size == 0;
   
     append(T element) {
  -    var current = _head;
  -    while (current.next != null) {
  -      current = current.next;
  +    var node = new Node(element);
  +    var current = head;
  +    if (head == null) {
  +      head = node;
  +    } else {
  +      current = head;
  +      while (current.next != null) {
  +        current = current.next;
  +      }
  +      current.next = node;
       }
  -
  -    var newElement = new LinkedNode(element);
  -    current.next = newElement;
       _size++;
     }
   
     T removeAt(int position) {
       if (position > -1 && position < _size) {
         var index = 0;
  -      var previous = _head;
  -      var current = _head.next;
  -      while (current != null) {
  -        if (index == position) {
  -          _size--;
  -          previous.next = current.next;
  -          return current.element;
  +      var previous = head;
  +      var current = head;
  +      if (position == 0) {
  +        head = current.next;
  +      } else {
  +        while (index++ < position) {
  +          previous = current;
  +          current = current.next;
           }
  -        index++;
  -        previous = current;
  -        current = current.next;
  +        previous.next = current.next;
         }
  +      _size--;
  +      return current.element;
       }
       return null;
     }
   
  -  bool insert(int position, T newElement) {
  -    if (position > -1 && position < _size) {
  +  bool insert(int position, T element) {
  +    if (position >= 0 && position < _size) {
  +      var node = new Node(element);
         var index = 0;
  -      var previous = _head;
  -      var current = _head.next;
  -      while (current != null) {
  -        if (index == position) {
  -          var newNode = new LinkedNode<T>(newElement);
  -          newNode.next = previous.next;
  -          previous.next = newNode;
  -          _size++;
  -          return true;
  +      var previous = head;
  +      var current = head;
  +      if (position == 0) {
  +        node.next = current;
  +        head = node;
  +      } else {
  +        while (index++ < position) {
  +          previous = current;
  +          current = current.next;
           }
  -        index++;
  -        previous = current;
  -        current = current.next;
  +        node.next = current;
  +        previous.next = node;
         }
  +      _size++;
  +      return true;
       }
       return false;
     }
   
     int indexOf(T element) {
  -    int index = 0;
  -    var current = _head.next;
  +    var index = 0;
  +    var current = head;
       while (current != null) {
         if (current.element == element) {
           return index;
  
positive.code: class LinkedList<T> {
    final LinkedNode<T> _head = new LinkedNode<T>.header();
  
    LinkedNode<T> get head => _head.next;
  
    int _size = 0;
  
  
negative.code:     var index = indexOf(element);
      return removeAt(index);
    }
  
    String toString() {
      var current = head;
      var string = '';
      while (current != null) {
        string += current.element.toString() + (current.next != null ? '\n' : '');
        current = current.next;
      }
      return string;
    }
  }
  
  class Node<T> {
    T element;
    Node next;
  
    Node(this.element);
  }
  