Expect ref node 'D'; pointer after: A B C [D] * E F G H I remove node 'E' Expect ref node 'D'; pointer after: A B C [D] * F G H I insert new node 'X' before 'F' Expect ref node 'D'; pointer after: A B C [D] * X F G H I move node 'I' before 'X' Expect ref node 'D'; pointer after: A B C [D] * I X F G H