updated icmp code