This doesn't seem correct - we don't have a parent anymore, it should be null? And an Unlink() followed by an InsertEndChind() will double Unlink() if the parent isn't nulled?